AWS NVMe ドライバー - Amazon Elastic Compute Cloud

AWS NVMe ドライバー

Amazon EBS ボリュームおよびインスタンスストアボリュームは、Nitro ベースのインスタンスで NVMe ブロックデバイスとして公開されます。NVMe ブロックデバイスとして公開されるボリュームで Amazon EBS 機能のパフォーマンスと機能を最大限に活用するには、インスタンスに NVMe AWS ドライバーがインストールされている必要があります。現行世代のすべての AWS Windows AMI には、デフォルトで NVMe ドライバーがインストールされています。AWS

EBS および NVMe の詳細については、「Amazon EBS ユーザーガイド」の「Amazon EBS および NVMe」を参照してください。SSD インスタンスストアと NVMe の詳細については、「EC2 インスタンスの SSD インスタンスストアボリューム」を参照してください。

以下の AMI には、必要な NVMe ドライバーが含まれています。

  • Amazon Linux 2

  • Amazon Linux AMI 2018.03

  • linux-aws カーネルを搭載した Ubuntu 14.04 以降

    注記

    AWS Graviton ベースのインスタンスタイプには、linux-aws カーネル搭載の Ubuntu 18.04 以降が必要です

  • Red Hat Enterprise Linux 7.4 以降

  • SUSE Linux Enterprise Server 12 SP2 以降

  • CentOS 7.4.1708 以降

  • FreeBSD 11.1 以降

  • Debian GNU/Linux 9 以降

インスタンスに NVMe ドライバーがあることを確認するには

次のコマンドを使用して、インスタンスに NVMe ドライバーがあることを確認できます。

  • Amazon Linux、RHEL、CentOS、SUSE Linux Enterprise Server

    $ modinfo nvme

    インスタンスに NVMe ドライバーがある場合、コマンドはそのドライバーに関する情報を返します。

  • Amazon Linux 2、Ubuntu

    $ ls /sys/module/ | grep nvme

    インスタンスに NVMe ドライバーがある場合、コマンドはインストールされたドライバーを返します。

NVMe ドライバーを更新するには

インスタンスに NVMe ドライバーがある場合は、次の手順を使用してドライバーを最新バージョンに更新できます。

  1. インスタンスに接続します。

  2. パッケージのキャッシュを更新し、必要なパッケージの更新を次のように取得します。

    • Amazon Linux 2、Amazon Linux、CentOS、Red Hat Enterprise Linux の場合:

      [ec2-user ~]$ sudo yum update -y
    • Ubuntu と Debian の場合:

      [ec2-user ~]$ sudo apt-get update -y
  3. Ubuntu 16.04 以降には、linux-aws パッケージが含まれます。このパッケージには、Nitro ベースのインスタンスで必要な NVMe および ENA ドライバーが含まれます。最新バージョンにするには、次のように linux-aws パッケージにアップグレードします。

    [ec2-user ~]$ sudo apt-get install --only-upgrade -y linux-aws

    Ubuntu 14.04 の場合は、次のように最新の linux-aws パッケージをインストールできます。

    [ec2-user ~]$ sudo apt-get install linux-aws
  4. インスタンスを再起動して、最新のカーネルバージョンを読み込みます。

    sudo reboot
  5. 再起動後にインスタンスに再接続します。

PowerShell

Amazon が提供する最新の AWS Windows AMI を使用していない場合は、以下の手順に従って、最新の AWS NVMe ドライバーをインストールしてください。この更新は、インスタンスを再起動できる時に実施しなければなりません。インストールスクリプトを入力するとインスタンスが再起動されますが、再起動されない場合には、最終段階で再起動する必要があります。

前提条件

PowerShell 3.0 以降

