适用于 Windows 实例的 AWS NVMe 驱动程序 - Amazon Elastic Compute Cloud

适用于 Windows 实例的 AWS NVMe 驱动程序

基于 AWS Nitro System 构建的实例上,Amazon EBS 卷和实例存储卷显示为 NVMe 块储存设备。要为作为 NVMe 块设备公开的卷充分利用 Amazon EBS 功能的性能和功能,实例必须安装了 AWS NVMe 驱动程序。所有当前一代 AWS Windows AMI 都默认安装了 AWS NVMe 驱动程序。

有关 EBS 和 NVMe 的更多信息,请参阅《Amazon EBS 用户指南》中的 Amazon EBS 和 NVMe。有关 SSD 实例存储和 NVMe 的更多信息,请参阅适用于 Amazon EC2 实例的 SSD 实例存储卷

安装或升级使用 PowerShell 的 AWS NVMe 驱动程序

如果您使用的不是 Amazon 提供的最新 AWS Windows AMI,请使用以下过程安装最新的 AWS NVMe 驱动程序。您应该在方便重新引导实例的时候执行该更新。安装脚本将重新引导实例,或者您必须在最后一步中重新引导实例。

先决条件

PowerShell 3.0 或更高版本

下载并安装最新 AWS NVMe 驱动程序
  1. 如果需要回滚更改,我们建议您按如下方式创建 AMI 作为备份。

    1. 当您停止某个实例时,任何实例存储卷上的数据都将被擦除。在停止实例之前,请确认您是否已将所需数据从实例存储卷复制到持久性存储,例如 Amazon EBS 或 Amazon S3。

    2. 在导航窗格中,选择实例

    3. 选择需要升级驱动程序的实例,然后依次选择 Instance state (实例状态)Stop instance (停止实例)

    4. 实例停止后,选择实例,依次选择 Actions (操作) Image and templates (映像和模板),然后选择 Create image (创建映像)

    5. 依次选择实例状态启动实例

  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. 通过运行 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 脚本以安装驱动程序时,您可以通过指定值为 $trueEnableSCSIPersistentReservations 参数来启用该功能。

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

      在运行 install.ps1 脚本以安装驱动程序时,您可以通过指定值为 $falseEnableSCSIPersistentReservations 参数来禁用该功能。

      PS C:\> .\install.ps1 -EnableSCSIPersistentReservations $false
    2. 从 AWS NVMe 1.5.0 开始,install.ps1 脚本始终安装带有驱动程序的 ebsnvme-id 工具。

      (可选)对于版本 1.4.01.4.11.4.2install.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. 如果安装程序没有重新引导实例,请重新引导该实例。

使用分发服务器安装或升级 AWS NVMe 驱动程序

您可以使用分发服务器(AWS Systems Manager 的一项功能)一次性安装 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.11.4.2install.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. 如果安装程序没有重新引导实例,请重新引导该实例。

配置 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