lvm逻辑卷管理
pv 物理卷 被lv命令处理过的物理分区
vg 物理卷组 被组装到一起的物理卷
pe 物理块 lvm 设备的最小存储单元 ,默认为4M,lvm 是pe 的整数倍
lv ##逻辑卷,类似非lvm系统的逻辑分区
le ##逻辑块,lv也可当作最小的寻址单元
lvm 逻辑卷 直接使用的设备,可以增大缩减并保持原有数据不变
原理:lvm的做法就是把创建出的物理分区,或者磁盘通过软件组合在一起成为一个大的磁盘VG像一个大容器一样,然后把这块大磁盘分成可用的小分区lv就可以挂载使用了,不够只需不断新加物理分区就可以了。而且拉伸lvm即可,它的可拉伸性保证了原数据的存储,极大扩充的磁盘的容量,比较灵活。
1.lvm 建立
建立分区,并定时分区标签为 8e,设置lvm类型。
在这里我们先建立两个分区
同步分区:
pvcreate /dev/vdb1 ##创建物理卷
vgcreate vg0 /dev/vdb1 ##创建物理卷组
lvcreate -L 20M -n lv0 vg0 ##创建逻辑卷 (由于没有自行创建pe,所以默认pe为4M,所创建的lv应是pe的整数倍)
mkfs.xfs /dev/vg0/lv0 ##初始化
mount /dev/vg0/lv0 /mnt ##挂载
df -H /mnt ##查看挂载在mnt上的磁盘大小
2.lvm的拉伸
支持(在线)热拉伸
监控 watch -n 1 'pvs;vgs;lvs;df -h /mnt'
a. 当vg 中剩余容量充足情况
lvcreate -L 200M -n lv0 vg0 ##拉伸设备
xfs_growfs /dev/vg0/lv0 ##拉伸文件系统
b. 当vg 中容量不足时
再次建立分区并修改标签8e
fdisk /dev/vdb
partprobe 同步分区
pvcreate /dev/vdb2 创建物理卷
vgextend vgo /dev/vdb2 拉伸物理卷组
lvextend -L 200M /dev/vg0/lv0
xfs_growfs /dev/vg0/lv0
3.针对ext文件系统的设备的拉神和缩减
umount /mnt
mkfs.ext4 /dev/vg0/lv0
mount /dev/vg0/lv0 /mnt
#1)拉伸
lvextend -L 250M /dev/vg0/lv0
resize2fs /dev/vg0/lv0
blkid
#2)缩减lvm
umount /dev/vg0/lv0 卸载
e2fsck -f /dev/vg0/lv0 扫描数据
resize2fs /dev/vg0/lv0 100M 缩减到100M
lvreduce -L 100M /dev/vg0/lv0
mount /dev/vg0/lv0 /mnt
3)缩减vg
移除空闲pv
vgreduce vg0 /dev/vdb2
移除含有数据的设备
pvmove /dev/vdb1 /dev/vdb2 移除/dev/vdb1的数据
vgreduce vg0 /dev/vdb1 移除/dev/vdb1的vg0
pvremove /dev/vdb1 移除/dev/vdb1
4.lvm快照
lvcreate -L 10M -n lv0-backup -s /dev/vg0/lv0
mount /dev/vg0/lv0-backup /mnt
rm -fr /mnt/* 破坏快照
破坏快照
恢复坏掉的快照
umount /mnt
lvremove /dev/vg0/lv0-backup 删除快照
lvcreate -L 10M -n lv0-backup -s /dev/vg0/lv0 快照
mount /dev/vg0/lv0-backup /mnt 挂载
lvm 删除
umount /mnt
lvremove /dev/vg0/lv0-backup 删除快照
lvremove /dev/vg0/lv0 删除/dev/vg0/lv0
vgremove vg0
pvremove /dev/vdb2 移除/dev/vdb2
pvs 查看是否删除
vgs
lvs
df -H