跳至内容

如何在 Amazon EC2 实例上增加 Amazon EBS 卷的大小后扩展 Linux 文件系统?

2 分钟阅读
0

我想在 Amazon Elastic Compute Cloud (Amazon EC2) 实例上增加 Amazon Elastic Block Store (Amazon EBS) 卷的大小后扩展 Linux 文件系统。

解决方法

在文件系统处于 optimizing(正在优化)状态时调整其大小。

**注意:**以下步骤仅适用于使用整个磁盘设备的文件系统。您不能使用这些步骤来增加分区、根文件系统、RAID 设备逻辑卷管理器 (LVM) 上的文件系统。以下示例将 8GB ext4 文件系统扩展为完全使用 16GB 卷。

要扩展您的 Linux 文件系统,请完成以下步骤:

  1. 为您的卷创建快照

  2. 使用 SSH 连接到您的实例

  3. 要检查文件系统使用的大小和百分比,请运行以下 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 表示分区。

  4. 要检查 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

  5. lsblk 命令的输出中,比较分区大小和卷大小,然后执行以下操作之一:
    如果分区大小小于卷大小,则继续执行步骤 6。
    如果分区大小等于卷大小,则无需扩展分区。继续执行步骤 7。
    **注意:**如果卷中有分区包含文件系统,请在扩展文件系统之前扩展该分区。

  6. 运行以下 growpart 命令,扩展分区并指定设备名称和分区编号:

    sudo growpart /dev/xvda 1

    输出示例:

    CHANGED: partition=1 start=2048 old:

    **注意:**分区编号即为设备名称后的数字。例如,对于 xvda1,分区编号为 1

  7. 要验证是否已扩展分区,请运行 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

    **注意:**分区大小必须等于卷大小。

  8. 运行以下 resize2fs 命令,自动将 /dev/xvdf 文件系统的大小扩展到卷上的全部空间。df -h 命令的输出中包括设备名称:

    ubuntu@ip-172-31-32-114:~ sudo resize2fs /dev/xvda1

    **注意:**只能对 ext3ext4文件系统运行 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 命令。

  9. 运行 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:" 错误,则说明文件系统已经扩展到整个卷。
    如果卷没有分区,则确认卷修改已成功完成。

  10. 要验证是否已扩展文件系统,请运行以下 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 卷可供使用

AWS 官方已更新 8 个月前