不断增长的Amazon EBS卷大小

时间:2009-02-15 12:16:12

标签: amazon-web-services amazon-ebs

我对亚马逊的EC2和EBS服务印象深刻。我想知道是否可以增加EBS卷。

例如:如果我有50 GB的音量且开始没有空间,我可以在需要时将其提升到100 GB吗?

11 个答案:

答案 0 :(得分:103)

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

基于使用here

,有一个简单的演练Amazon's EC2 command line tools

答案 1 :(得分:44)

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

步骤:

  1. 卸载ebs卷
  2. 创建ebs快照
  3. 添加更多空间的新卷
  4. 重新创建分区表并调整大小 文件系统
  5. 安装新的ebs卷
  6. 查看http://aws.amazon.com/ebs/ - EBS快照:

      

    快照还可用于实例化多个新卷,   扩展卷的大小或移动   可用区域中的卷。   创建新卷时,有   基于的创建它的选项   现有的Amazon S3快照。在那里面   场景,新卷开始于   原始卷的精确复制品。   通过可选地指定不同的   体积大小或不同   可用区,此功能   可以用来增加   现有卷的大小或   在new中创建重复的卷   可用区域。如果你选择   使用快照调整音量大小,   你需要确定你的文件系统   或者应用程序支持调整大小   设备

答案 2 :(得分:22)

我遵循了所有答案,所有方面都缺少了一些东西。

如果您按照这些步骤操作,则可以增加EBS卷并保留数据(这不适用于根卷)。为简单起见,我建议使用AWS consule创建快照,......您也可以使用AWS命令行工具来实现。

我们在这里没有触及根卷。

转到您的AWS控制台:

  1. 关闭您的实例(仅限几分钟)
  2. 分离您计划增长的卷(例如/ dev / xvdf)
  3. 创建卷的快照。
  4. 使用刚刚创建的快照创建一个更大尺寸的新卷
  5. 将新卷附加到您的实例
  6. 启动您的实例
  7. 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
    

    记下开始 Id 值。 (在这种情况下为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验证新尺寸。

答案 3 :(得分:19)

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

答案 4 :(得分: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发表这篇文章。

答案 5 :(得分:5)

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

答案 6 :(得分:4)

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

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

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

它也可以在实例之间轻松移动。

注意事项:

  • 必须提前配置
  • 简单的JBOD设置意味着如果丢失一个“磁盘”,您将丢失所有内容

答案 7 :(得分:4)

我的步骤:

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

    ec2-create-volume -s 100 --snapshot snap-a31fage -z us-east-1c
    
  4. 从实例

  5. 中分离现有的ebs(较小)卷
  6. 将新的(更大的)卷附加到实例,并确保将其附加到实例所期望的同一设备上(在我的情况下是/ dev / sda1)
  7. 启动实例
  8. 你完成了!

    除了上面的步骤3,您可以使用aws管理控制台执行所有操作。

    此处提及的注意事项:

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

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

答案 8 :(得分:3)

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

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

  

的Diskpart.exe

     

选择disk = 9

     

选择音量= Z

     

延伸

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

答案 9 :(得分:0)

如果您的操作系统支持,我强烈推荐所有EBS卷的逻辑卷管理器(LVM)。 Linux发行版通常都有。这有几个原因。

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

  2. 它从您的“物理”设备中抽象出您的存储空间。在不需要停机或更改mountpoints / fstab的情况下跨设备移动分区非常方便。

  3. 如果亚马逊能够实时调整EBS卷的大小,那将会很不错,但是使用LVM并不是必需的。

答案 10 :(得分:0)

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