我想在 Amazon Elastic Compute Cloud (Amazon EC2) 实例上增加 Amazon Elastic Block Store (Amazon EBS) 卷的大小后扩展 Linux 文件系统。
解决方法
在文件系统处于 optimizing(正在优化)状态时调整其大小。
**注意:**以下步骤仅适用于使用整个磁盘设备的文件系统。您不能使用这些步骤来增加分区、根文件系统、RAID 设备或逻辑卷管理器 (LVM) 上的文件系统。以下示例将 8GB ext4 文件系统扩展为完全使用 16GB 卷。
要扩展您的 Linux 文件系统,请完成以下步骤:
-
为您的卷创建快照。
-
使用 SSH 连接到您的实例。
-
要检查文件系统使用的大小和百分比,请运行以下 df -h 命令:
df -h
输出示例:
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.7G 7.7G 0 100% /
/dev/xvdf 16G 7.1G 8.0G 48% /home/ubuntu/test
注意:在上述输出示例中,/dev/xvdf 文件系统大小为 16G,其中 48% 已经被占用。在 Nitro 实例上,磁盘设备命名为 /dev/nvmeXn1,分区命名为 /dev/nvmeXn1pY。在文件系统名称中,X 表示磁盘,Y 表示分区。
-
要检查 xvdf 卷的大小,请运行以下 lsblk 命令:
ubuntu@ip-172-31-32-114:~ lsblk
输出示例:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 16G 0 disk
└─xvda1 202:1 0 8G 0 part /
xvdf 202:80 0 16G 0 disk /home/ubuntu/test
**注意:**在上述输出示例中,xvda 卷的大小为 16GB。
-
在 lsblk 命令的输出中,比较分区大小和卷大小,然后执行以下操作之一:
如果分区大小小于卷大小,则继续执行步骤 6。
如果分区大小等于卷大小,则无需扩展分区。继续执行步骤 7。
**注意:**如果卷中有分区包含文件系统,请在扩展文件系统之前扩展该分区。
-
运行以下 growpart 命令,扩展分区并指定设备名称和分区编号:
sudo growpart /dev/xvda 1
输出示例:
CHANGED: partition=1 start=2048 old:
**注意:**分区编号即为设备名称后的数字。例如,对于 xvda1,分区编号为 1。
-
要验证是否已扩展分区,请运行 lsblk 命令:
ubuntu@ip-172-31-32-114:~ lsblk
输出示例:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 16G 0 disk
└─xvda1 202:1 0 8G 0 part /
xvdf 202:80 0 16G 0 disk /home/ubuntu/test
**注意:**分区大小必须等于卷大小。
-
运行以下 resize2fs 命令,自动将 /dev/xvdf 文件系统的大小扩展到卷上的全部空间。df -h 命令的输出中包括设备名称:
ubuntu@ip-172-31-32-114:~ sudo resize2fs /dev/xvda1
**注意:**只能对 ext3 和 ext4文件系统运行 resize2fs 命令。
输出示例:
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/xvda1 is mounted on /;
on-line resizing required old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/xvda1 is now 4194304 (4k) blocks long
**注意:**在上述输出示例中,卷使用 ext4 文件系统。如果收到 "resize2fs: Device or resource busy while trying to open /dev/xvdf" 错误,则说明您调整的是磁盘分区的大小。
如果收到 "resize2fs: Bad magic number in super-block while trying to open /dev/xvda1:" 错误,则说明文件系统并非 ext4。要检查文件系统类型,请运行 df -hT 命令。
如果收到 "open: No such file or directory while opening /dev/xvdb1:" 错误,则说明您指定的分区有误。要检查分区,请运行 df -hT 命令。
-
运行 xfs_growfs 命令并指定文件系统的挂载点。
例如,要扩展挂载在正斜杠 (/) 上的文件系统,请运行以下命令:
ubuntu@ip-172-31-32-114:~ sudo xfs_growfs -d /
如果收到 "xfs_growfs: /data is not a mounted XFS filesystem" 错误,则说明您指定的挂载点有误或者文件系统不是 XFS。
要检查挂载点和文件系统类型,请运行 df -hT 命令。
如果收到 "data size unchanged, skipping:" 错误,则说明文件系统已经扩展到整个卷。
如果卷没有分区,则确认卷修改已成功完成。
-
要验证是否已扩展文件系统,请运行以下 df -hT 命令,然后确认文件系统大小等于卷大小:
ubuntu@ip-172-31-32-114:~ df -h
输出示例:
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.7G 7.7G 0 100% /
/dev/xvdf 16G 7.1G 8.0G 48% /home/ubuntu/test
注意:在上述输出示例中,/dev/xvdf 文件系统大小为 16G,其中 48% 已经被占用。
相关信息
查看关于 Amazon EBS 卷的信息
使 Amazon EBS 卷可供使用