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