メニュー
Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド

SSD インスタンスストアボリューム

C3、G2、HI1、I2、I3、M3、R3、および X1 の各インスタンスは、非常に高いランダム I/O パフォーマンスを提供するために、ソリッドステートドライブ (SSD) を使用するインスタンスストアボリュームをサポートします。インスタンスタイプごとのインスタンスストアボリュームのサポートの詳細については、「インスタンスストアボリューム」を参照してください。

Linux で SSD インスタンスストアボリュームから最高の IOPS 性能を得るには、最新バージョンの Amazon Linux AMI、またはカーネルバージョン 3.8 以降の別の Linux AMI を使用することをお勧めします。カーネルバージョン 3.8 以降の Linux AMI を使用しないと、インスタンスはこれらのインスタンスタイプで可能な最高の IOPS パフォーマンスを実現できません。

他のインスタンスストアボリュームと同様に、起動時にインスタンスの SSD インスタンスストアボリュームをマッピングする必要があり、SSD インスタンスボリュームのデータは、関連するインスタンスの存続期間のみ保持されます。詳細については、「EC2 インスタンスにインスタンスストアボリュームを追加する」を参照してください。

NVMe SSD ボリューム

I3 インスタンスは、Non-Volatile Memory Express (NVMe) SSD インスタンスストアボリュームを提供します。NVMe ボリュームにアクセスするには、NVMe をサポートするオペレーティングシステムを使用する必要があります。最小限のオペレーティングシステム要件を次に示します。

  • 現在の Amazon Linux AMI

  • Ubuntu バージョン 16.10、またはバージョン 16.04 LTS。バージョン 14.04 には、お勧めできない古いバージョンの NVMe が含まれています。

  • CentOS バージョン 7

  • SUSE Linux Enterprise Server バージョン 12、またはバージョン 11 と SP3

  • Windows Server 2016、Windows Server 2012 R2、または Windows Server 2008 R2 Windows Server 2012 および Windows Server 2008 はサポートされていないことに注意してください。

インスタンスに接続したら、lspci コマンドを使用して NVMe デバイスをリストできます。次に示すのは、4 つの NVMe デバイスをサポートする i3.8xlarge インスタンスの出力例です。

