lvm逻辑卷
1.lvm的存在意义
用软件实现设备可拉伸或缩减,而设备中存在的数据不变
2.lvm中的专业术语
lvm:是逻辑卷管理的简写
pv:物理卷的简写,是lvm的基本存储逻辑块
vg:卷组的简写,由物理卷组成
pe:具有唯一编号的PE是被lvm寻址的最小单元,默认为4MB
pv是物理的磁盘分区,pv要加入到vg卷组中,vg就是磁盘的合集,lv就是从vg中划分出的逻辑分区。
3.lvm的建立
(1)分区并且改变分区标签为 lvm(gpt 15 |mbr 8e)
用:watch -n 1 'pvs; echo =============;vgs; echo ==============;lvs; echo =======;df -h /mnt' ###监控命令,查看分区情况以及设备挂载情况
(2)pvcreate /dev/vdb1
(3)vgcreate vg0 /dev/vdb1
(4)lvcreate -L 400M -n lv0 vg0 ##创建400M,-n(指定名称),从vg0里创建
(5)mkfs.xfs /dev/vg0/lv0 ##格式化
(6)mount /dev/vg0/lv0 /mnt ##挂载
4.lvm检测信息
pvs
vgs
lvs
pvdisplay
vgdisplay
lvdisplay
5.lvm拉伸
(1)当vg中的容量够用时:
lvextend -L 200M /dev/vg0/lv0 ##拉伸设备到200M
xfs_drowfs /dev/vg0/lv0 ##平铺文件系统
(2)当vg中容量不够用时:
再次分区并且改变分区标签为lvm(gpt 15|mbr 8e)
pvcreate /dev/vdb2
vgextend vg0 /dev/vdb2
lvextend -L 1400M /dev/vg0/lv0
xfs_growfs /dev/vg0/lv0
vg仅剩下220M,不能扩展到1400M
再次创建分区/vdb2,把vg扩展,vg够用可以直接扩展lv到1400M
6.ext4文件系统,能够缩减;xfs文件系统不能缩减,只能拉伸
(1)umount /mnt
mkfs.ext4 /dev/vg0/lv0 ##格式化为ext4
拉伸:
lvextend -L 1500M /dev/vg0/lv0 ##设备
resize2fs /dev/vg0/lv0 ##文件设备
(2)缩减对设备
umount /mnt
e2fsck -f /dev/vg0/lv0
resize2fs /dev/vg0/lv0 400M
mount /dev/vg0/lv0 /mnt
lvreduce -L 400M /dev/vg0/lv0
注意:缩减的时候先执行e2fsck -f /dev/vg0/lv0 ##扫描文件大小,看缩减的空间是否合适;先把挂载卸载,对文件设备缩减之后,再次挂载,对设备进行缩减
7.卸载空闲的设备
pvmove /dev/vdb1 /dev/vdb2 ####有数据的话,先把设备里的数据移走
vgreduce vg0 /dev/vdb1
pvremove /dev/vdb1
/dev/vdb2是完全空闲的,可以直接移除
8.lvm块照
lvcreate -L 100M -n lv0backup -s /dev/vg0/lv0 ##建立快照
mount /dev/vg0/lv0backup /mnt ##挂载快照,但是读取的数据还是/dev/vg0/lv0
rm -fr /mnt/* ##删除/mnt下的文件
umount /mnt ##卸载快照
lvremove /dev/vg0/lv0backup ##移除快照
lvcreate -L 100M -n lv0backup -s /dev/vg0/lv0 ##重新建立快照
mount /dev/vg0/lv0backup /mnt ##挂载快照
还原/mnt下的数据 ##数据依旧存在,整个过程/dev/vg0/lv0里的数据仅是读取
9.lvm的删除
umount /mnt
lvremove /dev/vg0/lv0backup ###移除备份
lvremove /dev/vg0/lv0 ##移除lv
vgremove vg0 ##移除vg
pvremove /dev/vdb1 ##移除分区
fdisk /dev/vdb ##删除分区
10.当lvm的分区被误删
当lvm已经建立,直接执行fdisk /dev/vdb删除没有被使用的分区
partprobe ##同步分区表会出现报错
vgreduce vg0 --removemissing ##移除报错的分区2
partprobe ##同步分区表正常