什么是逻辑卷?
LVM:(Logical Volume Manager) ,逻辑卷管理器。
- 物理分区或磁盘是 LVM 的第一构建块。这些可以是分区、完整磁盘、 RAID 集或 SAN 磁盘。
- 物理卷(PV)是 LVM 所使用的基础 “物理 ”存储。这通常是块设备,例如分区或完整磁盘。设备必须初始化为LVM 物理卷 ,才能与 LVM 结合使用。
- 物理卷组(VG)是存储池, 由一个或多个物理卷组成。
- 物理区块(PE)是物理卷中存储的小型数据区块,用作 LVM 存储的后端。
- 逻辑区块映射到物理区块 ,构成 LVM 存储的前端。默认情况下,每个逻辑区块映射到一个物理区块。启用某些选项将更改此映射。例如 , 镜像会导致每个逻辑区块映射到两个物理区块,逻辑卷是逻辑区块组。逻辑卷可以像硬盘驱动器分区一样使用。
逻辑卷原理
我们的物理分区就相当于橙子,有几个分区就有几个橙子,现在我们把两个橙子榨成汁,放入各自的杯子中,即物理卷,我们把两杯橙汁倒入一个大容器中,即物理卷组,我们每次拿一个小杯子喝,即逻辑卷,喝完了再从大杯子(物理卷组)里倒,大杯子(物理卷组)橙汁不够,我们再用橙子(物理分区)继续榨汁倒入大杯子就行。
为什么使用逻辑卷?
逻辑卷和逻辑卷管理有助于更加轻松地管理磁盘空间。如果文件系统需要更多的空间,可以将其卷组的可用空间分配给逻辑卷,并且可以调整文件系统的大小。如果磁盘开始出现错误 ,可以通过卷组将替换磁盘注册为物理卷 ,并且逻辑卷的范围可迁移到新磁盘。
逻辑卷的建立
1.我们在虚拟硬盘上设立分区并将他的标签改为8e:
fdisk /dev/vdb
n
+100M
t
8e
wq
2.监控命令:
watch -n 1 'pvs;echo ===========;vgs;echo ===========;lvs;echo ==========;df -h /mnt'
3.创建
pvcreate /dev/vdb1
vgcreate vg0 /dev/vdb1 ##物理卷组名称自定义
lvcreate -L 20M -n lv0 vg0
-L后加容量的大小,-n表示逻辑卷的名称,是自定义的。
mkfs.xfs /dev/vg0/lv0
mount /dev/vg0/lv0 /mnt
注意:
df -h /mnt 1M=1024k
df -H /mnt 1M=1000k 更精确
逻辑卷的拉伸
1>当物理卷组vg中剩余容量充足时:
lvextend -L 60M /dev/vg0/lv0 ##拉伸到60M
xfs_growfs /dev/vg0/lv0 ##拉伸文件系统
2>当物理卷组vg中的容量不足时:
fdisk /dev/vdb ##再次建立分区并修改标签为8e
n
+400M
t
8e
wq
partprobe ##同步分区表
pvcreate /dev/vdb2
vgextend vg0 /dev/vdb2 ##拉伸物理卷组
lvextend -L 400M /dev/vg0/lv0
xfs_growfs /dev/vg0/lv0
ext4文件系统设备的拉伸与缩减
xfs文件类型只能扩大,不能缩小。而ext4文件类型既可以扩大也可以缩小。
umount /mnt
mkfs.ext4 /dev/vg0/lv0 ##将逻辑卷格式化为ext4格式
mount /dev/vg0/lv0 /mnt
blkid
1>拉伸:拉伸不用卸载
lvextend -L 450M /dev/vg0/lv0
resize2fs /dev/vg0/lv0 ##resize2fs:调整ext4文件系统的大小,放大或缩小没有挂载的文件系统的大小
2>缩减lv:
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
3>移出空闲设备
pvmove /dev/vdb1 /dev/vdb2 ##将vdb1中的数据移至vdb2中,前提是vdb2中的空间够我们转移
vgreduce vg0 /dev/vdb1
pvremove /dev/vdb1 ##取出/dev/vdb1
逻辑卷的快照
快照逻辑卷是 LVM 存储的另一项灵活功能。 LVM 快照是临时保留所更改的逻辑卷的原始数据的逻辑卷。快照提供原始卷的静态视图 , 从而能够以一致状态备份其数据快照卷大小只需足以存储在它存在期间更改的数据即可如果数据更改量大于快照存储容量 , 则快照将自动变为不可用( 原始卷原封不动 , 仍然需要从卷组中手动解除挂载和删除不可用的快照 )
1>在原来的挂载点新建文件
touch mnt/file{1..3}
2>卸载后新建快照
umount /mnt
lvcreate -L 20M -n lv0-backup -s /dev/vg0/lv0 ##创建快照lv0-backup
3>挂载快照,查看刚才新建的文件
mount /dev/vg0/lv0-backup /mnt/
cd /mnt
ls
4>删除文件,卸载快照,删除快照
rm -fr /mnt/*
umount /mnt/
lvremove /dev/vg0/lv0-backup
5>重新建立快照,挂载快照
lvcreate -L 20M -n lv0-backup -s /dev/vg0/lv0
mount /dev/vg0/lv0-backup /mnt/
cd /mnt
ls
逻辑卷的删除
umount /mnt/ ##卸载
lvremove /dev/vg0/lv0-backup ##删除快照
lvremove /dev/vg0/lv0 ##删除逻辑卷
vgremove vg0 ##删除物理卷组
pvremove /dev/vdb2 ##删除物理卷
在删除物理分区即可。