SSD インスタンスストアボリューム
Linux で SSD インスタンスストアボリュームから最高の IOPS 性能を得るには、最新バージョンの Amazon Linux、またはカーネルバージョン 3.8 以降の別の Linux AMI を使用することをお勧めします。カーネルバージョン 3.8 以降の Linux AMI を使用しないと、これらのインスタンスタイプで最大可能な IOPS パフォーマンスはインスタンスで実現されません。
他のインスタンスストアボリュームと同様に、インスタンスの SSD インスタンスストアボリュームを起動するときにマップする必要があります。SSD インスタンスボリューム上のデータは、関連するインスタンスの存続期間中のみ維持されます。詳細については、EC2 インスタンスにインスタンスストアボリュームを追加するを参照してください。
NVMe SSD ボリューム
インスタンスによっては、Non-Volatile Memory Express (NVMe) ソリッドステートドライブ (SSD) インスタンスストアボリュームを提供するものもあります。各インスタンスタイプによりサポートされるインスタンスストアボリュームのタイプの詳細については、「インスタンスストアボリューム」を参照してください。
NVMe ボリュームにアクセスするには、NVMe ドライバーをインストールする必要があります。以下の AMI はこの要件を満たしています。
Amazon Linux 2
Amazon Linux AMI 2018.03
Ubuntu 14.04 (
linux-aws
カーネル) 以降Red Hat Enterprise Linux 7.4 以降
SUSE Linux Enterprise Server 12 SP2 以降
CentOS 7.4.1708 以降
FreeBSD 11.1 以降
Debian GNU/Linux 9 以降
インスタンスに接続したら、lspci コマンドを使用して NVMe デバイスをリストできます。次に示すのは、4 つの NVMe デバイスをサポートする i3.8xlarge
インスタンスの出力例です。
[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)
サポートされているオペレーティングシステムを使用しているが、NVMe デバイスが表示されない場合は、次のコマンドを使用して NVMe モジュールが読み込まれていることを確認します。
-
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
NVMe ボリュームは NVMe 1.0e 仕様に準拠しています。NVMe コマンドは NVMe ボリュームで使用できます。Amazon Linux では、nvme-cli
コマンドを使用して repo から yum
install パッケージをインストールできます。サポートされているバージョンの Linux では、イメージで利用可能でない場合は nvme-cli
パッケージをダウンロードできます。
NVMe インスタンスストレージのデータは、インスタンスのハードウェアモジュールに実装されている XTS-AES-256 ブロック暗号を使用して暗号化されます。暗号化キーは、ハードウェアモジュールで作成され、NVMe インスタンスストレージデバイスごとに固有です。すべての暗号化キーは、インスタンスが停止または終了して復元できないときに破棄されます。この暗号化を無効にしたり、独自の暗号キーを指定したりすることはできません。
非 NVMe SSD ボリューム
C3、G2、I2、M3、R3、および X1 の各インスタンスは、非 NVMe SSD を使用するインスタンスストアボリュームをサポートすることで、高いランダム I/O パフォーマンスを実現しています。各インスタンスタイプによりサポートされるインスタンスストアボリュームの詳細については、「インスタンスストアボリューム」を参照してください。
インスタンスストアボリュームの TRIM のサポート
一部のインスタンスタイプでは、TRIM を持つ SSD ボリュームがサポートされます。詳細については、インスタンスストアボリュームを参照してください。
TRIM をサポートしているインスタンスストアボリュームは、インスタンスに割り当てられる前に完全に TRIM が実行されます。これらのボリュームは、インスタンスの起動時にファイルシステムを使用してフォーマットされないため、マウントして使用する前にボリュームをフォーマットする必要があります。これらのボリュームを迅速に使用できるようにするには、ボリュームをフォーマットするときに、TRIM 操作をスキップします。
TRIM をサポートするインスタンスストアボリュームでは、TRIM コマンドを使用して、書き込んだデータが不要になったときに SSD コントローラーに通知することができます。これにより、より多くの空き領域がコントローラーに与えられ、その結果書き込み増幅が減り、パフォーマンスが向上します。Linux では、fstrim
コマンドを使用して、定期的な TRIM を有効にします。