在线扩展数据盘分区及文件系统

最近更新时间:2024-11-05 17:54:32

我的收藏

操作场景

当通过控制台扩容了作为数据盘的云硬盘后,此时仅扩展了存储容量,还需进行云硬盘分区或文件系统的扩容。本文提供了不停服的扩容分区及文件系统步骤,您可参考本文进行操作。

前提条件

在按照本文操作前,请您给对应云硬盘创建快照,完成数据备份。详情请参见 创建快照。 如出现误操作导致数据丢失,则可回滚快照进行数据恢复。
已通过控制台扩容云硬盘容量,且该盘已挂载至云服务器。详情请参见 扩容云硬盘
Linux 云服务器内核不低于3.6.0版本,可使用 uname -a 命令查看内核版本。 若内核版本低于3.6.0,可参见 扩展分区及文件系统(Linux) 进行操作。

操作环境

资源
说明
操作系统
CentOS 8.0 64位
云硬盘(数据盘)
/dev/vdb:使用 MBR 分区和 ext4 文件系统,已通过控制台由50GB扩容到60GB。
/dev/vdc:使用 GPT 分区和 xfs 文件系统,已通过控制台由50GB扩容到60GB。

操作步骤

查看云硬盘分区信息

1. 登录云服务器,详情请参见 使用标准登录方式登录 Linux 实例(推荐)
2. 执行以下命令,查询云硬盘的分区信息。
fdisk -l
返回结果如下图所示:

可从图中获取以下信息:
/dev/vdb 数据盘容量为60GB,包含 MBR 分区 /dev/vdb1,容量为50GB。
/dev/vdc 数据盘容量为60GB,包含 GPT 分区 /dev/vdc1,容量为50GB。
3. 
执行以下命令,确认已有分区的文件系统类型。

df -TH
返回结果如下图所示:


可从图中获取以下信息:
/dev/vdb1 文件系统类型为 ext4,已挂载至 /mnt/disk1
/dev/vdc1 文件系统类型为 xfs,已挂载至 /mnt/disk2

扩容分区

1. 根据实际情况执行命令,安装 gdisk 工具。
若分区类型为 MBR,则请跳过此步骤。
若分区类型为 GPT,则请对应云服务器操作系统类型,执行以下命令安装工具。
CentOS
Ubuntu 或 Debian
yum install gdisk -y
apt-get install gdisk -y
2. 对应云服务器操作系统类型,执行以下命令,安装 growpart 工具。
CentOS
Ubuntu 或 Debian
yum install -y cloud-utils-growpart
apt-get install -y cloud-guest-utils
3. 执行以下命令,使用 growpart 工具扩容分区。 本文以扩容 /dev/vdb1 分区为例,命令中 /dev/vdb1 间需使用空格分隔。您可按需修改命令。
CentOS
LC_ALL=en_US.UTF-8 growpart /dev/vdb 1
Ubuntu 或 Debian
sudo LC_ALL=en_US.UTF-8 growpart /dev/vdb 1
返回结果如下图所示,则表示分区扩容成功。



返回结果如下图所示,则表示分区扩容失败,根据提示信息需要重启机器,重启机器后再重新执行 growpart /dev/vdb 1 看是否扩容成功。

如果仍然失败,可能是因为分区未对齐导致的,执行fdisk -l /dev/vdb查看分区是否按照2048扇区对齐,如下图所示,如果第1个分区是从第34扇区开始,非2048对齐,则需要按照 扩展 GPT 分区及文件系统(大于2TB)来重新扩展分区。


扩容文件系统

1. 根据 步骤3 获取到的文件系统类型,执行对应命令扩容文件系统:
扩容 ext 文件系统
扩容 xfs 文件系统
执行以下命令,扩容 ext 文件系统。
resize2fs /dev/vdb1
返回结果如下图所示:

5bd3a9bba754bf21256e792860c6d799.png (681×87)


执行以下命令,扩容 xfs 文件系统。
xfs_growfs <挂载点>
本文示例为 /dev/vdc1 挂载至 /mnt/disk2,则执行以下命令。
xfs_growfs /mnt/disk2
返回结果如下图所示:

6e76842b419bb054c9cae9f96fa0250b.png (690×188)


2. 执行以下命令,查看扩容结果。
df -TH
返回结果如下图所示,则表示已扩容成功。


3. 扩容成功后请检查数据完整性,观察云服务器中的业务是否正常运行。 如果有异常可以使用回滚快照的方式进行数据恢复,详情请参见 从快照回滚数据