Volumes de armazenamento de instância SSD para instâncias do EC2
Como outros volumes de armazenamento de instâncias, é necessário mapear os volumes de armazenamento de instância SSD para sua instância quando ela é executada. Os dados nos volumes de instância SSD persistem apenas durante a vida útil da instância do associada. Para obter mais informações, consulte Adicionar volumes de armazenamento de instâncias a uma instância do EC2.
Volumes SSD de NVMe
Algumas instâncias oferecem volumes de armazenamento de instâncias de unidades de estado sólido (SSD) de memória expressa não volátil (NVMe). Para obter mais informações sobre o tipo de volume de armazenamento de instâncias compatível com cada tipo de instância, consulte Limites de volume de armazenamento de instância para instâncias do EC2.
Os dados no armazenamento de instâncias de NVMe são criptografados usando uma criptografia de bloco XTS-AES-256 implementada em um módulo de hardware na instância. As chaves de criptografia são geradas usando o módulo de hardware e são exclusivas para cada dispositivo de armazenamento de instâncias de NVMe. Todas as chaves de criptografia são destruídas quando a instância é interrompida ou encerrada e não podem ser recuperadas. Você não pode desativar essa criptografia e não pode fornecer sua própria chave de criptografia.
Para acessar os volumes de NVMe, os drivers de NVMe devem ser instalados. As AMIs a seguir atendem a este requisito:
AL2023
Amazon Linux 2
Amazon Linux AMI 2018.03 e posteriores
-
Ubuntu 14.04 ou posterior com kernel
linux-aws
nota
Os tipos de instância baseados no AWS Graviton requerem o Ubuntu 18.04 ou posterior com kernel
linux-aws
Red Hat Enterprise Linux 7.4 ou posterior
SUSE Linux Enterprise Server 12 SP2 ou posterior
CentOS 7.4.1708 ou posterior
FreeBSD 11.1 ou posterior
Debian GNU/Linux 9 ou posterior
Bottlerocket
Depois de se conectar à instância, é possível listar os dispositivos de NVMe usando o comando lspci O seguinte é um exemplo da saída de uma instância i3.8xlarge
compatível com quatro dispositivos de 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)
Se você está usando um sistema operacional compatível mas os dispositivos de NVMe não estão sendo exibidos, verifique se o módulo de NVMe está carregado usando o comando a seguir.
-
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
Os volumes de NVMe estão em conformidade com a especificação NVMe 1.0e. É possível usar os comandos de NVMe com os volumes de NVMe. Com o Amazon Linux, é possível instalar o pacote nvme-cli
no repositório usando o comando yum
install. Com outras versões compatíveis do Linux, é possível fazer download do pacote nvme-cli
se ele não estiver disponível na imagem.
As AMIs do Windows da AWS mais recentes dos seguintes sistemas operacionais contêm os drivers do AWS NVMe usados para interagir com volumes de armazenamento de instâncias SSD que são expostos como dispositivos de bloco de NVMe para melhor performance:
-
Windows Server 2022
-
Windows Server 2019
-
Windows Server 2016
-
Windows Server 2012 R2
Depois de se conectar à instância, é possível verificar se você vê os volumes de NVMe no Gerenciador de Disco. Na barra de ferramentas, abra o menu de contexto (clique com o botão direito do mouse) no logotipo do Windows e escolha Disk Management.
As AMIs do Windows da AWS fornecidas pela Amazon incluem o driver do AWS NVMe. Se você não estiver usando as AMIs do Windows da AWS mais recentes, instale o driver atual do AWS NVMe.
Volumes SSD não NVMe
As instâncias apresentadas a seguir oferecem suporte a volumes de armazenamento de instância que usam SSDs não NVMe para fornecer alta performance de E/S randômica: C3, I2, M3, R3 e X1. Para obter mais informações sobre o suporte a volumes de armazenamento de instâncias com suporte de cada tipo de instância, consulte Limites de volume de armazenamento de instância para instâncias do EC2.
Performance de E/S de volume de armazenamento de instância baseada em SSD
Ao preencher os volumes de armazenamento de instâncias baseados em SSD, o número de IOPS de gravação que é possível atingir diminui. Isso se deve ao trabalho extra que o controlador SSD deve fazer para encontrar espaço disponível, regravar os dados existentes e apagar o espaço não utilizado para que possa ser regravado. Esse processo de coleta de lixo resulta em uma amplificação da gravação interna no SSD, expressa como uma proporção entre as operações de gravação SSD e as operações de gravação do usuário. Essa redução na performance será ainda maior se as operações de gravação não ocorrerem em múltiplos de 4.096 bytes ou não estiverem alinhadas com um limite de 4.096 bytes. Se você gravar uma quantidade menor de bytes ou os bytes que não estejam alinhados, o controlador SSD deverá ler os dados adjacentes e armazenar o resultado em um novo local. Esse padrão resulta em uma amplificação da gravação muito maior, maior latência e uma performance de E/S drasticamente reduzida.
Os controladores SSD podem usar várias estratégias para reduzir o impacto da amplificação da gravação. Uma dessas estratégias é reservar espaço no armazenamento de instâncias SSD para que o controlador possa gerenciar, com mais eficiência, o espaço disponível para operações de gravação. Isso é denominado superprovisionamento. Os volumes de armazenamento de instância baseados em SSD fornecidos a uma instância não têm espaço reservado para o provisionamento em excesso. Para reduzir a amplificação da gravação, recomendamos reservar 10% do volume como não particionado, de modo que o controlador SSD possa usá-lo para provisionamento em excesso. Isso diminui o armazenamento que é possível usar, mas aumenta a performance mesmo se o disco estiver próximo da capacidade total.
Para volumes de armazenamento de instância compatíveis com TRIM, é possível usar o comando TRIM para notificar o controlador de SSD sempre que você não precisa mais dos dados que gravou. Isso fornece ao controlador mais espaço livre, o que pode reduzir a amplificação da gravação e aumentar o desempenho. Para ter mais informações, consulte Suporte a TRIM do volume de armazenamento de instâncias.
Suporte a TRIM do volume de armazenamento de instâncias
Alguns tipos de instâncias oferecem suporte a volumes SSD com TRIM. Para ter mais informações, consulte Limites de volume de armazenamento de instância para instâncias do EC2.
nota
(Somente para instâncias do Windows) As instâncias que executam o Windows Server 2012 R2 são compatíveis com a função TRIM a partir da versão 7.3.0 do driver PV da AWS. As instâncias que executam versões anteriores do Windows Server não são compatíveis com TRIM.
Os volumes de armazenamento de instâncias que oferecem suporte ao TRIM são aparados completamente antes de serem alocados à instância. Esses volumes não estão formatados com um sistema de arquivos quando uma instância é iniciada, portanto, é necessário formatá-los para que possam ser montados e usados. Para obter acesso mais rápido a esses volumes, é necessário ignorar a operação TRIM ao formatá-los.
(Instâncias do Windows) Para desabilitar temporariamente o suporte para a função TRIM durante a formatação inicial, use o comando fsutil behavior set DisableDeleteNotify 1
. Após a conclusão da formatação, habilite novamente o suporte para a função TRIM ao usar fsutil behavior set DisableDeleteNotify
0
.
Com volumes de armazenamento de instâncias que oferecem suporte ao TRIM, é possível usar o comando TRIM para notificar o controlador de SSD quando você não precisa mais dos dados que gravou. Isso fornece ao controlador mais espaço livre, o que pode reduzir a amplificação da gravação e aumentar a performance. Em instâncias do Linux, use o comando fstrim
para habilitar a função TRIM periódica. Em instâncias do Windows, use o comando fsutil
behavior set DisableDeleteNotify 0
para garantir que o suporte para a função TRIM esteja habilitado durante a operação normal.