LVM扩容、缩容

扩容可以在线扩容,但缩容,需先卸载!

名词解释

pv:物理卷(Physical Volume),把底层分区磁盘处理为物理卷

vg:卷组(Volume group),把pv卷加入到vg存储池中

lv:逻辑卷(Logical volume),vg容量划分为一个个的逻辑卷

pe:存储的最小单元(1pe=4M,将物理卷格式化为pv后,存储单元为pe)

三者关系

把pv加入到vg的管理存储,而后vg可以把容量分给需要的lv

PV(物理卷)创建、查看、删除

PV创建命令:pvcreate 《磁盘1》《磁盘2》《分区1》 《分区2》 《分区3》...

注:pvcreate创建时会将磁盘重新格式化!!!

注:pvcreate创建时,可以针对主分区、逻辑分区(无法对扩展分区,因为扩展分区只是个标签,实际需要对逻辑分区进行操作)

1
2
3
4
5
#将分区创建为PV
pvcreate /dev/sdb1

#将硬盘创建为PV(免去分区流程,但不推荐)
pvcreate /dev/sdb
PV查看命令:pvs或pvdisplay
PV删除命令:pvremove 《磁盘1》《磁盘2》《分区1》 《分区2》 《分区3》...

VG(物理卷组)创建、查看、删除、扩容、缩容

VG创建命令:vgcreate 《指定vg名称》 《要加入这个vg的pv卷1》 《要加入这个vg的pv卷2》 《要加入这个vg的pv卷3》 ...
VG查看命令:vgs或vgdisplay
VG删除命令:vgremove 《vg名称》
VG扩容,添加PV命令:vgextend 《vg名称》 《PV设备路径》
VG缩容,移除PV命令:vgreduce 《vg名称》 《PV设备路径》
** **

LV(逻辑卷)创建、查看、扩容、缩容

lv创建命令:lvcreate -n 《lv逻辑卷名称》 -L 《分配容量如:2G》 《vg名称:要从哪个vg中划拨容量》
lv查看命令:lvs或lvdisplay

lv删除命令:lvremove 《lv路径:/dev/所属vg组名/lv分区名》 (注:需先卸载挂着卷)
lv扩容命令:

指定扩容百分比空间:lvextend -l +100%FREE 《lv路径:/dev/所属vg组名/lv分区名》

指定扩容3G空间 :lvextend -L 《扩容容量:如+3G》 《lv路径:/dev/所属vg组名/lv分区名》

lv缩容命令:

注:1.缩容,

注:2.缩小的容量要小于剩余空间,否则文件将丢失!!!

当前容量减少指定容量:lvreduce -L 《缩容容量如剩余空间5G,而缩小的空间要小于5G:如-3G》 《lv路径:/dev/所属vg组名/lv分区名》

当前容量缩至指定容量:lvreduce -L 《缩容至容量10G:如10G》 《lv路径:/dev/所属vg组名/lv分区名》

lv扩容或缩容后需要刷新空间:

若lv分区为ext2/3/4文件类型:resize2fs

若lv分区为xfs文件类型: xfs_growfs

注:xfs缩容后,需要格式化!!!!

格式化LV(逻辑卷)

格式化分区:mkfs.ext4 《/dev/vg组名/lv分区名》

注:使用 mkfs 或 mkfs.文件系统类型 进行格式化,与磁盘分区格式化相同。只是原来格式是对物理磁盘的分区进行格式化,这里是对lv分区进行格式化。

挂载LV(逻辑卷)

注:挂着前需要格式化文件系统,否则提示"not fs type"

挂载命令:mount 《/dev/vg组名/lv分区名》 《挂载点》

挂载逻辑卷与磁盘分区挂载相同,都是使用mount

删除顺序lv、gv、pv

在删除时,需要先卸载lv,再依次删除lv、gv、pv的顺序,否则删除失败!

LV扩容

lv可以在线扩容,无需卸载原有lv

1.检查vg有可用容量(vg容量不满足扩容空间跳至第二步,满足则直接第三步)

2.若vg不足扩容,则需要添加向vg组中添加pv,先扩容vg

3.当vg有足够容量,可以lv扩容

lv扩容命令:

指定扩容百分比空间:lvextend -l +100%FREE 《lv路径:/dev/所属vg组名/lv分区名》

指定扩容3G空间 :lvextend -L 《扩容容量:如+3G》 《lv路径:/dev/所属vg组名/lv分区名》

注:扩容后刷新文件系统

ext2/3/4刷新命令:resize2fs

xfs刷新命令: xfs_growfs

LV缩容

lv缩容,很少用,但不是不用!!!

扩容可以在线扩容,但缩容,需先卸载!

1.卸载lv

umount 《lv路径:/dev/所属v

g组名/lv分区名》

2.缩容lv(缩小的容量要小于剩余空间,否则文件将丢失!!!)

当前容量减少指定容量:lvreduce -L 《缩容容量如剩余空间5G,而缩小的空间要小于5G:如-3G》 《lv路径:/dev/所属vg组名/lv分区名》

当前容量缩至指定容量:lvreduce -L 《缩容至容量10G:如10G》 《lv路径:/dev/所属vg组名/lv分区名》

3.缩容vg(移除的pv容量要小于vg剩余空间)

VG缩容,移除PV命令:vgreduce 《vg名称》 《PV设备路径》

4.删除pv

PV删除命令:pvremove 《PV设备路径》

几种文件系统的缩容

文件系统 是否需要卸载 缩容操作工具 风险提示
Btrfs btrfs filesystem resize 需严格按顺序操作
ext4 resize2fs 需先卸载并检查文件系统
XFS 需卸载后重新格式化 数据丢失风险高

Btrfs缩容顺序​

  • ​先缩文件系统,再缩 LV​​:若顺序颠倒(先缩 LV),可能导致文件系统元数据损坏。
1
2
3
4
# 将挂载在 /mnt 的 Btrfs 文件系统缩小10G
btrfs filesystem resize -10G /mnt
#缩小逻辑卷(LV)​缩小10G
lvreduce -L -10G /dev/vg0/lv0