一. LVM
LVM(Logical Volume Manager) 逻辑卷管理器,可以动态调整磁盘容量,提高磁盘管理灵活性。绝大多数分区可以基于LVM创建,但是 /boot 挂载分区不能基于LVM创建。
LVM的组成:
PV(Physical Volume) ---->物理卷,物理卷可以由整个硬盘也可以是独立分区转化而成。物理卷包括了许多默认大小为4MB的PE(Physical Extent)基本单元。
PE(Physical Extent)---->物理拓展,lvm设备的最小存储单元。
VG(Volumn Group) ---->物理卷组,卷组由一个或多个物理卷组成的整体
LV(Logical Volume)----> 逻辑卷,从卷组中抽出一部分空间,可以建立文件系统;直接使用的设备,可以增大缩减并保持原有的数据不变
二.lvm的建立
1.分区时设定分区标签为8e
修改完成后得到以下分区
2)建立监控命令
watch -n 1 'pvs;echo ------------;vgs;echo ------------;lvs;echo ------------;df -h /mnt'
创建两个物理卷
pvcreate /dev/vdb5
pvcreate /dev/vdb6
创建一个物理卷组
vgcreate vg0 /dev/vdb5
创建一个大小为20M的逻辑卷
lvcreate -L 20M -n lv0 vg0
格式化逻辑卷lv0,将lv0挂载到/mnt上
mkfs.xfs /dev/vg0/lv0
mount /dev/vg0/lv0 /mnt
df -H /mnt
df -h /mnt
三.lvm的拉伸——lvm支持热拉伸
拉伸前
1.当vg中的剩余容量充足情况
lvextend -L 80M /dev/vg0/lv0 ##拉伸到80M
拉伸文件系统——往磁盘里存东西时需要的软件
xfs_growfs /dev/vg0/lv0
2.当vg(物理卷组)中的容量不足时
如:我们将lv0拉伸到1G
此时我们需要做到的是拉伸物理卷组
【拉伸前的物理卷组大小】
先建立一个大小为1G的LVM分区——/dev/vdb7
生成物理卷,然后拉伸卷组
pvcreate /dev/vdb7
注意:这里出现报错——为找到该物理卷。出现这种情况时,我们可以尝试进行同步分区表的操作
partprobe ##同步后再次尝试
建立成功!
接着拉伸物理卷组
vgextend vg0 /dev/vdb6
vgextend vg0 /dev/vdb7
【拉伸后的物理卷组大小】
最后一步: 拉伸设备与文件系统
四.针对ext文件系统设备的拉伸与缩减
操作过程如下
首先我们将lv0格式化为ext4的格式
umount /mnt
mkfs.ext4 /dev/vg0/lv0
mount /dev/vg0/lv0 /mnt
1)拉伸操作——拉伸不用卸载
【拉伸前】
【拉伸后】
lvextend -L 1111M /dev/vg0/lv0
调整ext4文件系统的大小,放大或缩小没有挂载的文件系统大小
resize2fs /dev/vg0/lv0
2)缩减操作——lvm
umount /dev/vg0/lv0 ##卸载
e2fsck -f /dev/vg0/lv0 ##检查文件系统的完整性
resize2fs /dev/vg0/lv0 100M ##缩减lv0到100M
lvreduce -L 100M /dev/vg0/lv0
mount /dev/vg0/lv0 /mnt
3)缩减操作——vg
上图中逻辑卷lv0大小为296M,三个物理卷中仅使用了/dev/vdb5,其他两个物理卷空闲。因此我们对于卷组的缩减可以从空闲的物理卷入手
移除空闲pv
vgreduce vg0 /dev/vdb6
vgreduce vg0 /dev/vdb7
移除空闲的设备
pvremove /dev/vdb6 /dev/vdb7
五.快照
1)在原来挂载的文件系统上建立文件
touch /mnt/hello{1..8}
2)卸载后拍快照
umount /mnt
lvcreate -L 50M -n lv0-backup -s /dev/vg0/lv0 ##创建大小为50M的快照,名字为lv0-backup
3)挂载快照,查看刚才建立的文件
mount /dev/vg0/lv0-backup /mnt
ll /mnt
4)删除文件,卸载快照,删除快照
rm -rf /mnt/*
umount /mnt
lvremove /dev/vg0/lv0-backup
5)重新拍快照然后挂载快照
lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0
mount /dev/vg0/lv0-backup /mnt
ll /mnt
删除的文件依靠快照又恢复了!!
六.LVM的删除
【删除前】
【删除后】
umount /mnt ##卸载
lvremove /dev/vg0/lv0-backup ##删除快照
lvremove /dev/vg0/lv0 ##删除逻辑卷
vgremove vg0 ##删除卷组
pvremove /dev/vdb6 ##删除物理卷
pvremove /dev/vdb5 ##删除物理卷
删除LVM分区
fdisk /dev/vdb
d