Amazon ec2 如何增加正在运行的实例的EBS卷大小?

Amazon ec2 如何增加正在运行的实例的EBS卷大小?,amazon-ec2,amazon-web-services,amazon-ebs,Amazon Ec2,Amazon Web Services,Amazon Ebs,我有一个服务器运行Canonical最近的Ubuntu AMIs。EBS引导卷的大小为8GB。我知道我可以通过拍摄快照、创建新卷并扩展其上的分区来调整EBS卷的大小。在机器运行时,如何增加卷的大小?如果这是不可能的,那么在停机时间最少的情况下增加启动卷大小的首选方法是什么?不幸的是,在实例运行时不可能增加根设备存储卷的大小-Eric Hammond写了一篇关于以下内容的详细文章(我倾向于说“canonical”): 只要您对EC2实例的一点停机时间没有问题(很少) 分钟),可以使用 更大的副本,

我有一个服务器运行Canonical最近的Ubuntu AMIs。EBS引导卷的大小为8GB。我知道我可以通过拍摄快照、创建新卷并扩展其上的分区来调整EBS卷的大小。在机器运行时,如何增加卷的大小?如果这是不可能的,那么在停机时间最少的情况下增加启动卷大小的首选方法是什么?

不幸的是,在实例运行时不可能增加根设备存储卷的大小-Eric Hammond写了一篇关于以下内容的详细文章(我倾向于说“canonical”):

只要您对EC2实例的一点停机时间没有问题(很少) 分钟),可以使用 更大的副本,无需启动新实例

如果您正确地准备了他描述的步骤(我强烈建议您首先使用一次性EC2实例来测试它们,以熟悉该过程),您应该能够在几分钟的停机时间内完成该过程


祝你好运

你不能这样做。但是,如果您更关注停机时间而不是成本,那么您可能可以克隆主实例,将更大的EBS存储设备装载到系统中,复制数据,然后将流量重定向到新实例

如果您愿意,我最近使用的S3方法具有备份和部署到其他系统的介质。例如,您的现有系统正在运行..设置一个脚本,每N分钟/小时/天将数据上载到s3..然后编写一个脚本,在启动新实例下载数据时使用。如果您的数据不是不断更新的,那么这应该可以正常工作(对于我来说,我使用它来分发代码库的更新版本,而数据本身是在ec2数据库服务器上管理的)


希望对您有所帮助。

这将适用于xfs文件系统只需运行此命令
xfs\u growfs/

您只需首先创建其快照,然后从该快照创建另一个卷,一旦新卷就绪,将旧卷从实例中分离并连接新卷。请确保在启动此过程之前停止实例,并在完成后重新启动实例


请参阅

我发现,在尝试增加centos6上报告为/dev/xvda1的根分区/dev/sda1时,无法卸载卷以扩展分区

我通过将原始卷装载为/dev/sda1和快照装载为/dev/sdb来解决这个问题。然后我重新启动了映像,并使用parted调整了/dev/sdb1分区的大小


调整分区/dev/sdb1的大小后,我分离了两个卷,并将新卷重新连接到/dev/sda1,然后运行resize2fs/dev/xvda1。

这一5年问题的最新答案

AWS刚刚发布了一个称为弹性卷的新EBS功能,它允许您在使用卷时增加卷大小、调整性能或更改卷类型


您可以在AWS博客上阅读更多信息。

我们可以使用新的EBS功能弹性卷来增加卷大小,发布我们需要按照以下步骤使用增加的大小,如图所示

假设您的容量为16G,并将其增加到32GB

    $lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  32G  0 disk
└─xvda1 202:1    0  16G  0 part /
要将xvda1从16GB扩展到32GB,我们需要growpart。作为的一部分提供

安装云utils后,执行growpart命令

sudo growpart /dev/xvda 1
现在lsblk,将显示

    $ lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  32G  0 disk
└─xvda1 202:1    0  32G  0 part /
但df-h将仅显示16GB

将xvda1扩展到32GB的最后一个命令是

sudo resize2fs /dev/xvda1
对于XFS文件系统

sudo xfs\u growfs/dev/xvda1

谢谢

更好的是,您可以编写脚本来执行该操作。使用测试实例进行测试,然后在生产服务器上运行测试,以降低忘记某个步骤的风险。这个答案不再正确。它适用于AWS unubtu 12.X。而且在运行时可能不需要重新启动..这很好,但请注意,某些旧卷可能不受支持。我运行了aws ec2 modify volume--region us-west-2--volume id vol-0123456789--size 20并得到了这个错误:
调用ModifyVolume操作时发生了一个错误(InvalidParameterValue):不支持卷类型EBS磁性。
@runamok:没错。如上所述,上述方法不支持上一代磁体积类型。在这种情况下,将快照恢复到不同配置的EBS卷将是解决方案。我知道这已经得到了回答,但前几天我发现了这个非常简单的教程。这就是我周末要学/用的东西。linux版本,对我来说很有效,也很容易理解:更近(2015年)的过程描述。如果2019年后有人来到这里,那么就可以在零停机的情况下做到这一点:它可以工作。谢谢。这真是太棒了,像一个charme一样工作-非常感谢:-)从aws控制台应用分配的空间非常有效这应该是一个可以接受的答案!如果您使用的是XFS文件系统,最后一个命令应该是
sudoxfs\u growfs/dev/xvdal
,而不是
resize2fs
sudo resize2fs /dev/xvda1