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

时间:2012-03-07 15:31:38

标签: amazon-ec2 amazon-web-services amazon-ebs

我有一台服务器运行Canonical最近的Ubuntu AMI。 EBS启动卷的大小为8GB。我知道我可以通过拍摄快照,创建新卷并扩展其上的分区来调整EBS卷的大小。如何在机器运行时增加音量?如果无法做到这一点,那么以最小的停机时间增加启动卷大小的首选方法是什么?

6 个答案:

答案 0 :(得分:51)

我们可以使用新的EBS Feature Elastic卷增加卷大小,发布我们需要按照以下步骤使用增加大小,如下所示

假设您的音量为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 t0 32GB扩展,我们需要growpart。 growpartcloudutils

的一部分
sudo apt install cloud-utils

安装cloud-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_growfs /dev/xvdal 谢谢egg

答案 1 :(得分:39)

不幸的是,在Amazon EBS实例运行时,无法增加Amazon EC2根设备存储卷的大小 - Eric Hammond写了详细的内容(我倾向于说'规范' ';)关于Resizing the Root Disk on a Running EBS Boot EC2 Instance的文章:

  

只要你在EC2实例上有一点停机时间就可以了(很少   分钟),可以用a更改根EBS卷   更大的副本,无需启动新实例。

如果你正确地准备了他描述的步骤(我强烈建议首先使用丢弃的EC2实例来测试它们以熟悉程序),你应该能够在几分钟的停机时间内完成这个过程。< / p> 祝你好运!

答案 2 :(得分:20)

对这个为期5年的问题的回答很晚

AWS刚刚宣布了一项名为 Elastic Volumes 的新EBS功能,该功能允许您在使用卷时增加音量,调整性能或更改音量类型。

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

答案 3 :(得分:7)

您只需要首先创建其快照,然后从该快照创建另一个卷,并在准备好新卷后,从实例中分离旧卷并附加新卷。确保在启动此过程之前停止实例,并在完成后重新启动实例。

参考http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html

答案 4 :(得分:-1)

这适用于xfs文件系统只需运行此命令xfs_growfs /

答案 5 :(得分:-2)

你不能这样做。但是如果您更专注于停机然后成本,您可能能够克隆您的主实例,将更大的EBS存储设备安装到您的系统,复制数据,然后将流量重定向到您的新实例。

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

希望有所帮助。