本篇将从头到尾演示一遍逻辑卷的管理.

主要步骤

1、创建lv逻辑卷步骤
     前提:先创建3个磁盘分区,类型为8e;
         1、PV创建
             pvcrete /dev/sda#
         2、VG创建
             vgcreate VG_NAME /dev/sda# /dev/sda#+1 ...
         3、LV创建
             lvcreate -L # -n LV_NAME VG_NAME
         4、格式化文件系统
             mkfs.ext4 LV_NAME
         5、挂载使用
             mount /PATH/TO/VG_NAME/LV_NAME 挂载点

2、扩展lv步骤:
     前提:先保证vg有足够的空间pv
         1、lvextend -L #[MGT] /dev/VG_NAME/LV_NAME
         2、resize2fs /dev/VG_NAME/LV_NAME

3、缩减lv步骤:
     前提:先保证vg有足够的空间pv,再保证pv有足够空间的lv
       提示:xfs文件格式不支持缩减.请使用ext系列文件格式测试.
         1、先卸载
             umount /dev/VG_NAME/LV_NAME
         2、强制检查文件系统一致性
             e2fsck -f /dev/VG_NAME/LV_NAME
         3、缩减逻辑边界(缩减后空间一定要能容纳现有文件)
             resize2fs /dev/VG_NAME/LV_NAME #[MMT](缩减到多少)
         4、缩减物理边界
             lvreduce -L #(缩减到多少)[MGT] /dev/VG_NAME/LV_NAME
             输入:y,确认缩减;
         5、重新挂载
             mount /dev/VG_NAME/LV_NAME /PATH/TO/SOMEDIR
         6、查看磁盘分区确认
             $ df -lh

4、创建快照卷
     同创建lv,前提确保有足够的可用lv空间
         1、lvcreate -s -L #G SNAP_NAME -p r /dev/VG_NAME/LV_NAME
         2、挂载使用
         3、恢复快照
           取消挂载逻辑卷和对应的快照
           umount /dev/VG_NAME/SNAP_NAME
           umount /dev/VG_NAME/LV_NAME
           合并快照内容
               lvconvert --merge /dev/VG_NAME/SNAP_NAME
         4、删除快照
           取消快照文件夹的挂载,再lvremove.
           umount /PATH/TO/SOMEDIR
           lvremove /dev/VG_NAME/SNAP_NAME

5、卸载删除lv步骤:
     前提:确保数据备份
         1、卸载
             umount 挂载点
         2、移除lv
             lvremove /dev/VG_NAME/LV_NAME
         3、移除vg
             vgremove VG_NAME
         4、移除pv
             pvremove /dev/sda#

演示开始

创建物理卷pv

pvcreate 设备名

$ pvcreate /dev/sd{b1,c1,d}
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdc1" successfully created.
Physical volume "/dev/sdd" successfully created. $ pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 lvm2 --- 3.00g 3.00g
/dev/sdc1 lvm2 --- 3.00g 3.00g
/dev/sdd lvm2 --- 20.00g 20.00g $ blkid
/dev/sda1: UUID="afb7fd40-2397-48d1-bca4-717be297f93c" TYPE="xfs"
/dev/sda2: UUID="85c6b174-252c-4055-b570-e9eeaa777965" TYPE="xfs"
/dev/sda3: UUID="07d4e313-2004-45fc-864c-e60bf597ca75" TYPE="swap"
/dev/sdb1: UUID="Fe2tDt-oit1-FSAl-KxzW-aF6H-ZilG-QCWDlo" TYPE="LVM2_member"
/dev/sdc1: UUID="dUedrJ-I41U-38uc-5lYZ-eBMZ-8fJF-Gm9gz7" TYPE="LVM2_member"
/dev/sdd: UUID="phMgr1-Bu0B-J5fs-aojc-2Yyp-Ue0j-RYoHjN" TYPE="LVM2_member" $ pvdisplay
"/dev/sdb2" is a new physical volume of "3.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb2
VG Name
PV Size 3.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID KMMRGl-2R9b-0SZo-aWSX-ryQG-IOyL-rez5sH

此时还没有VG Name和PE相关的数据,因为要有VG之后才会被创建.

创建卷组vg



vgcreate

vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]

-s 指明PE大小,单位可用kKmMgGtTpPeE;

