不断增长的 Amazon EBS 容量

我对亚马逊的 EC2和 EBS 服务印象深刻。我想知道是否有可能增长一个 EBS 卷。

例如: 如果我有一个50GB 的卷并且我开始用完空间,我可以在需要的时候将它提高到100GB 吗?

80404 次浏览

如果你需要的话,你不能简单地在运行中“突然增加”更多的空间,但是你可以通过快照来调整分区的大小。

具体步骤如下:

  1. 卸载电子数据包容量
  2. 创建一个 Ebs 快照
  3. 增加更大空间的新卷
  4. 重新创建分区表并调整大小 文件系统
  5. 增加新的电子数据库容量

看看 http://aws.amazon.com/ebs/-EBS 快照:

快照还可用于实例化多个新卷, 扩大卷或移动的大小 跨可用性区域的卷。 当创建一个新卷时,有 基于 现有的 Amazon S3快照 方案中,新卷开始时为 原始卷的精确复制品。 通过可选地指定不同的 体积大小或不同 可用性区域,这个功能 可以作为一种方法来增加 现有卷的大小或 创建新的重复卷 可用区域。如果你选择 使用快照来调整卷的大小, 你需要确保你的文件系统 或应用程序支持调整 装置。

你可以增加存储空间,但不能在飞行中完成。您需要获取当前块的快照,添加一个新的、更大的块,并重新附加您的快照。

有一个基于使用 Amazon 的 EC2命令行工具的简单演练 给你

只要你能够忍受几分钟的停机时间,Eric Hammond 已经写了一篇关于在一个正在运行的 EBS 实例上调整根磁盘大小的文章: http://alestic.com/2010/02/ec2-resize-running-ebs-root

在 Windows 操作系统中使用“ diskpart”命令,在这里可以看到: 使用 < a href = “ http://Support.microsoft.com/kb/300415”rel = “ nofollow norefrer”> http://support.microsoft.com/kb/300415 以下是我对非根磁盘(基本非动态磁盘)所遵循的步骤

一旦你拍摄了一个快照,卸载旧的 EBS 卷(比如600GB)并创建一个更大的 EBS 卷(比如1TB)并挂载这个新的 EBS 卷——你必须在命令提示符下(作为管理员运行)让 Windows 知道调整大小(从600GB 到1TB)

Diskpart exe

选择盘 = 9

选择体积 = Z

延伸

[我的磁盘9,卷标记为 Z,是从 ec2创建的大小为1TB 的卷-大小为600GB 的快照-我想将600GB 的大小调整为1TB,因此可以按照上面的步骤来做到这一点。]

您现在可以通过 AWS 管理控制台完成这项工作。这个过程与其他答案中的过程相同,但是您不再需要进入命令行。

顺便说一句: 与物理磁盘一样,使用 LVM 可能很方便; 例如:

Http://www.davelachapelle.ca/guides/ubuntu-lvm-guide/ Http://www.centos.org/docs/5/html/cluster_logical_volume_manager/

最大的优点: 它允许动态地添加(或删除)空间。

它也可以很容易地在实例之间移动。

警告:

  • 它必须提前配置
  • 一个简单的 JBOD 设置意味着如果你丢失了一个“磁盘”,你就会失去一切

如果你的操作系统支持的话,我强烈推荐所有 EBS 卷使用逻辑卷轴管理员(LVM)。Linux 发行版通常会这样做。它的伟大有几个原因。

  1. 逻辑卷的调整和移动可以实时完成,所以不需要整个离线快照(这需要停机时间) ,您可以添加另一个更大的 EBS 卷,将其作为物理卷(PV)添加到 LVM 池中,将逻辑卷(LV)移动到 LVM 池中,从池中删除旧的物理卷,并删除旧的 EBS 卷。然后,您只需调整逻辑卷的大小,并调整其上的文件系统的大小。这根本不需要停机!

  2. 它从你的“物理”设备中抽象出你的存储。在设备之间移动分区而不需要停机或更改挂载点/fstab 非常方便。

