LVM逻辑卷管理器(Logical Volume Manager)
重点:可以弹性调整文件系统的容量、整合多个物理分区
原理:将若干个磁盘分区连接为一个整块的卷组 (volumegroup),形成一个存储池;可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系 统PV Phsical Volume 物理卷
PE Phical Extendsize物理块(物理卷的基本单元):每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是能被LVM寻址的最小单元。PE的大小是可设置的,默认为4MB
VG Volume Group 卷组
LV Logical Volume 逻辑卷安装逻辑卷管理器
yum install lvm2
一、创建一个逻辑卷的步骤:
1.分区
fdisk
2.创建物理卷PV
pvcreate pvcreate /dev/sda{5,6,7} #把分区创建为物理卷 #删除物理卷属性为:pvremove /dev/sda7
查看物理卷:
pvs 简要信息
pvdisplay 详细信息3.创建卷组VG
vgcreate -s #指定PE的大小 eg: vgcreate vg_pl /dev/sda5 /dev/sda6 /dev/sda7 #把已经创建为物理卷的分区创建为vg_pl卷组
查看卷组
vgs
vgdisplay4.创建逻辑卷LV
lvcreate [-L|-l ] [-n NAME] VG_NAME -l #PE数量 -L #直接指定逻辑卷大小 单位:M G等 -n #逻辑卷的名称 eg: lvcreate -L 1G -n lv1 vg_pl #在卷组vg_pl中创建逻辑卷lv1,指定大小为1G
查看逻辑卷:
lvs
lvdisplayNote:
逻辑卷在系统中的路径:
/dev/VG_NAME/LV_NAME
/dev/mapper/VG_NAME-LV_NAME5.格式化逻辑卷
mkfs -t ext4 /dev/mapper/vg_pl-lv1 #或mkfs.ext4
6.挂载 (/etc/fstab)
/dev/mapper/vg_pl-lv1 /mount-dir ext4 default 0 0
二、扩展卷组: vgextend
vgextend vg_pl /dev/sda8#把新的设备sda8加入卷组vg_pl
三、缩小卷组:vgreduce
vgreduce vg_pl /dev/sda7 #从卷组中删除一个物理卷前要使用pvdisplay查看物理卷是否空闲
四、扩大逻辑卷
扩大逻辑卷的步骤:
1.扩大逻辑卷
lvextend #lvextend命令用于在线扩展逻辑卷的空间大小,而不中断应用程序对逻辑卷的访问。使用lvextend命令动态在线扩展磁盘空间,整个空间扩展过程对于应用程序来说是完全透明的。 eg: lvextend -L +1G /dev/mapper/vg_pl-lv1 #直接10G则把逻辑卷大小扩展到10G lvresize #可能造成文件丢失
2.扩大文件系统
resize2fs #resize2fs /dev/mapper/vg_pl-lv1
五、缩小逻辑卷
>
1.卸载逻辑卷
umount /dev/mapper/vg_pl-lv2
2.做文件系统检查
e2fsck -f /dev/mapper/vg_pl-lv2
3.缩小文件系统
resize2fs /dev/mapper/vg_pl-lv2 500M
4.缩小逻辑卷
lvreduce -L 500M /dev/mapper/vg_pl-lv2
lvresize5.挂载
mount /dev/mapper/vg_pl-lv2 /mnt/lv2
六、删除逻辑卷
卸载并删除逻辑卷
umount /dev/mapper/vg_pl-lv2 lvremove /dev/mapper/vg_pl-lv2
七、在线数据迁移
通过
pvmove
能将一个PV上的数据迁移到新的PV上,也能将PV上的某个LV迁移到另一个PV上。
#lvs -o +devices LV VG Attr LSize Origin Snap% Move Log Copy% Devices LogVol00 VolGroup00 -wi-ao 2.88G /dev/sda2(0) LogVol01 VolGroup00 -wi-ao 1.00G /dev/sda2(92) test lvm_test -wi-ao 52.00M /dev/sdb1(0) #pvmove -n test /dev/sdb1 /dev/sdc1 #将LV:test从/dev/sdb1迁移到/dev/sdc1 #lvs -o +devices LV VG Attr LSize Origin Snap% Move Log Copy% Devices LogVol00 VolGroup00 -wi-ao 2.88G /dev/sda2(0) LogVol01 VolGroup00 -wi-ao 1.00G /dev/sda2(92) test lvm_test -wi-ao 52.00M /dev/sdc1(0)
八、故障排查
通过在命令后加 -v,-vv,-vvv或-vvvv来获得更周详的命令输出。
通过在lvs,vgs后加-P能更好的查看失败设备.
#vgs -a -o +devices -P Partial mode. Incomplete volume groups will be activated read-only. VG #PV #LV #SN Attr VSize VFree Devices VolGroup00 1 2 0 wz--n- 3.88G 0 /dev/sda2(0) VolGroup00 1 2 0 wz--n- 3.88G 0 /dev/sda2(92) lvm_test 2 2 0 wz--n- 1016.00M 896.00M pvmove0(0) lvm_test 2 2 0 wz--n- 1016.00M 896.00M /dev/sdb(0),/dev/sdc(0) #lvs -a -o +devices -P Partial mode. Incomplete volume groups will be activated read-only. Failure parsing mirror status fraction: 1 core Failure parsing mirror status fraction: 1 core LV VG Attr LSize Origin Snap% Move Log Copy% Devices LogVol00 VolGroup00 -wi-ao 2.88G /dev/sda2(0) LogVol01 VolGroup00 -wi-ao 1.00G /dev/sda2(92) [pvmove0] lvm_test p-C-ao 60.00M /dev/sdb,/dev/sdb(0),/dev/sdc(0) test lvm_test -wI-a- 60.00M pvmove0(0)
任务 | PV阶段 | VG阶段 | LV阶段 |
---|---|---|---|
查找scan | pvscan | vgscan | lvscan |
新建create | pvcreate | vgcreate | lvcreate |
显示display | pvdisplay | vgdisplay | lvdisplay |
增加extend | vgextend | lvextend/lvresize | |
减少reduce | vgreduce | lvreduce/lvresize | |
删除remove | pvremove | vgremove | lvremove |
改变容量resize | lvresize | ||
改变属性attribute | pvchange | vgchange | lvchange |