

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# AWS NVMe 驅動程式
<a name="aws-nvme-drivers"></a>

Amazon EBS 磁碟區和執行個體儲存體會公開為 [Nitro 型執行個體](instance-types.md#instance-hypervisor-type)上的 NVMe 區塊型儲存設備。若要針對公開為 NVMe 區塊裝置的磁碟區充分利用 Amazon EBS 功能的效能和功能，執行個體必須安裝 AWS NVMe 驅動程式。所有目前世代的 AWS Windows AMI 都隨附預設安裝的 AWS NVMe 驅動程式。 AMIs 

如需 EBS 和 NVMe 的詳細資訊，請參閱「Amazon EBS 使用者指南」**中的 [Amazon EBS 和 NVMe](https://docs.aws.amazon.com/ebs/latest/userguide/nvme-ebs-volumes.html)。如需 SSD 執行個體儲存體和 NVMe 的詳細資訊，請參閱 [EC2 執行個體的 SSD 執行個體儲存體磁碟區](ssd-instance-store.md)。

## Linux 執行個體
<a name="install-nvme-driver-linux"></a>

下列 AMI 包含下列必要 NVMe 驅動程式：
+ Amazon Linux 2
+ Amazon Linux AMI 2018.03
+ Ubuntu 14.04 或更新版本 (帶 `linux-aws` 核心)
**注意**  
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. 連線到您的 執行個體。

1. 更新套件快取，以取得如下的必要套件更新。
   + 若是 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
     ```

1. 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
   ```

1. 將執行個體重新開機以載入最新的核心版本。

   ```
   sudo reboot
   ```

1. 重新開機後，請重新連線至您的執行個體。

## Windows 執行個體
<a name="install-nvme-drivers-windows"></a>

------
#### [ PowerShell ]

如果您未從 Amazon 提供的最新 AWS Windows AMIs 之一啟動執行個體，請使用下列程序在您的執行個體上安裝 current AWS NVMe 驅動程式。在進行此安裝時需要重新啟動。安裝指令碼會重新啟動您的執行個體，或是您必須重新啟動，以作為最後一個步驟。

**先決條件**
+ 已安裝 PowerShell 3.0 版或更新版本
+ 本節所示命令必須在 64 位元版本的 PowerShell 中執行。請勿使用 `x86` 版本的 PowerShell。此為 32 位元版本的 Shell，不支援這些命令。

**下載並安裝 latest AWS NVMe 驅動程式**

1. 我們建議您根據以下方式建立 AMI 作為備份，以防您需要復原變更。

   1. 停止執行個體時，在任何執行個體儲存體磁碟區的資料都會清除。停止執行個體之前，請確認您已將所需的任何資料從執行個體儲存體磁碟區複製到永久性儲存，例如 Amazon EBS 或 Amazon S3。

   1. 在導覽窗格中，選擇 **Instances** (執行個體)。

   1. 選取需要升級驅動程式的執行個體，並依序選取 **Instance state (執行個體狀態)**、**Stop instance (停止執行個體)**。

   1. 停止執行個體後，請選取執行個體，依序選取 **Actions (動作)**、**Image and templates (映像和範本)**，然後選取 **Create image (建立映像)**。

   1. 選擇 **Instance state (執行個體狀態)**、**Start instance (啟動執行個體)**。

1. 連線到您的執行個體，並以本機管理員登入。

1. 使用下列其中一個選項下載驅動程式至您的執行個體：
   + **瀏覽器** – [下載](https://s3.amazonaws.com/ec2-windows-drivers-downloads/NVMe/Latest/AWSNVMe.zip) 最新的驅動程式套件至執行個體，然後解壓縮 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
     ```

1. 透過執行 `nvme_driver` 目錄 (`.\install.ps1`) 中的 `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
      ```

   1. 從 AWS NVMe 開始`1.5.0`，`install.ps1`指令碼一律使用驅動程式安裝`ebsnvme-id`工具。

      (選用) 對於版本 `1.4.0`、`1.4.1` 和 `1.4.2`，`install.ps1` 指令碼允許您指定 `ebsnvme-id` 工具是否應與驅動程式一起安裝。

      1. 若要安裝 `ebsnvme-id` 工具，請指定 `InstallEBSNVMeIdTool ‘Yes’`。

      1. 如果您不想安裝工具，請指定 `InstallEBSNVMeIdTool ‘No’`。

         如果您未指定 `InstallEBSNVMeIdTool`，並且工具已存在於 `C:\ProgramData\Amazon\Tools`，則套件預設會升級此工具。如果工具不存在，`install.ps1` 預設不會升級此工具。

         如果您不想將工具安裝為套件的一部分，而且想要稍後安裝它，則可以在驅動程式套件中找到最新版本或工具。或者，您可以從 Amazon S3 下載版本 `1.0.0`：

         [下載](https://s3.amazonaws.com/ec2-windows-drivers-downloads/EBSNVMeID/Latest/ebsnvme-id.zip) `ebsnvme-id` 工具。

1. 如果安裝程式並未重新啟動您的執行個體，請重新啟動執行個體。

------
#### [ Distributor ]

您可以使用 Distributor 的功能 AWS Systems Manager，一次性安裝 NVMe 驅動程式套件，或搭配排定的更新進行安裝。

**安裝 latest AWS NVMe 驅動程式**

1. 如需如何使用 Distributor 安裝 NVMe 驅動程式套件的指示，請參閱 *Amazon EC2 Systems Manager 使用者指南*中的[安裝或更新套件](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor-working-with-packages-deploy.html)。

1. 對於**安裝類型**，選取**解除安裝並重新安裝**。

1. 對於**名稱**，選擇 **AWSNVMe**。

1. (選用) 對於**其他引數**，您可指定值來自訂安裝。值必須使用有效 JSON 語法進行格式化。如需如何傳遞 `aws configure` 套件額外引數的範例，請參閱[命令文件外掛程式參考](https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-command-ssm-plugin-reference.html)。

   1. 從 AWS NVMe 開始`1.5.0`，驅動程式支援 Windows Server 2016 和更新版本的 SCSI 持久性保留。依預設，安裝期間系統不會啟用此功能。
      + 若要啟用此功能，請指定 `{"SSM_EnableSCSIPersistentReservations": "true"}`。
      + 若您不想啟用此功能，請指定 `{"SSM_EnableSCSIPersistentReservations": "false"}`。

   1. 從 AWS NVMe 開始`1.5.0`，`install.ps1`指令碼將一律安裝 `ebsnvme-id`工具。

      (選用) 對於版本 `1.4.0`、`1.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`：

        [下載](https://s3.amazonaws.com/ec2-windows-drivers-downloads/EBSNVMeID/Latest/ebsnvme-id.zip) `ebsnvme-id` 工具。

1. 如果安裝程式並未重新啟動您的執行個體，請重新啟動執行個體。

------

## 為 Windows 執行個體設定 SCSI 持續保留
<a name="configure-scsi-persistent-reservations"></a>

已安裝 After AWS NVMe 驅動程式版本 `1.5.0`或更新版本，您可以使用適用於 Windows Server 2016 和更新版本的 Windows 登錄來啟用或停用 SCSI 持久性保留。您必須重新啟動這些登錄檔的執行個體，變更才會生效。

您可以使用以下命令 (將 `EnableSCSIPersistentReservations` 設定為值 `1`)，啟用 SCSI 持續保留。

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

您可以使用以下命令 (將 `EnableSCSIPersistentReservations` 設定為值 `0`)，停用 SCSI 持續保留。

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