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

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

基于 AWS Nitro System 构建的实例上,Amazon EBS 卷和实例存储卷显示为 NVMe 块储存设备。Windows Server 2012 R2 及更高版本包括由 Microsoft 提供的 NVMe 驱动程序 StorNVMe。但是,要获得 Amazon EBS 提供的所有性能和功能,在使用 NVMe 块储存设备时必须安装 AWS NVMe 驱动程序。Windows Server 2008 R2 及更高版本的最新 AWS Windows AMI 包含所需的 AWS NVMe 驱动程序。

有关 EBS 和 NVMe 的更多信息,请参阅《Amazon EBS 用户指南》中的 Amazon EBS 和 NVMe。有关 SSD 实例存储和 NVMe 的更多信息,请参阅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
  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. 名称中,选择 AWSNVMe

  3. 在安装类型中,选择卸载并重新安装

  4. (可选)通过为 AdditionalArguments 指定值来自定义安装。

    1. 从 AWS NVMe 1.5.0 开始,该驱动程序支持 Windows Server 2016 及更高版本的 SCSI 永久预留。默认情况下,安装期间不启用此功能。要启用此功能,请为 AdditionalArguments 指定 {"SSM_EnableSCSIPersistentReservations": $true}。如果您不想启用此功能,请为 AdditionalArguments 指定 {"SSM_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 工具,请为 AdditionalArguments 指定 {"SSM_InstallEBSNVMeIdTool": "Yes"}

      2. 如果不希望安装此工具,请为 AdditionalArguments 指定 {"SSM_InstallEBSNVMeIdTool": "No"}

        如果您未指定 AdditionalArgumentsSSM_InstallEBSNVMeIdTool,且 C:\ProgramData\Amazon\Tools 中已存在该工具,则软件包将默认升级该工具。如果该工具不存在,则软件包将默认不升级该工具。必须使用有效的 JSON 语法来格式化其它参数。有关如何为 aws configure 软件包传递其它参数的示例,请参阅 Amazon EC2 Systems Manager 文档

        如果您不想将该工具作为软件包的一部分进行安装,而想稍后再安装,则可以在驱动程序包中找到该工具的最新版本。或者,您可以从 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

AWS NVMe 驱动程序版本历史记录

下表显示了要为 Amazon EC2 上的每个 Windows Server 版本下载的相应 NVMe 驱动程序版本。

Windows Server 版本 Amazon Web Services NVMe 驱动程序版本
Windows Server 2022 最新
Windows Server 2019 最新
Windows Server 2016 最新
Windows Server 2012 R2 最新
Windows Server 2012 最新
Windows Server 2008 R2 1.3.2 及更早版本

下表说明已发行的 AWS NVMe 驱动程序版本。

程序包版本 驱动程序版本 详细信息 发行日期

1.5.1

1.5.0

修复了安装脚本,以便在 ebsnvme-id 工具不存在时为其创建文件夹。

2023 年 11 月 17 日

1.5.0

1.5.0

为运行 Windows Server 2016 及更高版本的实例增加对小型计算机系统接口(SCSI)永久保留的支持。ebsnvme-id 工具(ebsnvme-id.exe)现在已默认安装。

2023 年 8 月 31 日

1.4.2

1.4.2

修复了 AWS NVMe 驱动程序 不支持 D3 实例上实例存储卷的错误。

2023 年 3 月 16 日

1.4.1

1.4.1

报告支持此可选 NVMe 功能的 EBS 卷的命名空间首选写入粒度(NPGW)。有关更多信息,请参阅 NVMe 基本规范版本 1.4 中的第 8.25 部分“通过 I/O 大小和对齐依从性改进性能”。

2022 年 5 月 20 日

1.4.0

1.4.0

  • 增加了对 IOCTL 的支持,允许应用程序与 NVMe 设备进行交互。此支持允许应用程序从 NVMe 设备处获得 IdentifyControllerIdentifyNamespaceNameSpace 的列表。有关更多信息,请参阅 Microsoft 文档中的协议特定的查询

  • 在 Windows Server 2008 R2 上安装 Amazon Web Services NVMe 1.4.0 将失败。Windows Server 2008 R2 上支持 Amazon Web Services NVMe 版本 1.3.2 及更早版本。

  • 1.4.0 驱动程序版本和最新 ebsnvme-id 工具 (ebsnvme-id.exe) 组合包含于同一个软件包中。这种组合使您能够通过单个软件包即可同时安装驱动程序和工具。有关更多详细信息,请参阅安装或升级使用 PowerShell 的 AWS NVMe 驱动程序

  • 错误修复与可靠性改进。

2021 年 11 月 23 日

1.3.2

1.3.2

修复了与修改主动处理 IO 的 EBS 卷有关的问题,此问题可能导致数据损坏。不修改在线 EBS 卷(例如,调整大小或更改类型)的客户不会受到影响。

2019 年 9 月 10 日

1.3.1

1.3.1

可靠性改进。

2019 年 5 月 21 日

1.3.0

1.3.0

设备优化改进。

2018 年 8 月 31 日

1.2.0

1.2.0

对所有受支持的实例(包括裸机实例)上的 AWS NVMe 设备的性能和可靠性改进。

2018 年 6 月 13 日

1.0.0

1.0.0

运行 Windows Server 的受支持实例类型的 AWS NVMe 驱动程序。

2018 年 2 月 12 日

订阅 通知

Amazon SNS 可在 EC2 Windows 驱动程序的新版本发布时向您发送通知。使用以下过程订阅这些通知。

从控制台订阅 EC2 通知
  1. 通过以下网址打开 Amazon SNS 控制台:https://console.aws.amazon.com/sns/v3/home

  2. 如果需要,可在导航栏中将区域更改为美国东部(弗吉尼亚北部)。您必须选择此区域,因为您订阅的 SNS 通知是在此区域中创建的。

  3. 在导航窗格中,选择 Subscriptions

  4. 选择 Create subscription

  5. Create subscription 对话框中,执行以下操作:

    1. 对于 TopicARN,复制以下 Amazon Resource Name (ARN):

      arn:aws:sns:us-east-1:801119661308:ec2-windows-drivers

    2. 对于 Protocol,选择 Email

    3. 对于 Endpoint,键入可用于接收通知的电子邮件地址。

    4. 选择 Create subscription

  6. 您将收到一封确认电子邮件。打开电子邮件,然后按照说明操作以完成订阅。

每当发布新的 EC2 Windows 驱动程序时,我们都会向订户发送通知。如果您不希望再收到这些通知,请通过以下步骤取消订阅。

从 Amazon EC2 Windows 驱动程序通知中取消订阅
  1. 通过以下网址打开 Amazon SNS 控制台:https://console.aws.amazon.com/sns/v3/home

  2. 在导航窗格中,选择 Subscriptions

  3. 选中订阅的复选框,然后依次选择 Actions (操作)Delete subscriptions (删除订阅)。当系统提示进行确认时,选择 Delete

使用AWS CLI 订阅 EC2 通知

要使用 AWS CLI 订阅 EC2 通知,请使用以下命令。

aws sns subscribe --topic-arn arn:aws:sns:us-east-1:801119661308:ec2-windows-drivers --protocol email --notification-endpoint YourUserName@YourDomainName.ext
使用 AWS Tools for Windows PowerShell 订阅 EC2 通知

要使用 AWS Tools for Windows PowerShell 订阅 EC2 通知,请使用以下命令。

Connect-SNSNotification -TopicArn 'arn:aws:sns:us-east-1:801119661308:ec2-windows-drivers' -Protocol email -Region us-east-1 -Endpoint 'YourUserName@YourDomainName.ext'