一.LVM简介
1.什么是LVM?
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
2.LVM工作机制?
LVM 就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。
二.逻辑卷基本概念
pv | 物理卷(被lv命令处理过的物理分区) |
---|---|
vg | 物理卷组(被组装到一起的物理卷) |
pe | 图里扩展(lvm设备的最小存储单元lvm时pe的整数倍) |
lvm | 逻辑卷(直接使用的设备,可以增大缩减并保持原有数据不变) |
三.LVM的建立
fdisk /dev/vdb
n
+100M
t
8e
wq
为了实验便于观察使用监控命令
watch -n 1 'pvs;echo ===========;vgs;echo ===========;lvs;echo ==========;df -h /mnt'
创建lvm
pvcreate /dev/vdb1
创建vg
vgcreate vg0 /dev/vdb1 ##物理卷组名称自定义
创建lv
lvcreate -L 100M -n lv0 vg0 -L跟的lv的大小 -n跟的创建逻辑卷lv的名称
mkfs.xfs /dev/vg0/lv0 格式化逻辑卷lv0
mount /dev/vg0/lv0 /mnt 将逻辑卷lv0挂载到/data目录
df -H /data 查看/data目录大小,十进制
df -h /data 查看/data目录大小,二进制
四.lv的拉伸
1.当vg中的剩余容量充足情况
lvextend -L 50M vg0 ##拉伸设备
xfs_grow /dev/vg0/lv ##拉伸文件系统
xfs_growfs /dev/vg0/lv0 ##拉伸文件系统
2.当vg中的容量不足时
再次建立分区并修改标签8e
pvcreate /dev/vdb2
vgextend vg0 /dev/vdb2 ##拉伸物理卷组
lvextend -L 400M vg0
xfs_grow /dev/vg0/lv
3.针对ext文件系统的设备的拉伸和缩减(xfs文件类型只能扩大,不能缩小。)
拉伸
umount /mnt
mkfs.ext4 /dev/vg0/lv0 将lv0格式化成ext4格式文件系统
mount /dev/vg0/lv0 /mnt
lvextend -L 250M /dev/vg0/lv0 #拉伸设备
resize2fs /dev/vg0/lv0 #拉伸ext4文件系统
缩减
umount /dev/vg0/lv0 ##先卸载
e2fsck -f /dev/vg0/lv0 ##检测文件系统完整性
resize2fs /dev/vg0/lv0 100M ##缩减文件系统到100M
mount /dev/vg0/lv0 /mnt/
lvreduce -L 100M /dev/vg0/lv0 ##缩减lv0到100M
移出空闲设备
pvmove /dev/vdb1 /dev/vdb2 ##将vdb1中的数据移至vdb2中,前提是vdb2中的空间够我们转移
vgreduce vg0 /dev/vdb1
pvremove /dev/vdb1 ##取出/dev/vdb1
五.逻辑卷快照
1.在实验开始前给 lvm 的挂载点里写一些数据
lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0 ##创建一个快照,快照名称任意
mount /dev/vg0/lv0-backup /mnt ##挂载快照
2.将创建的文件删除和快照都删除
rm -fr /mnt/file*
umount /mnt
lvremove /dev/vg0/lv0-backup
3.重新创建快照,文件恢复
lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0
mount /dev/vg0/lv0-backup /mnt
4.删除 lvm (从小到大删除与创建相反)
umount /mnt ##卸载状态下进行
lvremove /dev/vg0/lv0-backup ##删除lvm快照
lvremove /dev/vg0/lv0 ##删除
lvm vgremove vg0 ##删除
vg pvremove /dev/vdb2 ##删除
pv fdisk /dev/vdb ##删除分区