Amazon Elastic Compute Cloud
Guía del usuario de instancias de Linux

Restricciones sobre la modificación del tamaño de un volumen de EBS

Las modificaciones que se efectúan en el tamaño de un volumen de Amazon EBS están limitadas por la física y la aritmética del almacenamiento de datos en bloque, así como por las decisiones relativas a la implementación del sistema operativo y de los diseñadores del sistema de archivos. AWS impone límites adicionales a la talla del volumen para proteger la fiabilidad de sus servicios.

Como servicio, EBS extrae el almacenamiento distribuido masivamente de un centro de datos en discos duros virtuales. Para un sistema operativo instalado en una instancia EC2, un volumen de EBS adjunto parece un disco duro físico que contiene sectores de disco de 512 bytes. El sistema operativo administra la asignación de bloques de datos (o clústeres) en los sectores virtuales mediante sus utilidades de administración del almacenamiento. La asignación sigue un esquema de creación de particiones del volumen, como un registro de arranque maestro (MBR) o una tabla de particiones GUID (GPT), y está dentro de las posibilidades del sistema de archivos instalado (ext4, NTFS, etc.).

EBS no es consciente de los datos contenidos en sus sectores de disco virtuales; se limita a garantizar la integridad de los sectores. Esto significa que las acciones de AWS y del sistema operativo son totalmente independientes entre sí. Cuando modifique el tamaño del volumen, sea consciente de las posibilidades y los límites de ambos. Por ejemplo, puede aumentar el tamaño del volumen de EBS hasta 16 TiB, pero el reconocimiento por parte del sistema operativo del conjunto de capacidades depende de sus propias características de diseño y del modo de partición del volumen.

En esta sección se describen los factores más importantes en la limitación del tamaño utilizable del volumen de EBS.

Limitaciones del servicio de AWS

Amazon EBS admite actualmente un tamaño de volumen máximo de 16 TiB.

Amazon EC2 necesita que los volúmenes de arranque de Windows utilicen la división en particiones MBR. Tal como se ha descrito en Esquemas de partición, esto significa que los volúmenes de arranque no pueden tener más de 2 TiB. Los volúmenes de datos de Windows no están sujetos a este límite y pueden dividirse en particiones del tipo GPT.

Los volúmenes de arranque de Linux pueden ser MBR o GPT, y los volúmenes de arranque GPT de Linux no están sujetos al límite de 2 TiB.

Esquemas de partición

Entre los impactos restantes, el esquema de partición determina cuántos bloques de datos lógicos se pueden abordar de forma única en un solo volumen. Para obtener más información, consulte Tamaños de los bloques de datos. Los sistemas Linux y Windows utilizan ambos dos esquemas de partición: MBR (registro de arranque maestro) y GPT (tabla de partición GUID). Las principales diferencias entre estos dos esquemas se resumen a continuación:

  • MBR

    MBR utiliza una estructura de datos de 32 bits para almacenar direcciones de bloques. Esto significa que cada bloque de datos se asigna a uno de los 232 enteros posibles. El tamaño direccionable máximo de un volumen se indica mediante:

    (232 - 1) × tamaño del bloque = número de bloques direccionables

    El tamaño de los bloques de los volúmenes MBR está convencionalmente limitado a 512 bytes. Por consiguiente:

    (232 - 1) × 512 bytes = 2 TiB - 512 bytes

    Las soluciones de ingeniería destinadas a aumentar este límite de 2 TiB para los volúmenes MBR no han tenido una gran aceptación en el sector. Por consiguiente, Linux y Windows no detectan nunca un volumen MBR superior a 2 TiB, aunque AWS indique que su tamaño es superior.

  • GPT

    GPT utiliza una estructura de datos de 64 bits para almacenar direcciones de bloques. Esto significa que cada bloque de datos se asigna a uno de los 264 enteros posibles. El tamaño direccionable máximo de un volumen se indica mediante:

    (264 - 1) × tamaño del bloque = número de bloques direccionables

    El tamaño de los bloques de los volúmenes GPT está normalmente limitado a 4096 bytes. Por consiguiente:

    (264 - 1) × 4096 bytes = 8 ZiB - 4096 bytes = 8 mil millones TiB - 4096 bytes

    Los sistemas de computación reales no admiten nada que esté cercano a este máximo teórico. El tamaño del sistema de archivos implementado está actualmente limitado a 50 TiB para ext4 y 256 TiB para NTFS; ambos superan el límite de 16 TiB que AWS impone.

