https://blog.51cto.com/kusorz/2495915

测试环境某台虚拟机报警,磁盘根分区可用容量不足,这个扩容还是比较简单的,网上看了一下教程很多都是在PVE上给机器新增磁盘,其实不用,PVE的虚拟机磁盘底层也是LVM,原理就是给每一个虚拟机分配了一个PV,管理页面有resize disk功能,其根本原理就是执行LV扩容命令,下面开始操作

1、resize disk:PVE管理网页上操作,注意这里Disk大小填写,比如原有磁盘大小为50G,想扩容到300G,则填写250即可

网页操作截图:

也可以直接在宿主机上执行命令:

qm resize 202 scsi0 250G  # 202为虚拟机ID,scsi0为磁盘编号 
2、无需重启,虚拟机上使用fdisk -l或者parted -l可以看到磁盘空间已经增加,这时候如果虚拟机磁盘分区是LVM格式的,先扩容PV
# pvresize  /dev/sda2    # 我这里虚拟机使用的LVM PV分区为/dev/sda2
  Physical volume "/dev/sda2" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized

如果不是LVM分区格式的,可以借助growpart工具扩容(内核需大于3.6.0)

yum install cloud-utils-growpart xfsprogs -y # 先安装该工具
growpart /dev/sda 1  #  表示扩容系统盘的第一个分区(/dev/sda1),根据你自己的分区来

然后直接跳到第4步吧

3、扩容LV

# lvresize -l +20G /dev/mapper/centos-root
# lvextend -l +100%FREE /dev/mapper/centos-root
# lvresize -l +100%FREE /dev/mapper/centos-root   # 直接把所有剩余空间都分配给centos-root这个LV
  Size of logical volume centos/root changed from <45.12 GiB (11550 extents) to 295.12 GiB (75551 extents).
  Logical volume centos/root successfully resized.
4、扩容文件系统

先用df -hT查看分区文件格式,如图:

如果是xfs文件格式的,使用这个命令

xfs_growfs /dev/mapper/centos-root

如果是ext4文件格式的,使用这个命令

resize2fs /dev/mapper/centos-root

完工,虚拟机磁盘扩容其实很简单,如果还不清楚的,建议再去补下PV、VG、LV的知识。

作者:Jeebiz  创建时间:2021-02-20 20:18
 更新时间:2023-03-28 22:49