最新の AWS NVMe ドライバーをダウンロードしてインストールするには
  1. 変更を元に戻す必要がある場合に備えて、AMI をバックアップとして作成することをお勧めします。

    1. インスタンスを停止すると、インスタンスストアボリューム上のデータは消去されます。インスタンスを停止する前に、必要なデータをインスタンスストアボリュームから永続的ストレージ (Amazon EBS や Amazon S3 など) にコピーしていることを確認します。

    2. ナビゲーションペインで、[インスタンス] を選択します。

    3. ドライバーのアップグレードが必要なインスタンスを選択し、[インスタンスの状態]、[インスタンスの停止] の順に選択します。

    4. インスタンスを停止したら、インスタンスを選択し、[アクション]、[イメージとテンプレート]、[イメージの作成] の順に選択します。

    5. [Instance state (インスタンスの状態)]、[Start instance (インスタンスの開始)] の順に選択します。

  2. インスタンスに接続してローカル管理者としてログインします。

  3. 次のいずれかのオプションを使用して、インスタンスにドライバをダウンロードし抽出します。

    • ブラウザを使用する:

      1. インスタンスに最新のドライバーパッケージをダウンロードします。

      2. zip アーカイブを展開します。

    • PowerShell を使用する:

      Invoke-WebRequest https://s3.amazonaws.com/ec2-windows-drivers-downloads/NVMe/Latest/AWSNVMe.zip -outfile $env:USERPROFILE\nvme_driver.zip Expand-Archive $env:userprofile\nvme_driver.zip -DestinationPath $env:userprofile\nvme_driver
      注記

      ファイルのダウンロード時にエラーが表示され、Windows Server 2016 以前のバージョンを使用している場合は、PowerShell ターミナルで TLS 1.2 を有効にする必要がある場合があります。次のコマンドで現在の PowerShell セッションの TLS 1.2 を有効にしてから、もう一度試してください。

      [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
  4. install.ps1 ディレクトリ (nvme_driver) から .\install.ps1 PowerShell スクリプトを実行し、ドライバーをインスタンスにインストールします。エラーが発生した場合は、PowerShell 3.0 以降を使用していることを確認してください。

    1. (オプション) AWS NVMe バージョン 1.5.0 以降、Windows Server 2016 以降ではスモールコンピュータシステムインターフェイス (SCSI) の永続予約がサポートされます。この機能により、共有 Amazon EBS ストレージによる Windows Server フェイルオーバークラスタリングのサポートが追加されました。デフォルトでは、この機能はインストール中には有効になっていません。

      install.ps1 スクリプトを実行してドライバーをインストールするときに、EnableSCSIPersistentReservations パラメータに $true という値を指定すると、この機能を有効にできます。

      PS C:\> .\install.ps1 -EnableSCSIPersistentReservations $true

      install.ps1 スクリプトを実行してドライバーをインストールするときに、EnableSCSIPersistentReservations パラメータに $false という値を指定すると、この機能を無効にできます。

      PS C:\> .\install.ps1 -EnableSCSIPersistentReservations $false
    2. AWS NVMe 1.5.0 以降、install.ps1 スクリプトは常に ebsnvme-id ツールをドライバーとともにインストールします。

      (オプション) バージョン 1.4.01.4.1、および 1.4.2 の場合、install.ps1 スクリプトを使用して ebsnvme-id ツールをドライバーとともにインストールするかどうかを指定できます。

      1. ebsnvme-id ツールをインストールするには、InstallEBSNVMeIdTool ‘Yes’ を指定します。

      2. ツールをインストールしない場合は、InstallEBSNVMeIdTool ‘No’ を指定します。

        InstallEBSNVMeIdTool を指定しない場合で、かつツールが既に C:\ProgramData\Amazon\Tools に存在している場合、パッケージはデフォルトでツールをアップグレードします。ツールが存在しない場合は、install.ps1 は、デフォルトではツールをアップグレードしません。

        ツールをパッケージの一部としてインストールせず、後でインストールする場合は、ドライバーパッケージにツールの最新バージョンがあります。または、Amazon S3 からバージョン 1.0.0 をダウンロードすることもできます。

        ebsnvme-id ツールをダウンロードします。

  5. インストーラがインスタンスを再起動しない場合には、手動でインスタンスを再起動します。

Distributor

ディストリビューター (AWS Systems Manager の機能) を使用して、NVMe ドライバーパッケージを 1 回インストールすることも、スケジュールされた更新を使用してインストールすることもできます。

最新の AWS NVMe ドライバーをインストールする
  1. ディストリビューターを使用して NVMe ドライバーパッケージをインストールする方法については、「Amazon EC2 Systems Manager ユーザーガイド」の「パッケージのインストールまたは更新」を参照してください。

  2. [インストールタイプ] で、[アンインストールと再インストール] を選択します。

  3. [名前] で、AWSNVMe を選択します。

  4. (任意) [追加の引数] では、値を指定することでインストールをカスタマイズできます。値は有効な JSON 構文を使用した形式にする必要があります。aws configure パッケージの追加の引数を渡す方法の例については、「Amazon EC2 Systems Manager ドキュメント」を参照してください。

    1. AWS NVMe 1.5.0 以降、このドライバーは Windows Server 2016 以降の SCSI 永続予約をサポートしています。デフォルトでは、この機能はインストール中には有効になっていません。

      • この機能を有効にするには、{"SSM_EnableSCSIPersistentReservations": "true"} を指定します。

      • この機能を有効にしない場合は、{"SSM_EnableSCSIPersistentReservations": "false"} を指定します。

    2. AWS NVMe 1.5.0 以降、install.ps1 スクリプトは常に ebsnvme-id ツールをインストールします。

      (オプション) バージョン 1.4.01.4.1、および 1.4.2 の場合、install.ps1 スクリプトを使用して ebsnvme-id ツールをドライバーとともにインストールするかどうかを指定できます。

      • ebsnvme-id ツールをインストールするには、{"SSM_InstallEBSNVMeIdTool": "Yes"} を指定します。

      • ツールをインストールしない場合は、{"SSM_InstallEBSNVMeIdTool": "No"} を指定します。

        もし [Additional Arguments] (追加の引数) で SSM_InstallEBSNVMeIdTool が指定されていない場合で、かつツールが既に C:\ProgramData\Amazon\Tools に存在している場合、パッケージはデフォルトでツールをアップグレードします。ツールが存在しない場合、パッケージはデフォルトでツールをアップグレードしません。

        ツールをパッケージの一部としてインストールせず、後でインストールする場合は、ドライバーパッケージにツールの最新バージョンがあります。または、Amazon S3 からバージョン 1.0.0 をダウンロードすることもできます。

        ebsnvme-id ツールをダウンロードします。

  5. インストーラがインスタンスを再起動しない場合には、手動でインスタンスを再起動します。

Windows インスタンスの SCSI 永続予約を設定する

AWS NVMe ドライバーバージョン 1.5.0 以降をインストールした後は、Windows Server 2016 以降の Windows レジストリを使用して SCSI 永続予約を有効または無効にできます。これらのレジストリ変更を反映するにはインスタンスを再起動する必要があります。

SCSI 永続予約は、次のコマンドで EnableSCSIPersistentReservations の値を 1 に設定すると有効にできます。

PS C:\> $registryPath = "HKLM:\SYSTEM\CurrentControlSet\Services\AWSNVMe\Parameters\Device" Set-ItemProperty -Path $registryPath -Name EnableSCSIPersistentReservations -Value 1

SCSI 永続予約は、次のコマンドで EnableSCSIPersistentReservations の値を 0 に設定すると無効にできます。

PS C:\> $registryPath = "HKLM:\SYSTEM\CurrentControlSet\Services\AWSNVMe\Parameters\Device" Set-ItemProperty -Path $registryPath -Name EnableSCSIPersistentReservations -Value 0