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

Amazon EBS と NVMe

C5 インスタンスの場合、EBS ボリュームは NVMe ブロックデバイスとして公開されます。デバイス名は、/dev/nvme0n1/dev/nvme1n1 などです。ブロックデバイスマッピングで指定したデバイス名は、NVMe デバイス名 (/dev/nvme[0-7]n1) を使用して名称変更されます。

注記

Amazon_EBS_Product_Details」に記載されている EBS のパフォーマンス安定性は、ブロックデバイスインターフェイスに関係なく有効です。

EBS デバイスの特定

Amazon Linux AMI

AMI Amazon Linux 2017.09.01 以降では、次のように ebsnvme-id コマンドを実行して、NVMe デバイス名をボリューム ID とデバイス名にマップすることができます。

Copy
[ec2-user ~]$ sudo /sbin/ebsnvme-id /dev/nvme1n1 Volume ID: vol-01324f611e2463981 /dev/sdf

また、Amazon Linux はブロックデバイスマッピング (たとえば、/dev/sdf) 内のデバイス名から NVMe デバイス名へのシンボリックリンクを作成します。

その他の Linux AMI

カーネルバージョン 4.2 以降では、次のように nvme id-ctrl コマンドを実行して、NVMe デバイスをボリューム ID にマップすることができます。最初に、NVMe コマンドラインをインストールします。

Copy
[ec2-user ~]$ sudo yum install nvme

次の例では、ボリューム ID やデバイス名を取得します。デバイス名は、NVMe コントローラベンダ固有の拡張子 (コントローラ ID のバイト 384:4095) を介して使用できます。

Copy
[ec2-user ~]$ sudo nvme id-ctrl -v /dev/nvme1n1 NVME Identify Controller: vid : 0x1d0f ssvid : 0x1d0f sn : vol01234567890abcdef mn : Amazon Elastic Block Store ... 0000: 2f 64 65 76 2f 73 64 6a 20 20 20 20 20 20 20 20 "/dev/sdf..."

lsblk コマンドは、使用可能なデバイスとそのマウントポイント (該当する場合) をリストします。これは、使用する正しいデバイス名を決定するのに役立ちます。この例では、/dev/nvme0n1p1 がルートデバイスとしてマウントされ、/dev/nvme1n1 はアタッチされていますがマウントされていません。

Copy
[ec2-user ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme1n1 259:3 0 100G 0 disk nvme0n1 259:0 0 8G 0 disk nvme0n1p1 259:1 0 8G 0 part / nvme0n1p128 259:2 0 1M 0 part

NVMe EBS ボリュームを操作する

Linux カーネル 4.2 以降を使用している場合は、NVMe EBS ボリュームのボリュームサイズを変更すると、自動的にインスタンスに反映されます。古い Linux カーネルの場合は、EBS ボリュームをデタッチしてアタッチするか、インスタンスを再起動してサイズ変更を反映させる必要があります。Linux カーネル 3.19 以降では、hdparm コマンドを次のように使用して NVMe デバイスの再スキャンを強制できます。

Copy
[ec2-user ~]$ sudo hdparm -z /dev/nvme1n1

NVMe EBS ボリュームをデタッチする前に、そのボリュームを同期およびアンマウントする必要があります。NVMe EBS ボリュームをデタッチすると、強制オプションが暗黙的に有効になります。したがって、インスタンスには、ボリュームをデタッチする前に、ファイルシステムのキャッシュまたはメタデータをフラッシュする機会が失われます。

注記

st1 または sc1 ボリュームを使用している場合は、C4 インスタンスを引き続き使用することをお勧めします。C5 は現在 st1 または sc1 ボリュームをサポートしていません。

I/O オペレーションタイムアウト

NVMe EBS ボリュームは、オペレーティングシステムのデフォルトの NVMe ドライバーを使用します。ほとんどのオペレーティングシステムでは、NVMe デバイスに送信された I/O オペレーションのタイムアウトがあります。デフォルトのタイムアウトは 30 秒で、最大値は 255 秒です。

Linux システムでは、nvme_core.io_timeout ブートパラメータを使用してタイムアウトを 255 秒に増やすことをお勧めします。現行の Amazon Linux AMI を使用している場合は、デフォルトのタイムアウトが既に増加しています。

Linux カーネル 4.14 以降では、I/O オペレーションを再試行できる回数を設定することもできます。デフォルトは 5 回の再試行です。nvme_core.nvme_max_retries カーネルブートパラメータを使用するか、実行時に次のコマンドを使用して別の値を設定できます。

Copy
[ec2-user ~]$ echo 10 > /sys/module/nvme_core/parameters/max_retries