虚拟机系统盘LVM逻辑卷扩容文档

本文主要介绍如何对虚拟机的系统盘LVM逻辑卷进行扩容。假设在虚拟机订购完成后,默认系统盘空间为50G,均挂载在根分区(/)下,然后在控制台上进行系统盘扩容,但是因为操作系统内部LVM逻辑卷和文件系统未进行扩容操作,执行df -h会看到根分区仍然只有50G的空间,故需要进行LVM逻辑卷和文件系统的扩容。

说明
此扩容操作涉及到系统盘,若操作有误存在导致操作系统故障的风险,请务必严格按照文档谨慎操作并做好备份操作,建议在虚拟机创建初期,未部署任何应用前进行操作。

前期准备


在待扩容机器上依此执行以下命令检查确认LVM逻辑卷和磁盘分区情况

1
2
3
df  -h
lvs
lsblk

例如通过以下结果可知系统盘(/dev/vda)根分区属于centos这个VG,root这个LV,,目前根分区空间只有50G,但实际上/dev/vda磁盘有500G的空间。

那么接下来就是要将系统盘(/dev/vda)的剩余空间全部扩容到根分区中。

操作步骤


划分分区

  1. 通过fdisk命令对系统盘(/dev/vda)进行分区,将/dev/vda的剩余空间全部划分到一个分区中
1
2
# fdisk <path_to_device>
fdisk /dev/vda

  1. 不要退出,继续按照下图将新分区的分区类型改为“Linux LVM”,最后执行wq保存退出

  1. 执行以下命令重新读取分区表信息
1
partprobe
  1. 执行以下命令检查分区情况,新分区为/dev/vda3
1
lsblk

扩容LVM

  1. 创建物理卷(PV)。使用以下命令用/dev/vda3创建物理卷并查看物理卷信息
1
2
# pvcreate <path_to_partition>
pvcreate /dev/vda3

  1. 执行以下命令将物理卷(PV)加入centos卷组(VG)
1
2
# vgextend <vg_name> <pv_name>
vgextend centos /dev/vda3

  1. 执行以下命令对root逻辑卷(LV)进行扩容,把centos卷组中的所有剩余空间都分配给root
1
2
3
vgdisplay    # 查看剩余PE数量
# lvextend -l +<Free PE> <path_to_lv>
lvextend -l +115199 /dev/centos/root # 命令中的115199替换为上面查看到的剩余PE数量,加号保留

  1. 执行以下命令查看root逻辑卷大小
1
lvs

扩容文件系统

  1. 执行以下命令查看根分区文件系统类型
1
mount | grep -w /
  1. 如果是XFS文件系统执行以下命令扩容
1
2
# xfs_growfs <mountpoint>
xfs_growfs /
  1. 如果是EXT4文件系统执行以下命令扩容
1
2
# resize2fs <path_to_lv>
resize2fs /dev/mapper/centos-root
  1. 执行以下命令确认根分区磁盘空间是否扩容成功
1
df -h

  1. (可选)执行以下命令重启虚拟机看是否重启成功,确保扩容没有对操作系统造成影响。
1
reboot