$ vgcreate -s 4M vg0 /dev/sd{b1,c1,d}
Volume group "vg0" successfully created $ vgs
VG #PV #LV #SN Attr VSize VFree
vg0 3 0 0 wz--n- <25.99g <25.99g

创建逻辑卷lv

lvcreate -n lv0 -L 16G vg0
   Logical volume "lv0" created.

$ gdisplay
--- Volume group ---
VG Name vg0
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 3
Act PV 3
VG Size <25.99 GiB
PE Size 4.00 MiB
Total PE 6653
Alloc PE / Size 4096 / 16.00 GiB
Free PE / Size 2557 / <9.99 GiB
VG UUID eQ4KLZ-fAJh-1gX8-Qrp5-o0Qx-0LgM-G4kXRi $ vs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv0 vg0 -wi-a----- 16.00g $ lvdisplay
--- Logical volume ---
LV Path /dev/vg0/lv0
LV Name lv0
VG Name vg0
LV UUID PYsVIR-u4DI-Oq0X-dXcA-ilJ2-jLJL-1T9Zx7
LV Write Access read/write
LV Creation host, time centos7.qt, 2017-12-10 00:10:58 +0800
LV Status available
# open 0
LV Size 16.00 GiB
Current LE 4096
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0

创建lv,使用所有剩余空间

$ lvcreate -n lv1 -l +100%free vg0
Logical volume "lv1" created.


给每个lv创建文件系统

$ kfs.ext4 /dev/vg0/lv0
$ mkfs.xfs /dev/vg0/lv1


挂载


为了开机自动挂载,写入fstab

$ vim /etc/fstab
UUID=03213fc3-305e-4f26-889c-ae0487322b61 /mnt/lv0 ext4 defaults 0 0
UUID=a34535a7-19ae-4943-af2f-091d4d571e6c /mnt/lv1 xfs defaults 0 0 $ mkdir /mnt/lv{0,1}
$ mount -a

扩展卷组lv

看一下可用分区(已删除无关磁盘信息)

$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 3G 0 part
│ └─vg0-lv1 253:1 0 10G 0 lvm /mnt/lv1
└─sdb2 8:18 0 3G 0 part
sdc 8:32 0 20G 0 disk
├─sdc1 8:33 0 3G 0 part
│ └─vg0-lv1 253:1 0 10G 0 lvm /mnt/lv1
└─sdc2 8:34 0 3G 0 part
sdd 8:48 0 20G 0 disk
├─vg0-lv0 253:0 0 16G 0 lvm /mnt/lv0
└─vg0-lv1 253:1 0 10G 0 lvm /mnt/lv1


使用/dev/sdb2创建一个pv

$ pvcreate /dev/sdb2
Physical volume "/dev/sdb2" successfully created.

可以看到新创建的PV,sdb2
 

$ pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 vg0 lvm2 a-- <3.00g 0
/dev/sdb2 lvm2 --- 3.00g 3.00g
/dev/sdc1 vg0 lvm2 a-- <3.00g 0
/dev/sdd vg0 lvm2 a-- <20.00g 0

扩展vg,把新PV加进去

$ vgextend vg0 /dev/sdb2
Volume group "vg0" successfully extended

可以看到Free PE 已经有了

$ vgdisplay
--- Volume group ---
VG Name vg0
System ID
Format lvm2
Metadata Areas 4
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 4
Act PV 4
VG Size 28.98 GiB
PE Size 4.00 MiB
Total PE 7420
Alloc PE / Size 6653 / <25.99 GiB
Free PE / Size 767 / <3.00 GiB
VG UUID eQ4KLZ-fAJh-1gX8-Qrp5-o0Qx-0LgM-G4kXRi


先查看一下lv目前容量,再扩展一下lv1

$ lvs;lvextend -r -l +100%free /dev/vg0/lv1 #-r 可以更新df命令中的结果.
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv0 vg0 -wi-ao---- 16.00g
lv1 vg0 -wi-ao---- <9.99g
Size of logical volume vg0/lv1 changed from <9.99 GiB (2557 extents) to 12.98 GiB (3324 extents).
Logical volume vg0/lv1 successfully resized.

之后再看lv容量,已经变大

$ lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv0 vg0 -wi-ao---- 16.00g
lv1 vg0 -wi-ao---- 12.98g


再看vg剩余空间,已经用完

  