如果亚马逊能够实时调整 EBS 卷的大小就好了,但是对于 LVM 来说就没那么必要了。

我的脚步:

  1. 停止实例
  2. 找到附加到实例的 ebs 卷并创建它的快照
  3. 使用上面的快照创建一个具有更大磁盘空间的新卷。不幸的是,用于创建快照的 aws 控制台上的 UI 几乎无法使用,因为它列出了 aws 上的所有快照。使用命令行工具要容易得多,如下所示:

    ec2-create-volume -s 100 --snapshot snap-a31fage -z us-east-1c
    
  4. detach the existing ebs (smaller) volume from the instance

  5. attach the new (bigger) volume to the instance, and make sure attach it to the same device the instance is expecting (in my case it is /dev/sda1)
  6. start the instance

You are done!

Other than step 3 above, you can do everything using the aws management console.

Also NOTE as mentioned here:

https://serverfault.com/questions/365605/how-do-i-access-the-attached-volume-in-amazon-ec2

the device on your ec2 instance might be /dev/xv* while aws web console tells you it's /dev/s*.

我遵循所有的答案,所有的东西丢失了所有的尊重。

如果您遵循这些步骤,您可以增加您的 EBS 卷并保留您的数据(这不适用于根卷)。为了简单起见,我建议使用 AWS consel 来创建快照,... 您也可以使用 AWS 命令行工具来完成这项工作。

我们在这里不接触根体积。

进入 AWS 控制台:

  1. 关闭您的实例(它只会持续几分钟)
  2. 分离计划增长的卷(比如/dev/xvdf)
  3. 创建卷的快照。
  4. 使用刚才创建的快照创建一个大一些的新卷
  5. 将新卷附加到实例
  6. 开始你的实例

SSH 到你的例子:

 $ sudo fdisk -l

这会让你想到:

Disk /dev/xvdf: 21.5 GB, 21474836480 bytes
12 heads, 7 sectors/track, 499321 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd3a8abe4


Device Boot      Start         End      Blocks   Id  System
/dev/xvdf1            2048    41943039    20970496   83  Linux

写下 开始身份证的值(在本例中为2048和83)

使用 fdisk,删除分区 xvdf1并创建一个完全从同一块(2048)开始的新分区。我们将给它相同的 Id (83) :

$ sudo fdisk /dev/xvdf


Command (m for help): d
Selected partition 1


Command (m for help): n
Partition type:
p   primary (0 primary, 0 extended, 4 free)
e   extended
Select (default p): p
Partition number (1-4, default 1):
Using default value 1
First sector (2048-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039):
Using default value 41943039


Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 83


Command (m for help): w
The partition table has been altered!


Calling ioctl() to re-read partition table.
Syncing disks.

这里很好地解释了这个步骤: http://litwol.com/content/fdisk-resizegrow-physical-partition-without-losing-data-linodecom

差不多完成了,我们只需挂载卷并运行 resize2fs:

挂载 ebs 卷: (mine is at/mnt/ebs1)

$ sudo mount /dev/xvdf1 /mnt/ebs1

并调整大小:

$ sudo resize2fs -p /dev/xvdf1


resize2fs 1.42 (29-Nov-2011)
Filesystem at /dev/xvdf1 is mounted on /mnt/ebs1; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/xvdf1 to 5242624 (4k) blocks.
The filesystem on /dev/xvdf1 is now 5242624 blocks long.


ubuntu@ip-xxxxxxx:~$

完成! 使用 df -h验证新的大小。

如果根卷是 xfs 文件系统,那么运行这个命令 xfs _ growth fs/

这些都是很棒的建议,我想我应该添加我发现的这篇文章,它涉及到使用 Amazon Web UI 工具来扩展 Windows Amazon EC2 EBS 实例以执行必要的更改。如果您不喜欢使用 CLI,这将使您的升级更加容易。

Http://www.tekgoblin.com/2012/08/27/aws-guides-how-to-resize-a-ec2-windows-ebs-volume/

感谢 TekGoblin 发布这篇文章。