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)

lvm逻辑卷

lvm逻辑卷

lvm逻辑卷

lvm逻辑卷

lvm逻辑卷

lvm逻辑卷

用: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里创建

lvm逻辑卷

(5)mkfs.xfs  /dev/vg0/lv0                ##格式化

lvm逻辑卷

(6)mount  /dev/vg0/lv0  /mnt           ##挂载

lvm逻辑卷

4.lvm检测信息

pvs

vgs
lvs

lvm逻辑卷

pvdisplay

lvm逻辑卷

vgdisplay

lvm逻辑卷

lvdisplay

lvm逻辑卷

5.lvm拉伸
(1)当vg中的容量够用时:
lvextend  -L 200M  /dev/vg0/lv0    ##拉伸设备到200M
xfs_drowfs /dev/vg0/lv0            ##平铺文件系统

lvm逻辑卷

(2)当vg中容量不够用时:
再次分区并且改变分区标签为lvm(gpt 15|mbr 8e)
pvcreate  /dev/vdb2  
vgextend vg0 /dev/vdb2

lvm逻辑卷

lvextend -L 1400M /dev/vg0/lv0
xfs_growfs /dev/vg0/lv0

vg仅剩下220M,不能扩展到1400M

lvm逻辑卷

再次创建分区/vdb2,把vg扩展,vg够用可以直接扩展lv到1400M

lvm逻辑卷

6.ext4文件系统,能够缩减;xfs文件系统不能缩减,只能拉伸

(1)umount   /mnt                  
mkfs.ext4  /dev/vg0/lv0        ##格式化为ext4  

lvm逻辑卷

lvm逻辑卷 

拉伸:
lvextend  -L 1500M /dev/vg0/lv0    ##设备
resize2fs /dev/vg0/lv0                 ##文件设备

lvm逻辑卷


(2)缩减对设备
umount  /mnt
e2fsck   -f  /dev/vg0/lv0

resize2fs /dev/vg0/lv0   400M

lvm逻辑卷
mount /dev/vg0/lv0  /mnt
lvreduce  -L 400M  /dev/vg0/lv0

lvm逻辑卷

注意:缩减的时候先执行e2fsck   -f  /dev/vg0/lv0   ##扫描文件大小,看缩减的空间是否合适;先把挂载卸载,对文件设备缩减之后,再次挂载,对设备进行缩减

7.卸载空闲的设备
pvmove  /dev/vdb1  /dev/vdb2    ####有数据的话,先把设备里的数据移走
vgreduce  vg0  /dev/vdb1

pvremove  /dev/vdb1

lvm逻辑卷

/dev/vdb2是完全空闲的,可以直接移除

lvm逻辑卷

8.lvm块照
lvcreate -L 100M -n lv0backup  -s /dev/vg0/lv0     ##建立快照

lvm逻辑卷

mount /dev/vg0/lv0backup  /mnt                         ##挂载快照,但是读取的数据还是/dev/vg0/lv0

lvm逻辑卷

rm -fr /mnt/*                                               ##删除/mnt下的文件

umount /mnt                                              ##卸载快照
lvremove  /dev/vg0/lv0backup                     ##移除快照

lvm逻辑卷

lvcreate -L 100M -n lv0backup  -s /dev/vg0/lv0   ##重新建立快照

lvm逻辑卷

mount /dev/vg0/lv0backup  /mnt                   ##挂载快照

lvm逻辑卷

还原/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                                         ##删除分区
lvm逻辑卷

10.当lvm的分区被误删
当lvm已经建立,直接执行fdisk  /dev/vdb删除没有被使用的分区
partprobe    ##同步分区表会出现报错

lvm逻辑卷

vgreduce   vg0   --removemissing     ##移除报错的分区2
partprobe    ##同步分区表正常

lvm逻辑卷