一、lvm的存在意义
用软件实现设备可拉神或缩减,而设备中存在的数据不变,使用户在无需停机的情况下可以方便地调整各个分区大小。
二、lvm的术语
pe最小存储单元
pv物理卷,时lvm的基本存储逻辑块,包含lvm相关参数
vg卷组,由一个或多个pv组成,可以在其上创建一个或多个lv
lv逻辑卷,类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统
三、lvm的检测信息
pv的查看pvs或pvdisplay
vg的查看vgs或vgdisplay
lvm的查看lvs或lvdisplay
四、lvm的建立
watch -n 1 'pvs; echo ===== ; vgs;echo ===== ;lvs; echo =====;df -h /mnt'
监控
创建分区并改变分区标签为lvm(gpt 15|mbr 8e)
pvcreate /dev/vdb1
vgcreate -s 8M vg0 /dev/vdb1
lvcreate -L 100M -n lv0 vg0
mkfs.xfs /dev/vg0/lv0
mount /dev/vg0/lv0 /mnt
结果:
五、lvm的拉伸
当vg中的容量够用时
lvextend -L 200M /dev/vg0/lv0
(扩展到200M)
xfs_growfs /dev/vg0/lv0
(同步到文件系统)
结果:
当vg中的容量不够用时
创建分区并改变分区标签为lvm(gpt 15|mbr 8e)
partprobe
同步分区表
mkfs.xfs /dev/vdb2
格式化分区
pvcreate /dev/vdb2
vgextend vg0 /dev/vdb2
把
lvextend -L 800M /dev/vg0/lv0
xfs_growfs /dev/vg0/lv0
同步到文件系统
结果:
注:xfs文件格式不可以进行缩减
六、ext4文件系统
ext4文件系统的拉伸
mkfs.ext4 /dev/vg0/lv0
把文件系统设置为ext4
lvextend -L 900M /dev/vg0/lv0
扩展到400M
resize2fs /dev/vg0/lv0
把文件系统平铺
ext文件系统缩减
umount /mnt
解除挂载
e2fsck -f /dev/vg0/lv0
扫描文件系统占用资源大小
resize2fs /dev/vg0/lv0 200M
把文件系统先缩减到200M
mount /dev/vg0/lv0 /mnt
挂载
lvreduce -L 200M /dev/vg0/lv0
缩减lv到200M
七、ext文件系统对卷缩减(数据迁移)
vg缩减
pvmove /dev/vdb1 /dev/vdb2
从vdb1移动到vdb2
vgreduce vg0 /dev/vdb1
把vg0中的/dev/vdb1删除
pvremove /dev/vdb1
把/dev/vdb1上的lvm管理信息删除
八、lvm快照—>用于保护原始数据
touch /mnt/file{1..10}
lvcreate -L 100M -n lv0backup -s /dev/vg0/lv0
以lv0为母盘创建大小为100M的快照文件lv0backup
mount /dev/vg0/lv0-backup /mnt
挂载快照
rm -fr /mnt/*
删除文件
umount /mnt
卸载
lvremove /dev/vg0/lv0-backup
删除快照
lvcreate -L 100M -n lv0-backup -s /dev/vg0/lv0
mount /dev/vg0/lv0-backup /mnt
(文件恢复)
ls
九、lvm快照删除
umount /mnt 卸载
lvremove /dev/vg0/lv0-backup 删除快照
vgremove vg0 删除vg
pvremove /dev/vdb2 删除pv
fdisk /dev/vdb 删除设备
十、lvm解决报错
创建2个lvm设备,以及pv,挂在同一个vg0下,创建lv,删除空闲的设备,报错
vgreduce vg0 --removemissing
删除错误的设备