0 原盘扩容

适用于磁盘未分区或者标准分区后直接挂载到系统目录, 后续通过云平台等方式扩容磁盘后需要在系统内更新容量的场景

yum install -y cloud-utils-growpart
# 1 代表分区号, 如果是整个盘格式化进行挂载则可以直接尝试 resize2fs 或者 xfs_growfs
growpart /dev/vdb 1
resize2fs /dev/vdb
xfs_growfs /dev/vdb

1 lvm 原盘扩容

与原盘扩容类似, 需要在 lvm 中对 pv 进行容量更新

yum install -y cloud-utils-growpart
# 1 代表分区号, 如果整盘作为 pv, 直接跳过此步骤即可
growpart /dev/vdb 1
pvresize /dev/vdb1
vgdisplay
lvextend -l +100%FREE /dev/mapper/vg_home-lv_home
lvextend -L +100G /dev/mapper/vg_home-lv_home
# ext4
resize2fs /dev/mapper/vg_home-lv_home
# xfs
xfs_growfs /dev/mapper/vg_home-lv_home 

2 lvm 新加盘扩容

最常见也是最合理的扩容方式

pvcreate /dev/vdc1
vgextend vg_home /dev/vdc1
lvextend -l +100%FREE /dev/mapper/vg_home-lv_home
lvextend -L +100G /dev/mapper/vg_home-lv_home
# ext4
resize2fs /dev/mapper/vg_home-lv_home 
# xfs
xfs_growfs /dev/mapper/vg_home-lv_home 

3 常见问题

partprobe 如果遇到报错 Error: The backup GPT table is not at the end of the disk 参考

umount 无法卸载

umount /data
lsof +D /data
ps -elf | grep -v grep | grep " /data"
# 如果无进程占用仍 busy 状态则查看是否有 nfs 进程
umount /data

lvm 命令卡死, 有如下输出, 删除 /run/lock/lvm/ 下的文件即可, 参考

  Giving up waiting for lock.
  Can't get lock for vg_home
  Cannot process volume group vg_home

以上.