Copy
[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 デバイスが表示されない場合は、次の lsmod コマンドを使用して NVMe モジュールが読み込まれていることを確認します。

Copy
[ec2-user ~]$ lsmod | grep nvme nvme 48813 0

NVMe ボリュームは NVMe 1.0a 仕様に準拠しています。NVMe コマンドは NVMe ボリュームで使用できます。Amazon Linux AMI では、yum install コマンドを使用して repo から nvme-cli パッケージをインストールできます。サポートされているバージョンの Linux では、イメージで利用可能でない場合は nvme-cli パッケージをダウンロードできます。

インスタンスストアボリュームの TRIM のサポート

I2、I3、R3 の各インスタンスでは、TRIM を持つ SSD ボリュームがサポートされます。

TRIM をサポートするインスタンスストアボリュームでは、TRIM コマンドを使用して、書き込んだデータが不要になったときに SSD コントローラーに通知することができます。これにより、より多くの空き領域がコントローラーに与えられ、その結果書き込み増幅が減り、パフォーマンスが向上します。TRIM コマンドの使用の詳細については、インスタンス用のオペレーティングシステムのドキュメントを参照してください。

TRIM をサポートしているインスタンスストアボリュームは、インスタンスに割り当てられる前に完全に TRIM が実行されます。これらのボリュームは、インスタンスの起動時にファイルシステムを使用してフォーマットされないため、マウントして使用する前にボリュームをフォーマットする必要があります。これらのボリュームを迅速に使用できるようにするには、ボリュームをフォーマットするときに、TRIM 操作をスキップする、ファイルシステム固有のオプションを指定する必要があります。Linux では、TRIM をサポートするデバイスでは、デバイスがこの機能を効果的に使用できるように、デバイスのマウントコマンドまたは /etc/fstab ファイルエントリに discard オプションを追加することも必要です。Windows では、fsutil behavior set DisableDeleteNotify 1 コマンドを入力します。

TRIM をサポートするインスタンスストアボリュームを Linux で使用できるようにするには

  1. インスタンスを起動したらインスタンスストアボリュームをマッピングします。詳細については、「EC2 インスタンスにインスタンスストアボリュームを追加する」を参照してください。

  2. インスタンスから、lsblk コマンドを使用して使用可能なデバイスを一覧表示したり、インスタンスメタデータを使用してインスタンスストアボリュームを表示したりします。

  3. 次のコマンドを使用して、オペレーティングシステムとデバイスで TRIM がサポートされていることを確認します (xvdb を使用するデバイスの名前に置き換えます)。

    Copy
    [ec2-user ~]$ sudo cat /sys/block/xvdb/queue/discard_max_bytes 322122547200

    このコマンドにより 0 以外の値が返される場合、オペレーティングシステムとデバイスで TRIM がサポートされています。

  4. 選択したファイルシステムでボリュームをフォーマットします。

    • (EXT4) ext4 ファイルシステムでボリュームをフォーマットするには、次のコマンドを使用します (xvdc を使用するデバイスの名前に置き換えます)。

      Copy
      [ec2-user ~]$ sudo mkfs.ext4 -E nodiscard /dev/xvdc
    • (XFS) xfs ファイルシステムでボリュームをフォーマットするには、次のコマンドを使用します (xvdb を使用するデバイスの名前に置き換えます)。

      Copy
      [ec2-user ~]$ sudo mkfs.xfs -K /dev/xvdb

      注記

      このコマンドを使用するには、オペレーティングシステムに XFS ファイルシステムのサポートをインストールする必要があります。Amazon Linux 場合は、sudo yum install -y xfsprogs コマンドを使用します。

  5. discard オプションを使用してデバイスをマウントします。必ず、ボリュームのデバイス名を指定してください。既存のディレクトリを選択するか、mkdir コマンドを使用して新しいディレクトリを作成できます。

    Copy
    [ec2-user ~]$ sudo mount -o discard /dev/xvdb /mnt/my-data
  6. (オプション) 起動時にデバイスをマウントする場合は、 オプションを使用して、/etc/fstabdiscard ファイル内のエントリを追加または変更します。

    /dev/xvdb   /mnt/xvdb   xfs    defaults,nofail,discard   0   2
    /dev/xvdc   /mnt/xvdc   ext4   defaults,nofail,discard   0   2

    重要

    /etc/fstab ファイルを編集したら、sudo mount -a コマンドを実行してエラーがないことを確認します。このファイルにエラーがある場合、システムが正常に起動しない場合や、まったく起動しなくなる場合があります。

HI1 SSD ストレージ

HI1 インスタンスで SSD ストレージを使用する場合:

  • 主要なデータソースは、SSD ストレージを含むインスタンスストアです。

  • 読み取りパフォーマンスは一貫し、書き込みパフォーマンスは多様です。

  • 書き込み増幅が発生する可能性があります。

  • TRIM コマンドは現在サポートされていません。

SSD ストレージによるインスタンスストア

hi1.4xlarge インスタンスは Amazon EBS-Backed ルートデバイスを使用できます。ただし、その主要なデータストレージは、インスタンスストア内の SSD ボリュームによって提供されます。他のインスタンスストアボリュームと同様に、これらのインスタンスストアボリュームはインスタンスの運用期間中のみ永続化されます。hi1.4xlarge インスタンスのルートデバイスは Amazon EBS-Backed であるため、インスタンスを起動/停止できます。インスタンスを停止すると、アプリケーションは永続化されますが、インスタンスストアの運用データは永続化されません。インスタンスストアボリュームの詳細については、Amazon EC2 インスタンスストア を参照してください。

多様な書き込みパフォーマンス

書き込みパフォーマンスは、アプリケーションがどのように論理ブロックアドレス指定 (LBA) 空間を指定するかによって異なります。アプリケーションが LBA 空間全体を使用している場合、書き込みパフォーマンスが約 90% 低下する可能性があります。アプリケーションを評価し、キューの長さ (ボリュームに対する保留中の I/O リクエストの数) と I/O サイズを監視します。

書き込み増幅

書き込み増幅とは、フラッシュメモリと SSD に関連する望ましくない状況を指し、実際に書き込まれる物理的情報量が、意図した論理的書き込み量の倍数になることを意味します。フラッシュメモリは再書き込みする前に消去する必要があるので、これらのオペレーションを実行するプロセスでは、ユーザーデータとメタデータを 1 回以上移動 (または再書き込み) することになります。この増幅効果によって、SSD の運用期間中、必要な書き込みの数が増加し、信頼できる動作を実行する時間が短くなります。hi1.4xlarge インスタンスは、書き込み増幅を最小化することを目的とするプロビジョニングモデルを使用して設計されています。

ランダム書き込みは、シリアル書き込みよりも書き込み増幅に与える影響が大きくなります。書き込み増幅が懸念される場合は、ストレージの全テビバイト数よりも少ない容量をアプリケーションに割り当てます (オーバープロビジョニングとも呼ばれます)。

TRIM コマンド

TRIM コマンドによって、オペレーティングシステムは、以前に保存されたデータのブロックが使用されなくなったと見なされることを SSD に通知できます。TRIM によって、書き込み増幅の影響が制限されます。

TRIM のサポートは HI1 インスタンスでは利用できません。TRIM をサポートするインスタンスの詳細については、「インスタンスストアボリュームの TRIM のサポート」を参照してください。