一.简介
LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和 分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
pv 物理卷 被lv命令处理过的物理分区。
vg 物理卷组 被组中到一起的物理卷。
pe 物理扩展 lvm设备的最小存储单元,lvm包含整数倍pe。
lvm 逻辑卷 直接使用的设备可以增大缩减并保存原有数据不变。
二.lvm建立
1.分区并设定分区标签为8e
pvcreate /dev/vdb1
vgcreate vg0 /dev/vdb1
lvcreate -L 20M -n lv0 vg0
mkfs.xfs /dev/vg0/lv0
mount /dev/vg0/lv0 /mnt
df -H /mnt
watch -n 1 'pvs;vgs;lvs;df -h /mnt'监控
三.lvm的拉伸
1.当vg中的剩余容量充足情况
lvextend -L 200M /dev/vg0/lv0 ##拉伸设备,扩展到200M
xfs_growfs /dev/vg0/lv0 ##拉伸文件系统
2.当vg中的剩余容量不足
再次建立分区并修改标签8e
pvcreate /dev/vdb2
vgextend vg0 /dev/vdb2 ##拉伸物理卷组
lvcreate -L 80M vg0
xfs_growfs /dev/vg0/lv0
可以看到可以正常扩展逻辑卷:
3.针对ext文件系统的设备的拉伸和缩减
umount /mnt
mkfs.ext4 /dev/vg0/lv0
mount /dev/vg0/lv0 /mnt
拉伸
lvextend -L 20M /dev/vg0/lv0
resize2fs /dev/vg0/lv0
watch -n 1 'pvs;echo ====;vgs;echo ====;lvs;df -h /mnt'
缩减lvm
umount /mnt/
e2fsck -f /dev/vg0/lv0 ##扫描并确定容量
resize2fs /dev/vg0/lv0 100M ##文件系统缩减到100M
lvreduce -L 100M /dev/vg0/lv0 /mnt ##lv中缩减到100M
mount /dev/vg0/lv0 /mnt
缩减vg
移除空闲pv
vgreduce vg0 /dev/vdb2
pvremove /dev/vdb2
移除含有数据的设备:
pvmove /dev/vdb1 /dev/vdb2
vgreduce vg0 /dev/vdb1
pvremove /dev/vdb1
lvm快照
lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0
mount /dev/vg0/lv0-backup /mnt
rm -fr /mnt/*
umount /mnt
恢复lvm快照
lvremove /dev/vg0/lv0-backup
lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0
mount /dev/vg0/lv0-backup /mnt
lvm的删除
lvremove /dev/vg0/lv0-backup
lvremove /dev/vg0/lv0 lv0
vgremove vg0
pvremove /dev/vdb1