当我增加 ec2 实例的运行量大小时会发生啥

Posted

技术标签:

【中文标题】当我增加 ec2 实例的运行量大小时会发生啥【英文标题】:What happen when I increase the size of running volume of ec2 instance当我增加 ec2 实例的运行量大小时会发生什么 【发布时间】:2018-08-03 10:12:15 【问题描述】:

我的问题很简单: 当我增加 ec2 实例的运行量大小时会发生什么。

1) 我的所有数据都被擦除了吗?

2) 我的实例空间是否也会修改为新的大小?

实际上,我的实例有 8GB 的​​存储空间,几乎已满。我想增加可以帮助我将更多文件保存到我的实例的空间。

我在控制台中找到了这个选项。 我发现连接的 ec2 卷。直接修改卷大小是否会在重启后自动反映我的实例空间。 一世 知道这很简单。我只是担心我现有的数据。

感谢您的帮助!

【问题讨论】:

如果您正在调整引导卷的大小,Amazon Linux AMI(大多数)将自动检测新卷的大小并调整分区表中最后一个文件系统的大小。调整 EC2 实例的大小是安全的,但我会先从实例创建一个 AMI。然后调整实例大小。您也可以使用所需的卷大小从 AMI(您从正在运行的实例创建)创建一个新实例,然后在仔细检查所有内容后终止旧实例。 【参考方案1】:

假设您在控制台中找到了修改实例大小的选项,并且这里的实例是Linux Instance。根据AWS Documentation,另一个答案忘记提到一件重要的事情:

在您扩展之前,修改卷大小没有实际效果 卷的文件系统以利用新的存储容量。为了 更多信息,请参阅在调整大小后扩展 Linux 文件系统 音量。

对于 ext2、ext3 和 ext4 文件系统,此命令为 resize2fs。对于 XFS 文件系统,此命令为 xfs_growfs

注意

如果您要扩展的卷已经分区,您需要增加分区的大小,然后才能调整文件系统的大小

检查您的卷分区是否需要调整大小:

使用 lsblk 命令列出连接到您的实例的块设备。下面的示例显示了三个卷:/dev/xvda、/dev/xvdb 和 /dev/xvdf。

如果分区占用设备上的所有房间,则不需要调整大小。

但是,/dev/xvdf1if 是 35-GiB 设备上的 8-GiB 分区,并且该卷上没有其他分区。在这种情况下,必须调整分区大小才能使用卷上的剩余空间。

扩展 Linux 文件系统

通过 SSH 登录实例 使用 df -h 命令报告文件系统上现有的磁盘空间使用情况。 使用 growpart 扩展修改后的分区(并注意将设备名称与分区号分开的不寻常语法):

sudo growpart /dev/xvdf 1

然后使用特定于文件系统的命令将每个文件系统的大小调整为新的卷容量。 最后使用df -h命令上报现有文件系统磁盘空间使用情况

注意:建议在进行任何更改之前拍摄 ebs 卷的快照。

请参考这个AWS Documentation

【讨论】:

如果您可以停止并启动实例,则不必执行任何此操作...从内存中,我认为 dracutgrowroot 模块应该自动重新分区并增长下次启动时的根文件系统。这些通常已经在机器上。 (这就是为什么如果您从头开始使用大于默认根分区的机器,它就可以立即使用)。【参考方案2】:

您可以直接修改卷,这不会影响任何文件,升级大小大约需要 1 分钟左右,或者您可能需要重新启动实例。 为确保数据安全,您可以创建该卷的快照,然后从该快照创建您想要的任何大小的新卷,然后删除现在包含旧数据的旧卷。

【讨论】:

以上是关于当我增加 ec2 实例的运行量大小时会发生啥的主要内容,如果未能解决你的问题,请参考以下文章

EC2 增加大小后无法调整卷大小

当我创建我的类的对象实例时会发生啥

计算机程序运行时会发生啥?

实例上未列出增加的 ec2 卷

如何减少 EC2 实例的根 EBS 卷大小?

Python 模块 - 运行时会发生啥?