Requirements for EBS volume modifications - Amazon EBS

Requirements for EBS volume modifications

The following requirements and limitations apply when you modify an Amazon EBS volume. To learn more about the general requirements for EBS volumes, see Constraints on the size and configuration of an EBS volume.

Supported instance types

Elastic Volumes are supported on the following instances:

If your instance type does not support Elastic Volumes, see Modify an EBS volume if Elastic Volumes is not supported.

Operating system

The following operating system requirements apply:

Linux AMIs require a GUID partition table (GPT) and GRUB 2 for boot volumes that are 2 TiB (2,048 GiB) or larger. Many Linux AMIs today still use the MBR partitioning scheme, which only supports boot volume sizes up to 2 TiB. If your instance does not boot with a boot volume larger than 2 TiB, the AMI you are using may be limited to a boot volume size of less than 2 TiB. Non-boot volumes do not have this limitation on Linux instances. For requirements affecting Windows volumes, see Requirements for Windows volumes in the Amazon EC2 User Guide for Windows Instances.

Before attempting to resize a boot volume beyond 2 TiB, you can determine whether the volume is using MBR or GPT partitioning by running the following command on your instance:

[ec2-user ~]$ sudo gdisk -l /dev/xvda

An Amazon Linux instance with GPT partitioning returns the following information:

GPT fdisk (gdisk) version 0.8.10
  
  Partition table scan:
    MBR: protective
    BSD: not present
    APM: not present
    GPT: present
  
  Found valid GPT with protective MBR; using GPT.

A SUSE instance with MBR partitioning returns the following information:

GPT fdisk (gdisk) version 0.8.8
  
  Partition table scan:
    MBR: MBR only
    BSD: not present
    APM: not present
    GPT: not present

By default, Windows initializes volumes with a Master Boot Record (MBR) partition table. Because MBR supports only volumes smaller than 2 TiB (2,048 GiB), Windows prevents you from resizing MBR volumes beyond this limit. In such a case, the Extend Volume option is disabled in the Windows Disk Management utility. If you use the AWS Management Console or AWS CLI to create an MBR-partitioned volume that exceeds the size limit, Windows cannot detect or use the additional space. For requirements affecting Linux volumes, see Requirements for Linux volumes in the Amazon EC2 User Guide for Linux Instances.

To overcome this limitation, you can create a new, larger volume with a GUID partition table (GPT) and copy over the data from the original MBR volume.

To create a GPT volume
  1. Create a new, empty volume of the desired size in the Availability Zone of the EC2 instance and attach it to your instance.

    Note

    The new volume must not be a volume restored from a snapshot.

  2. Log in to your Windows system and open Disk Management (diskmgmt.exe).

  3. Open the context (right-click) menu for the new disk and choose Online.

  4. In the Initialize Disk window, select the new disk and choose GPT (GUID Partition Table), OK.

  5. When initialization is complete, copy the data from the original volume to the new volume, using a tool such as robocopy or teracopy.

  6. In Disk Management, change the drive letters to appropriate values and take the old volume offline.

  7. In the Amazon EC2 console, detach the old volume from the instance, reboot the instance to verify that it functions properly, and delete the old volume.

Limitations

  • There are limits to the maximum aggregated storage that can be requested across volume modifications. For more information, see Amazon EBS service quotas in the Amazon Web Services General Reference.

  • After modifying a volume, you must wait at least six hours and ensure that the volume is in the in-use or available state before you can modify the same volume.

  • Modifying an EBS volume can take from a few minutes to a few hours, depending on the configuration changes being applied. An EBS volume that is 1 TiB in size can typically take up to six hours to be modified. However, the same volume could take 24 hours or longer in other situations. The time it takes for volumes to be modified doesn't always scale linearly. Therefore, a larger volume might take less time, and a smaller volume might take more time.

  • If the volume was attached before November 3, 2016 23:40 UTC, you must initialize Elastic Volumes support. For more information, see Initializing Elastic Volumes Support.

  • If you encounter an error message while attempting to modify an EBS volume, or if you are modifying an EBS volume attached to a previous-generation instance type, take one of the following steps:

    • For a non-root volume, detach the volume from the instance, apply the modifications, and then re-attach the volume.

    • For a root volume, stop the instance, apply the modifications, and then restart the instance.

  • Modification time is increased for volumes that are not fully initialized. For more information see Initialize Amazon EBS volumes.

  • The new volume size can't exceed the supported capacity of its file system and partitioning scheme. For more information, see Constraints on the size and configuration of an EBS volume.

  • If you modify the volume type of a volume, the size and performance must be within the limits of the target volume type. For more information, see Amazon EBS volume types

  • You can't decrease the size of an EBS volume. However, you can create a smaller volume and then migrate your data to it using an application-level tool such as rsync (Linux instances) or robocopy (Windows instances).

  • After provisioning over 32,000 IOPS on an existing io1 or io2 volume, you might need to detach and re-attach the volume, or restart the instance to see the full performance improvements.

  • io2 volumes attached to instances built on the Nitro System support sizes up to 64 TiB and IOPS up to 256,000 IOPS. io2 volumes attached to other instances support sizes up to 16 TiB and IOPS up to 64,000, but can achieve performance up to 32,000 IOPS only.

  • You can't modify the volume type of Multi-Attach enabled io2 volumes.

  • You can't modify the volume type, size, or Provisioned IOPS of Multi-Attach enabled io1 volumes.

  • A root volume of type io1, io2, gp2, gp3, or standard can't be modified to an st1 or sc1 volume, even if it is detached from the instance.

  • While m3.medium instances fully support volume modification, m3.large, m3.xlarge, and m3.2xlarge instances might not support all volume modification features.