$ vgdisplay | grep 'Free  PE'
Free PE / Size 0 / 0

缩减逻辑卷

必须先取消挂载要缩减的逻辑卷

$ umount /mnt/lv0

要先执行磁盘检测,否则会提示

Please run 'e2fsck -f /dev/vg0/lv0' first.

磁盘检测

$ 2fsck -f /dev/vg0/lv0


再缩减文件系统

$ esize2fs /dev/vg0/lv0 8G
$ esize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg0/lv0 to 2097152 (4k) blocks.
The filesystem on /dev/vg0/lv0 is now 2097152 blocks long.

缩减逻辑卷lv

$ vreduce -L 8G /dev/vg0/lv0
WARNING: Reducing active logical volume to 8.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg0/lv0? [y/n]: y
Size of logical volume vg0/lv0 changed from 16.00 GiB (4096 extents) to 8.00 GiB (2048 extents).
Logical volume vg0/lv0 successfully resized.

重新挂载

$ mount –a

查看一下

$ df -h
/dev/mapper/vg0-lv0 7.8G 37M 7.3G 1% /mnt/lv0
/dev/mapper/vg0-lv1 10G 33M 10G 1% /mnt/lv1

逻辑卷快照管理

快照就是将当时的系统信息记录下来,就好像照相一般,若将来有任何数据改动了,则原始数据会被移动到快照区,没有改动的区域则由快照区和文件系统共享

由于快照区与原本的LV共用很多PE的区块,因此快照去与被快照的LV必须在同一个VG.系统恢复的时候的文件数量不能高于快照区的实际容量

创建快照

给lv0 创建快照

$ lvcreate -s -p r -L 3G -n lv0_snapshot /dev/vg0/lv0

选项说明:

-s|--snapshot original_lv_name:创建为快照卷,指明原卷;

-n|--name snapshot_lv_name:定义快照卷名称;

-L|--size #[mMgGtT]:指定逻辑卷空间大小;

-p|--permission {r|rw}:指定逻辑卷权限,r为只读,rw为读写(快照卷通常为只读);

查看已创建的快照(已删除无关磁盘信息)

$ lsblk

NAME                   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 3G 0 part
│ └─vg0-lv1 253:1 0 13G 0 lvm /mnt/lv1
└─sdb2 8:18 0 3G 0 part
└─vg0-lv1 253:1 0 13G 0 lvm /mnt/lv1
sdc 8:32 0 20G 0 disk
├─sdc1 8:33 0 3G 0 part
│ └─vg0-lv1 253:1 0 13G 0 lvm /mnt/lv1
└─sdc2 8:34 0 3G 0 part
sdd 8:48 0 20G 0 disk
├─vg0-lv1 253:1 0 13G 0 lvm /mnt/lv1
├─vg0-lv0-real 253:2 0 8G 0 lvm
│ ├─vg0-lv0 253:0 0 8G 0 lvm /mnt/lv0
│ └─vg0-lv0_snapshot 253:4 0 8G 1 lvm
└─vg0-lv0_snapshot-cow 253:3 0 3G 1 lvm
└─vg0-lv0_snapshot 253:4 0 8G 1 lvm

挂载快照

$ mount /dev/vg0/lv1_snapshot /mnt/snap

$ mount: /dev/mapper/vg0-lv0_snapshot is write-protected, mounting read-only

恢复快照

$ mount /dev/vg0/lv0_snapshot

$ umount /dev/vg0/lv0

$ lvconvert --merge /dev/vg0/lv0_snapshot

删除快照

$ umount /mnt/snap
$ lvremove /dev/vg0/lv0_snapshot

