AWS EC2:扩展EBS卷的存储空间

      访问: 2,556 次      评论    

以在 Liunx 下扩展根卷(系统盘)为例,步骤如下。


1、停止EC2实例(是 Stop 而不是 Terminate)

2、创建要扩展的卷的快照

3、从快照创建一个新卷(输入新卷大小)

4、在EC2实例上断开旧卷

注:断开之前记录下卷的详情页面中的连接信息一列中的设备名称:

i-xxxxxxxxxxxxxxxxx (instance_name): device_name(如 /dev/sda1 )


5、在EC2实例上连接新建的卷

注意:设备一栏,输入在上一步中记录下的相同设备名称,请务必注意,需要将卷重新连接到从分离开的准确位置(例如 /dev/sda1)。

6、重新启动EC2实例

实例启动之后,可以检查文件系统大小,看实例是否识别这个更大的卷空间。在 Linux 上,请使用 df -h 命令检查文件系统大小。

如果大小没有反映新扩展的卷,则必须扩展设备的文件系统,以便实例可以使用新的空间。


7、扩展 Linux 文件系统

检查您的卷分区是否需要调整大小 ,使用 lsblk 命令可列出连接到实例的块储存设备:


如上图,/dev/xvda1 是一个 10 GiB 分区,位于一个 50 GiB 设备上,并且卷上没有其他分区。在这种情况下,分区必须调整大小,以便使用卷上的剩余空间。调整分区大小之后,您可以按照下一个过程扩展文件系统以占用分区上的所有空间。


7.1、先扩展 Linux 分区

在扩展文件系统前,需要先扩展 Linux 分区,步骤如下。


1)如果该分区已装载,请卸载它。


由于我们要扩展根分区,不可能在本机umount,所以需要一个辅助实例来连接该根卷,然后在辅助实例上操作。

即断开带扩展分区的新卷、连接该根卷到另一个辅助实例。

断开卷前照样注意记录下连接信息中的设备名称。

方法1:实例详情中查看
根设备:/dev/sda1

方法2:卷详情中查看
连接信息:i-47a192e3 (statistic0): /dev/sda1 (attached)


2)在辅助实例上进行扩展分区的操作


可以看到 /dev/xvdf1 这个分区没有占满整个卷空间,需要进行扩展:


使用 parted 扩展 Linux 分区:

parted 实用工具是一款分区编辑工具,大多数 Linux 分发版均会提供。它可以创建和编辑 MBR 分区表和 GPT 分区表。如果要扩展的分区位于采用 GPT 分区设备上,则应选用 gdisk 实用工具。

以MBR分区表为例,执行命令前确认该分区没有被装载(mount)。


  1. 对设备(而不是设备上的分区)运行 parted 命令。

  2. 将 parted 度量单位更改为扇区。 (parted) unit s

  3. 运行 print 命令,列出设备上的分区。

  4. 检查输出以了解磁盘总大小、分区表类型、分区编号、分区起点和任何标志(如 boot)。对于 gpt 分区表,记下分区名称;对于 msdos 分区表,记下 Type 字段(primary 或 extended)。这些值将在后面的步骤中使用。

  5. 使用来自上一步的编号 (1) 删除分区的分区条目。 (parted) rm 1

  6. 创建扩展到卷末尾的新分区。(parted) mkpart primary 2048s 100%

  7. 再次运行 print 命令以验证分区。

  8. 添加boot标志。有时 boot 标志可能会丢失,请使用以下命令添加标志 (parted) set 1 boot on

  9. 可以再次运行 print 命令以验证更改。

  10. 运行 quit 命令,退出 parted。

  11. 检查文件系统以确保没有错误(需要先执行此操作,然后才能扩展文件系统)。


根据您的文件系统类型选择以下命令之一;如果使用其他文件系统,请参阅该文件系统的文档以确定正确的检查命令。

(对于 ext3 或 ext4 文件系统)
[ec2-user ~]$ sudo e2fsck -f /dev/xvdf1

(对于 xfs 文件系统)
[ec2-user ~]$ sudo xfs_repair /dev/xvdf1



3)将卷从辅助实例断开,再重新连接到原主实例

同样注意使用步骤(1)准备过程中记录下连接信息中的设备名称:


4)然后重新启动主实例,检查分区是否正常:

如上图,df -h 显示分区大小还是不正常。在上面步骤调整完分区大小之后,您可以按照下一个过程扩展文件系统以占用分区上的所有空间。


7.2 再扩展 Linux 文件系统

在 Linux 中,您可以使用特定于文件系统的命令,根据新卷的较大大小调整文件系统大小。即使要扩展的卷是根卷,此命令也有效。对于 ext2、ext3 和 ext4 文件系统,此命令为 resize2fs。对于 XFS 文件系统,此命令为 xfs_growfs。

如果您收到 The filesystem is already nnnnnnn blocks long. Nothing to do! 错误,请参阅7.1步骤先扩展 Linux 分区!。


参考:


添加新评论