Volúmenes de almacén de instancias SSD - Amazon Elastic Compute Cloud

Volúmenes de almacén de instancias SSD

Para garantizar el mejor rendimiento de IOPS en los volúmenes de almacenes de instancias SSD en Linux, se recomienda utilizar la versión más reciente de Amazon Linux u otra AMI de Linux con una versión del kernel de 3.8 o posterior. Si no utiliza una AMI de Linux con una versión del kernel de 3.8 o posterior, su instancia no logrará el rendimiento de IOPS máximo disponible para estos tipos de instancias.

Al igual que otros volúmenes de almacén de instancias, debe mapear los volúmenes de almacén de instancias SSD para la instancia cuando la lance. Los datos de un volumen de instancias SSD persisten únicamente durante la vida de su instancia de asociada. Para obtener más información, consulte Agregar volúmenes de almacén de instancias a la instancia EC2.

Volúmenes SSD de NVMe

Algunas instancias ofrecen volúmenes de almacenes de instancias SSD (unidades de estado sólido) de memoria rápida no volátil (NVMe). Para obtener más información sobre el tipo de volumen de almacén de instancias admitido por cada tipo de instancia, consulte Volúmenes de almacén de instancias.

Para obtener acceso a los volúmenes NVMe, deben estar instalados los controladores NVMe. Las AMI siguientes cumplen este requisito:

  • AL2023

  • Amazon Linux 2

  • AMI de Amazon Linux 2018.03 y posterior

  • Ubuntu 14.04 o versiones posteriores con el kernel linux-aws

    nota

    Los tipos de instancias basados en AWS Graviton requieren Ubuntu 18.04 o versiones posteriores con kernel linux-aws

  • Red Hat Enterprise Linux 7.4 o versiones posteriores

  • SUSE Linux Enterprise Server 12 SP2 o versiones posteriores

  • CentOS 7.4.1708 o versiones posteriores

  • FreeBSD 11.1 o versiones posteriores

  • Debian GNU/Linux 9 o versiones posteriores

  • Bottlerocket

Después de conectarse a la instancia, puede ver una lista de los dispositivos NVMe utilizando el comando lspci. A continuación, se muestra una salida de ejemplo de una instancia i3.8xlarge, que admite cuatro dispositivos NVMe.

[ec2-user ~]$ lspci 00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02) 00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II] 00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II] 00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 01) 00:02.0 VGA compatible controller: Cirrus Logic GD 5446 00:03.0 Ethernet controller: Device 1d0f:ec20 00:17.0 Non-Volatile memory controller: Device 1d0f:cd01 00:18.0 Non-Volatile memory controller: Device 1d0f:cd01 00:19.0 Non-Volatile memory controller: Device 1d0f:cd01 00:1a.0 Non-Volatile memory controller: Device 1d0f:cd01 00:1f.0 Unassigned class [ff80]: XenSource, Inc. Xen Platform Device (rev 01)

Si utiliza un sistema operativo compatible, pero no ve los dispositivos NVMe, compruebe que el módulo NVMe esté cargado utilizando el comando siguiente.

  • Amazon Linux, Amazon Linux 2, Ubuntu 14/16, Red Hat Enterprise Linux, SUSE Linux Enterprise Server, CentOS 7

    $ lsmod | grep nvme nvme 48813 0
  • Ubuntu 18

    $ cat /lib/modules/$(uname -r)/modules.builtin | grep nvme s/nvme/host/nvme-core.ko kernel/drivers/nvme/host/nvme.ko kernel/drivers/nvmem/nvmem_core.ko

Los volúmenes NVMe son compatibles con la especificación NVMe 1.0e. Puede utilizar comandos NVMe con los volúmenes NVMe. Con Amazon Linux, puede instalar el paquete nvme-cli desde el repositorio utilizando el comando yum install. Con otras versiones soportadas de Linux, puede descargar el paquete nvme-cli si no está disponible en la imagen.

