一. 什么是LVM:PV,PE,VG,LV的概念
LVM的全名为Logical Volume Manager 逻辑卷管理器 LVM是将几个物理分区通过软件组合成一个大磁盘(VG),然后再将这块大磁盘分成可使用的分区(LV),然后进行挂载使用
pv 物理卷 被lv命令处理过的物理分区
vg 物理卷组 被组装到一起的物理卷
pe 物理扩展 lvm设备的最小存储单元,lvm是pe的整数倍
lv 逻辑卷 从VG中拿出的我们想要的存储空间
##lvm建立##
watch -n 1 'pvs;vgs;lvs;df -h /mnt' ##再另打开一个Terminal 观察变化
1.分区时定分区标签为8e
pvcreate /dev/vdb1
vgcreate vg0 /dev/vdb1 ##vg0为自定义物理卷组的名字
lvcreate -L 20M -n lv0 vg0 ##lv0为自定义lv的名字
mkfs.xfs /dev/vg0/lv0 ##格式化并搭载文件系统
mount /dev/vg0/lv0 /mnt ##挂载
df -H /mnt
df -h /mnt
##lvm的拉伸##
lvm支持热拉伸 ##支持挂载时进行拉神
1.当vg中的剩余容量充足情况
lvextend -L 80M /dev/vg0/lv0 ##拉伸设备 由上面设定的20M拉伸到80M
xfs_growfs /dev/vg0/lv0 ##拉伸文件系统
##一定先拉神设备再拉神文件系统
2.当vg中的容量不足时
再次建立分区并修改标签8e
pvcreate /dev/vdb2
vgextend vg0 /dev/vdb2 ##拉伸物理卷组
lvextend -L 200M /dev/vg0/lv0
xfs_growfs /dev/vg0/lv0
3.针对ext文件系统的设备扩展和缩减
1.改变文件系统
umount /mnt ##改变文件系统必须先卸载
mkfs.ext4 /dev/vg0/lv0 ##将文件系统改为ext4
2.ext4文件设备的扩展
lvextend -L 100M /dev/vg0/lv0
resize2fs /dev/vg0/lv0 100M
mount /dev/vg0/lv0 /mnt
3.设备的缩减
umount /mnt ##缩减不支持在挂载时缩减。所以先卸载,先缩小文件系统
mkfs.ext4 /dev/vg0/lv0 ##xfs文件系统只支持扩展,不支持缩减 所以先将文件系统改为ext4,再缩减
e2fsck -f /dev/vg0/lv0 ##扫描,防止缩小到存储不了原来的内容
resize2fs /dev/vg0/lv0 100M
lvreduce -L 100M /dev/vg0/lv0
mount /dev/vg0/lv0 /mnt
##缩减vg
vgreduce vg0 /dev/vdb2 缩减vg
vgextend vg0 /dev/vdb2 扩展vg
##数据迁移(移除含有数据的设备)
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
如果截取数据大于40M,会损坏设备
dd if=/dev/zero of=/mnt/file bs=1M count=60
再次挂载会报错
umount /mnt
lvremove /dev/vg0/lv0-backup
lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0 ##相当于设备reset
再次挂载可以看原设备数据
####全部删除还原####
lvremove /dev/vg0/lv0-backup ##先删快照,再删设备本身
lvremove /dev/vg0/lv0
vgremove vg0
pvremove /dev/vdb2
fdisk /dev/vdb
d *