5. LVM 逻辑卷

1.传统磁盘管理的问题

当分区大小不够用时无法扩展其大小,只能通过添加硬盘、创建新的分区来扩充空间,但是新添加的硬盘是作为独立的文件系统存在的,而上层应用很多时候只能访问一个文件系统,只能让现有磁盘下线,换上新的磁盘之后,再将原有的数据导入。

2.什么是 LVM

LVM(Logical volume Manager) 逻辑卷管理通过将底层物理硬盘封装起来,以逻辑卷的形式表现给上层系统。逻辑卷的大小可以动态调整,而且不会丢失现有的数据。新加入的硬盘也不会改变现有上层的逻辑卷。

3.底层运行原理

物理磁盘被格式化为PV(physical volume),空间被分为一个个PE(physical extend)【大小为 4 MB,为逻辑卷的最小单位】。不同的PV加入同一个VG(volume group),不同PV的PE全部进入VG的PE池内。LV(logical volume)基于PE创建,大小为PE的整数倍,组成LV的PE可能来自于不同的物理磁盘。LV现在就能挂载使用了。

4.创建 LVM

① 将物理磁盘设备初始化为物理卷
pvcreate /dev/sdb /dev/sdc
② 创建卷组,并将pv加入卷组中
vgcreate vgname /dev/sdb /dev/sdc
③ 基于卷组创建逻辑卷
lvcreate -n lvname -L 容量 vgname
④ 为创建好的逻辑卷创建文件系统
mkfs.ext4 /dev/vgname/lvname
⑤ 将格式化好的逻辑卷挂载使用
mount /dev/vgname/lvname /mnt

5. 显示逻辑卷的相关信息

查看物理卷 pvdisplay pvs

查看卷组 vgdisplay vgs

查看逻辑卷 lvdisplay lvs

6. 删除 LVM

① 解除挂载
umount /mnt/
② 删除 LV
lvremove /dev/vgname/lvname
③ 删除 VG
vgremove vgname
④ 删除 物理卷
pvremove /dev/sdb /dev/sdc

7. 扩充 LVM

① 扩充逻辑卷
lvextend -L +1G /dev/vgname/lvname
② 更新文件系统
resize2fs /dev/vgname/lvname

8. 当 vg 中不够时的扩充

① 将要添加到vg的硬盘格式化为 pv
pvcreate /dev/sdd
② 将新的 pv 添加到指定卷组中
vgextend vgname /dev/sdd
③ 重复 7 的操作

9. 缩小一个逻辑卷

逻辑卷的缩小必须离线执行
① 卸载已经挂载的逻辑卷
umount /dev/vgname/lvname
② 缩小文件系统
resize2fs /dev/vgname/lvname 1G【缩小至1G】
③ 缩小LV
lvreduce -L -1G /dev/vgname/lvname【减小1G,要等于或大于②的容量】
④ 挂载
mount /dev/vgname/lvname /mnt

10.缩小卷组

将一个pv从指定卷组中移除
vgreduce vgname /dev/sdd