154

Amazon 的 EC2 和 EBS 服务给我留下了深刻的印象。我想知道是否可以增加 EBS 卷。

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

4

11 回答 11

103

您可以增加存储空间,但不能即时完成。您需要拍摄当前块的快照,添加一个新的更大的块并重新附加您的快照。

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

于 2009-02-15T12:40:08.350 回答
44

如果需要,您不能简单地即时“增加”更多空间,但您可以使用快照调整分区大小。

这样做的步骤:

  1. 卸载 ebs 卷
  2. 创建一个 ebs 快照
  3. 添加具有更多空间的新卷
  4. 重新创建分区表并调整文件系统大小
  5. 挂载新的 ebs 卷

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

快照还可用于实例化多个新卷、扩展卷大小或跨可用区移动卷。创建新卷时,可以选择基于现有 Amazon S3 快照创建它。在这种情况下,新卷作为原始卷的精确副本开始。通过选择性地指定不同的卷大小或不同的可用区,此功能可用作增加现有卷大小或在新可用区中创建重复卷的一种方式。如果您选择使用快照来调整卷大小,则需要确保您的文件系统或应用程序支持调整设备大小。

于 2009-02-15T12:37:38.527 回答
22

我遵循了所有的答案,所有的东西都遗漏了一些东西。

如果您按照这些步骤操作,您可以增加 EBS 卷并保留您的数据(这不适用于根卷)。为简单起见,我建议使用 AWS 控制台创建快照,...您也可以使用 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

记下StartId值。(在本例中为 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 卷:(我的是 /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验证新尺寸。

于 2012-07-19T20:37:29.087 回答
19

只要您可以接受几分钟的停机时间,Eric Hammond 就在运行的 EBS 实例上调整根磁盘的大小写了一篇很好的文章:http: //alestic.com/2010/02/ec2-resize-running-ebs -根

于 2010-04-28T14:17:25.117 回答
9

所有很棒的建议,我想我会添加我找到的这篇文章,它涉及使用 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 发布这篇文章。

于 2013-03-05T16:48:09.957 回答
5

您现在可以通过 AWS 管理控制台执行此操作。该过程与其他答案相同,但您不再需要转到命令行。

于 2011-04-05T09:57:02.303 回答
4

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

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

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

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

注意事项:

  • 必须提前配置
  • 一个简单的 JBOD 设置意味着如果丢失一个“磁盘”,您将失去一切
于 2011-05-20T16:32:55.643 回答
4

我的步骤:

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

    ec2-create-volume -s 100 --snapshot snap-a31fage -z us-east-1c
    
  4. 从实例中分离现有的 ebs(较小)卷

  5. 将新的(更大的)卷附加到实例,并确保将其附加到实例所期望的同一设备(在我的情况下是 /dev/sda1)
  6. 启动实例

你完成了!

除了上述第 3 步之外,您还可以使用 aws 管理控制台执行所有操作。

还要注意这里提到的:

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

您的 ec2 实例上的设备可能是 /dev/xv*,而 aws Web 控制台告诉您它是 /dev/s*。

于 2012-07-12T21:44:09.990 回答
3

对 Windows 操作系统使用命令“diskpart”,看看这里:使用http://support.microsoft.com/kb/300415 以下是我对非根磁盘(基本不是动态磁盘)所遵循的步骤

拍摄快照后,卸载旧的 EBS 卷(例如 600GB)并创建更大的 EBS 卷(例如 1TB)并安装这个新的 EBS 卷 - 您必须让 Windows 知道调整大小(从 600GB 到 1TB)所以在命令提示符下(以管理员身份运行)

磁盘部分.exe

选择磁盘=9

选择音量=Z

延长

[我的磁盘 9,卷标为 Z,是一个大小为 1TB 的卷,它是从大小为 600GB 的 ec2 快照创建的 - 我想将 600GB 的大小调整为 1TB,因此可以按照上述步骤执行此操作。]

于 2011-02-14T10:40:47.513 回答
0

如果您的操作系统支持,我强烈建议将逻辑卷管理器 (LVM) 用于所有 EBS 卷。Linux 发行版通常会这样做。这很棒有几个原因。

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

  2. 它将您的存储从您的“物理”设备中抽象出来。无需停机或更改挂载点/fstab 即可跨设备移动分区非常方便。

如果 Amazon 能够即时调整 EBS 卷的大小,那就太好了,但对于 LVM,就没有那么必要了。

于 2012-06-22T09:01:13.927 回答
0

如果您的根卷是 xfs 文件系统,则运行此命令 xfs_growfs /

于 2013-02-04T08:08:33.977 回答