背景
前段时间发现一个生产环境中的虚拟机磁盘空间不足,需要扩容。
这是生产环境,业务复杂不方便迁移,也只有一个硬盘分区。所以不能停机,也无法卸载分区。这里介绍一种不影响服务运行的扩容方法。
此方法仅限 xfs 格式!其他格式的分区此方式不一定可用。
VM 信息如下:
- CentOS 7.9
- xfs 格式,只有一个分区
步骤
调整硬盘容量
首先需要在 PVE 后台中把 VM 的磁盘进行扩容。双击或者点击上方的磁盘操作即可扩容。
我这里已经扩容完成了,就只加 1G 作为示例:从 20G 扩容至 21G。
进入 VM SSH
检查分区格式
先确认下分区的文件系统格式
|
|
可以看到是 xfs 格式,本文教程也仅限于此格式。
先使用确认磁盘空间已经调整成功
|
|
可以看到在 PVE 调整后已经从原本的 20G 变成了 21G。但这部分容量还没分配到 sda1 的可用分区中。
现在使用 growpart
拓展分区
|
|
意思是拓展 /dev/sda
的第一个分区,在我们这里也就是目标分区 /dev/sda1
。这条命令将会扩展分区 /dev/sda1
到整个磁盘的大小(只要磁盘空间允许)。
使用 xfs_growfs
扩展 xfs
文件系统
|
|
如果你要扩展的文件系统挂载在根目录(/
)上,只需指定挂载点 /
。对于其他挂载点(例如 /data
),可以指定对应的挂载点路径(如 xfs_growfs /data
)。
结束
现在可以使用 df -h
查看新的空间信息,确认是否扩容成功。
可以看到 /dev/sda1
已经成功变成 21G 了。
这样,无需卸载分区或中断系统运行,就能完成 xfs
文件系统的在线扩展操作。