Los datos incluidos en el almacenamiento de instancias de NVMe se cifran mediante un cifrado de bloques XTS-AES-256 en un módulo de hardware de la instancia. Las claves de cifrado se generan mediante el módulo de hardware y son únicas para cada dispositivo de almacenamiento de instancias de NVMe. Todas las claves de cifrado se destruyen cuando se detiene o termina la instancia y no se pueden recuperar. No puede deshabilitar este cifrado ni tampoco proporcionar su propia clave de cifrado.

Volúmenes SSD sin NVMe

Las siguientes instancias admiten volúmenes del almacén de instancias que utilizan unidades de estado sólido (SSD) sin NVMe asignadas al azar para ofrecer un rendimiento alto de las operaciones de E/S: C3, I2, M3, R3 y X1. Para obtener más información acerca de los volúmenes de almacenes de instancias que admite cada tipo de instancia, consulte Volúmenes de almacén de instancias.

Rendimiento de E/S del volumen de almacén de instancias basado en SSD

A medida que llena los volúmenes de almacén de instancias basadas en SSD para la instancia, disminuye el número de IOPS de escritura que se pueden obtener. Esto se debe al trabajo adicional que debe realizar el controlador SSD para encontrar espacio disponible, volver a escribir los datos existentes y borrar el espacio no utilizado para que se pueda volver a escribir. Este proceso de recopilación de elementos no utilizados genera una amplificación de escritura interna en el SSD, expresada como ratio de operaciones de escritura de SSD con respecto a las operaciones de escritura del usuario. Este descenso del rendimiento es aún mayor si las operaciones de escritura no están en múltiplos de 4096 bytes o no están alineadas con un límite de 4096 bytes. Si escribe una cantidad más pequeña de bytes o bytes que no están alineados, el controlador SSD debe leer los datos circundantes y almacenar el resultado en una nueva ubicación. Este patrón genera una amplificación de escritura significativamente mayor, una mayor latencia y se reduce en gran medida el rendimiento de E/S.

Los controladores SSD pueden utilizar varias estrategias para reducir el impacto de la amplificación de escritura. Una de estas estrategias es reservar espacio en el almacén de instancias SSD para que el controlador pueda administrar con más eficiencia el espacio disponible para las operaciones de escritura. Esto se llama aprovisionamiento excesivo. Los volúmenes de almacén de instancias basadas en SSD proporcionados para una instancia no tienen espacio reservado para el aprovisionamiento excesivo. Para reducir la amplificación de escritura, recomendamos dejar un 10 % del volumen sin particiones, de modo que el controlador SSD pueda utilizarlo para el aprovisionamiento excesivo. Esto reduce el almacenamiento que se puede utilizar, pero aumenta el rendimiento aunque el disco esté a punto de llegar a su capacidad máxima.

Para los volúmenes de almacén de instancias que admiten TRIM, puede utilizar el comando TRIM para notificar al controlador SSD cuando deje de necesitar los datos que ha escrito. Esto aporta al controlador más espacio libre, lo que puede reducir la amplificación de escritura y aumentar el rendimiento. Para obtener más información, consulte Soporte TRIM del volumen de almacén de instancias.

Soporte TRIM del volumen de almacén de instancias

Algunos tipos de instancias admiten volúmenes SSD con TRIM. Para obtener más información, consulte Volúmenes de almacén de instancias.

Los volúmenes de almacenes de instancias que admiten TRIM se recortan por completo antes de asignarlos a la instancia. Estos volúmenes no están formateados con un sistema de archivos cuando se inicia una instancia, por lo que debe formatearlos antes de montarlos y usarlos. Para obtener acceso más rápidamente a estos volúmenes, debería omitir la operación TRIM cuando los formatee.

Con volúmenes de almacenes de instancias que admiten TRIM, puede utilizar el comando TRIM para notificar al controlador SSD cuando deje de necesitar los datos que ha escrito. Esto aporta al controlador más espacio libre, lo que puede reducir la amplificación de escritura y aumentar el rendimiento. En Linux, use el comando fstrim para habilitar TRIM periódico.