LVM逻辑卷的管理和使用的更多相关文章

  1. centos6下的lvm逻辑卷的管理

    LVM:Logical Volume Manager 将多块设备组合成一个来使用 dm:device mapper 设备映射 设备文件 /dev/卷组名/逻辑卷名          /dev/mapp ...

  2. LVM逻辑卷创建管理

    首先添加三块硬盘 结构关系图 相关命令 查看磁盘 #fdisk -l 分区 #fdisk /dev/sda/ #n新建 ProMary主分区 extended扩展分区 #p查看 #q不保存退出 #w保 ...

  3. 【转载】Linux磁盘管理:LVM逻辑卷管理

    Linux学习之CentOS(二十五)--Linux磁盘管理:LVM逻辑卷基本概念及LVM的工作原理 这篇随笔将详细讲解Linux磁盘管理机制中的LVM逻辑卷的基本概念以及LVM的工作原理!!! 一. ...

  4. Linux LVM 逻辑卷管理

    使用Linux好久了,一定会意识到一个问题,某个分区容量不够用了,想要扩容怎么办?这里就涉及到LVM逻辑卷的管理了,可以动态调整Linux分区容量. LVM 概述 全称Logical Volume M ...

  5. Linux LVM逻辑卷配置过程详解(创建,增加,减少,删除,卸载)

    Linux LVM逻辑卷配置过程详解 许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份.删除相关数据, ...

  6. Linux lvm 逻辑卷篇

    Linux LVM逻辑卷配置过程详解(创建.增加.减少.删除.卸载) 许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用 ...

  7. LVM逻辑卷管理

    一.LVM简介 LVM(Logic Volume Manager)逻辑卷管理,简单理解就是将一块或多块硬盘的分区在逻辑上集合,当一块大硬盘来使用. 其特点是: 1.可以实现在线动态扩展,也可以缩减 2 ...

  8. 18 LVM逻辑卷管理

    根据上一节的内容,我们知道md这个内核模块可以用来做软RAID的管理.同时RAID实现了两个功能:1.提高了磁盘的读写能力:2.对于数据进行了冗余备份: 但是,如果是管理员手动误删的数据,则一样无法找 ...

  9. LVM逻辑卷管理测试——逻辑卷扩展、收缩、快照及删除

    一.逻辑卷扩展 [root@lxjtest /]# umount /testLVM/ [root@lxjtest /]# df -h Filesystem Size Used Avail Use% M ...

随机推荐

  1. 如何下载Red Hat Enterprise Linux系统

    关于如何下载Red Hat Enterprise Linux系统? 这是一个既简单,又复杂的问题.简单是因为我以为她很简单,复杂是因为下载的过程有点复杂的. 相信去Oracle官网下载过东西的同学对下 ...

  2. ES6数组新加 Buff

    欢迎关注本人公众号<迈向大前端>,里面有15本前端相关的电子书,送给在前端路上迷茫的同学们! 本章篇幅很长,分开来发,这一小篇主要讲ES6数组的Array.of()和Array.from( ...

  3. AngularJS添加样式

    AngularJS添加样式 通过controller.js中的某个$scope变量的值来决定div标签(或者其他html标签)的样式表. 示例 使用ng-style指令在div标签上 <body ...

  4. ASP.NET Core中使用默认MVC路由

    ASP.NET Core里Route这块的改动不大,只是一些用法上有了调整,提供了一些更加简洁的语法. 而对于自定义路由的支持当然也是没有问题的,这个功能应该是从MVC1.0版本就已经有这个功能. 先 ...

  5. C#语言-08.序列化与反序列化

    a. 序列化:是将对象的状态存储到特定存储介质中的过程 i. 语法:public void Serialize(序列化过程的文件流,保存的对象) b. 返序列化:是从特定存储介质中将数据重新构建对象的 ...

  6. java 并发(五)---AbstractQueuedSynchronizer

    文章部分图片和代码来自参考文章. LockSupport 和 CLH 和 ConditionObject 阅读源码首先看一下注解 ,知道了大概的意思后,再进行分析.注释一开始就进行了概括.AQS的实现 ...

  7. Spring Cloud实战之初级入门(四)— 利用Hystrix实现服务熔断与服务监控

    目录 1.环境介绍 2.服务监控 2.1 加入依赖 2.2 修改配置文件 2.3 修改启动文件 2.4 监控服务 2.5 小结 3. 利用hystrix实现消费服务熔断 3.1 加入服务熔断 3.2 ...

  8. Spring学习笔记:Spring整合Mybatis(mybatis-spring.jar)(二:mybatis整合spring)

    http://blog.csdn.net/qq598535550/article/details/51703190 二.Spring整合mybatis其实是在mybatis的基础上实现Spring框架 ...

  9. Java基础(九)多线程

    一.线程和进程 进程(Process): 1.是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础. 2.在早期面向进程设计的计算机结构中,进程是程 ...

  10. Maven --- <distributionManagement>标签

    1.<distributionManagement>的作用: 负责管理构件的发布.这是一个环境变量    <downloadUrl> URL </downloadUrl& ...