Tamaños de los bloques de datos

El almacenamiento de datos en un disco duro moderno se administra mediante la direccionabilidad por bloques lógicos, una capa de abstracción que permite al sistema operativo leer y escribir datos en bloques lógicos teniendo poca información sobre el hardware subyacente. El sistema operativo se basa en el dispositivo de almacenamiento para asignar los bloques a sus sectores físicos. EBS publica sus sectores de 512 bytes en el sistema operativo, el cual lee y escribe datos en el disco con la ayuda de bloques de datos que son un múltiplo del tamaño del sector.

El tamaño predeterminado del sector para los bloques de datos lógicos está actualmente en 4096 bytes (4 KiB). Dado que algunas cargas de trabajo se benefician de un tamaño de bloque más pequeño o más grande, los sistemas de archivos admiten tamaños de bloques no predeterminados que se pueden especificar durante el formato. Los casos en los que deben utilizarse tamaños de bloques de datos que no son los tamaños predeterminados no entran dentro de este tema, pero la elección del tamaño de los bloques repercute sobre la capacidad de almacenamiento del volumen. En la tabla siguiente se muestra la capacidad de almacenamiento en función del tamaño de los bloques:

Tamaño del bloque y capacidad de volumen consiguiente

Tamaño del bloque Tamaño máx. del volumen
4 KiB (valor predeterminado) 16 TiB
8 KiB 32 TiB
16 KiB 64 TiB
32 KiB 128 TiB
64 KiB (máximo) 256 TiB

El límite impuesto por EBS sobre el tamaño del volumen es actualmente el mismo que el tamaño máximo permitido por los bloques de datos de 4 KiB.

Resumen

En la tabla siguiente se resumen las capacidades de almacenamiento teóricas e implementadas de los sistemas de archivos más conocidos en Amazon EBS.

Tamaños de volumen de MBR y GPT para los sistemas de archivos más conocidos, suponiendo que el tamaño de bloques es de 4096

Esquema de partición Máx. bloques direccionables Tamaño máx. teórico (bloques x tamaño de bloque) Tamaño máx. implementado Ext4* Tamaño máx. implementado XFS** Tamaño máx. implementado NTFS Máx. compatible con EBS
MBR 232 2 TiB 2 TiB 2 TiB 2 TiB 2 TiB
GPT 264

8 ZiB = 8 ×

10243 TiB

1 EiB =

10242 TiB

(50 TiB certificados en RHEL7)

500 TiB

(certificado en RHEL7)

256 TiB 16 TiB

* https://ext4.wiki.kernel.org/index.php/Ext4_Howto y https://access.redhat.com/solutions/1532

** https://access.redhat.com/solutions/1532

Recomendaciones para los volúmenes de Linux

Las AMI de Linux requieren una tabla de partición GUID (GPT) y GRUB 2 para volúmenes de arranque de 2 TiB (2048 GiB) o más. Muchas AMI de Linux aún emplean en la actualidad un esquema de partición MBR que solo admite tamaños de volúmenes de arranque de un máximo de 2 TiB. Si su instancia no arranca con un volumen de arranque de 2 TiB o más, la AMI que usa puede estar limitada a un tamaño de volumen de arranque de 2 TiB GiB. Los volúmenes sin arranque no tienen esta limitación en las instancias de Linux. Para obtener recomendaciones sobre los volúmenes de Windows, consulte Recomendaciones para los volúmenes de Windows en la Guía del usuario de Amazon EC2 para instancias de Windows.

Antes de intentar cambiar el tamaño de un volumen de arranque más allá de los 2 TiB, puede ejecutar el siguiente comando en la instancia para determinar si el volumen está usando una partición MBR o GPT:

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

Una instancia de Amazon Linux con partición GPT devuelve la siguiente información:

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.

Una instancia de SUSE con partición MBR devuelve la siguiente información:

GPT fdisk (gdisk) version 0.8.8

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present