适用于 Windows 实例的 AWS NVMe 驱动程序
在基于 AWS Nitro System 构建的实例上,Amazon EBS 卷和实例存储卷显示为 NVMe 块储存设备。Windows Server 2012 R2 及更高版本包括由 Microsoft 提供的 NVMe 驱动程序 StorNVMe
有关 EBS 和 NVMe 的更多信息,请参阅《Amazon EBS 用户指南》中的 Amazon EBS 和 NVMe。有关 SSD 实例存储和 NVMe 的更多信息,请参阅SSD 实例存储卷。
安装或升级使用 PowerShell 的 AWS NVMe 驱动程序
如果您使用的不是 Amazon 提供的最新 AWS Windows AMI,请使用以下过程安装最新的 AWS NVMe 驱动程序。您应该在方便重新引导实例的时候执行该更新。安装脚本将重新引导实例,或者您必须在最后一步中重新引导实例。
先决条件
PowerShell 3.0 或更高版本
下载并安装最新 AWS NVMe 驱动程序
-
如果需要回滚更改,我们建议您按如下方式创建 AMI 作为备份。
-
当您停止某个实例时,任何实例存储卷上的数据都将被擦除。在停止实例之前,请确认您是否已将所需数据从实例存储卷复制到持久性存储,例如 Amazon EBS 或 Amazon S3。
-
在导航窗格中,选择实例。
-
选择需要升级驱动程序的实例,然后依次选择 Instance state (实例状态)、Stop instance (停止实例)。
-
实例停止后,选择实例,依次选择 Actions (操作) 、Image and templates (映像和模板),然后选择 Create image (创建映像)。
-
依次选择实例状态、启动实例。
-
-
连接到您的实例并以本地管理员身份登录。
-
使用以下选项之一下载并解压实例的驱动程序:
-
使用浏览器:
-
将最新驱动程序包下载
到实例。 -
提取 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
-
-
通过运行
nvme_driver
目录 (.\install.ps1
) 中的install.ps1
PowerShell 脚本,将驱动程序安装到您的实例中 如果出现错误,请确保您使用的是 PowerShell 3.0 或更高版本。-
(可选)从 AWS NVMe 版本
1.5.0
开始,Windows Server 2016 及更高版本支持小型计算机系统接口(SCSI)永久预留。此功能增加了对带有共享 Amazon EBS 存储的 Windows Server 故障转移集群的支持。默认情况下,安装期间不启用此功能。在运行
install.ps1
脚本以安装驱动程序时,您可以通过指定值为$true
的EnableSCSIPersistentReservations
参数来启用该功能。PS C:\>
.\install.ps1
-EnableSCSIPersistentReservations $true在运行
install.ps1
脚本以安装驱动程序时,您可以通过指定值为$false
的EnableSCSIPersistentReservations
参数来禁用该功能。PS C:\>
.\install.ps1
-EnableSCSIPersistentReservations $false -
从 AWS NVMe
1.5.0
开始,install.ps1
脚本始终安装带有驱动程序的ebsnvme-id
工具。(可选)对于版本
1.4.0
、1.4.1
和1.4.2
,install.ps1
脚本允许您指定ebsnvme-id
工具是否应与驱动程序一起安装。-
如需安装
ebsnvme-id
工具,请指定InstallEBSNVMeIdTool ‘Yes’
。 -
如果不希望安装此工具,请指定
InstallEBSNVMeIdTool ‘No’
。如果您未指定
InstallEBSNVMeIdTool
,且C:\ProgramData\Amazon\Tools
中已存在该工具,则软件包将默认升级该工具。如果该工具不存在,则install.ps1
将默认不升级该工具。如果您不想将该工具作为软件包的一部分进行安装,而想稍后再安装,则可以在驱动程序包中找到最新版本或该工具。或者,您可以从 Amazon S3 下载版本
1.0.0
:下载
ebsnvme-id
工具。
-
-
-
如果安装程序没有重新引导实例,请重新引导该实例。
使用分发服务器安装或升级 AWS NVMe 驱动程序
您可以使用分发服务器(AWS Systems Manager 的一项功能)一次性安装 NVMe 驱动程序包,也可以使用计划更新来安装。
-
有关如何使用分发服务器安装 NVMe 驱动程序包的说明,请参阅《Amazon EC2 Systems Manager 用户指南》中的安装或更新软件包。
-
在名称中,选择 AWSNVMe。
-
在安装类型中,选择卸载并重新安装。
-
(可选)通过为
AdditionalArguments
指定值来自定义安装。-
从 AWS NVMe
1.5.0
开始,该驱动程序支持 Windows Server 2016 及更高版本的 SCSI 永久预留。默认情况下,安装期间不启用此功能。要启用此功能,请为AdditionalArguments
指定{"SSM_EnableSCSIPersistentReservations": $true}
。如果您不想启用此功能,请为AdditionalArguments
指定{"SSM_EnableSCSIPersistentReservations": $false}
。 -
从 AWS NVMe
1.5.0
开始,install.ps1
脚本将始终安装ebsnvme-id
工具。(可选)对于版本
1.4.0
、1.4.1
和1.4.2
,install.ps1
脚本允许您指定 ebsnvme-id 工具是否应与驱动程序一起安装。-
要安装 ebsnvme-id 工具,请为
AdditionalArguments
指定{"SSM_InstallEBSNVMeIdTool": "Yes"}
。 -
如果不希望安装此工具,请为
AdditionalArguments
指定{"SSM_InstallEBSNVMeIdTool": "No"}
。如果您未指定
AdditionalArguments
为SSM_InstallEBSNVMeIdTool
,且C:\ProgramData\Amazon\Tools
中已存在该工具,则软件包将默认升级该工具。如果该工具不存在,则软件包将默认不升级该工具。必须使用有效的 JSON 语法来格式化其它参数。有关如何为aws configure
软件包传递其它参数的示例,请参阅 Amazon EC2 Systems Manager 文档。如果您不想将该工具作为软件包的一部分进行安装,而想稍后再安装,则可以在驱动程序包中找到该工具的最新版本。或者,您可以从 Amazon S3 下载版本
1.0.0
:下载
ebsnvme-id
工具。
-
-
-
如果安装程序没有重新引导实例,请重新引导该实例。
配置 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.0 |
修复了安装脚本,以便在 ebsnvme-id 工具不存在时为其创建文件夹。 |
2023 年 11 月 17 日 |
|
1.5.0 |
为运行 Windows Server 2016 及更高版本的实例增加对小型计算机系统接口(SCSI)永久保留的支持。ebsnvme-id 工具( |
2023 年 8 月 31 日 |
|
1.4.2 |
修复了 AWS NVMe 驱动程序 不支持 D3 实例上实例存储卷的错误。 |
2023 年 3 月 16 日 |
|
1.4.1 |
报告支持此可选 NVMe 功能的 EBS 卷的命名空间首选写入粒度(NPGW)。有关更多信息,请参阅 NVMe 基本规范版本 1.4 |
2022 年 5 月 20 日 |
|
1.4.0 |
|
2021 年 11 月 23 日 |
|
1.3.2 |
修复了与修改主动处理 IO 的 EBS 卷有关的问题,此问题可能导致数据损坏。不修改在线 EBS 卷(例如,调整大小或更改类型)的客户不会受到影响。 |
2019 年 9 月 10 日 |
|
1.3.1 |
可靠性改进。 |
2019 年 5 月 21 日 |
|
1.3.0 |
设备优化改进。 |
2018 年 8 月 31 日 |
|
1.2.0 |
对所有受支持的实例(包括裸机实例)上的 AWS NVMe 设备的性能和可靠性改进。 |
2018 年 6 月 13 日 |
|
1.0.0 |
运行 Windows Server 的受支持实例类型的 AWS NVMe 驱动程序。 |
2018 年 2 月 12 日 |
订阅 通知
Amazon SNS 可在 EC2 Windows 驱动程序的新版本发布时向您发送通知。使用以下过程订阅这些通知。
从控制台订阅 EC2 通知
-
通过以下网址打开 Amazon SNS 控制台:https://console.aws.amazon.com/sns/v3/home
。 -
如果需要,可在导航栏中将区域更改为美国东部(弗吉尼亚北部)。您必须选择此区域,因为您订阅的 SNS 通知是在此区域中创建的。
-
在导航窗格中,选择 Subscriptions。
-
选择 Create subscription。
-
在 Create subscription 对话框中,执行以下操作:
-
对于 TopicARN,复制以下 Amazon Resource Name (ARN):
arn:aws:sns:us-east-1:801119661308:ec2-windows-drivers
-
对于 Protocol,选择
Email
。 -
对于 Endpoint,键入可用于接收通知的电子邮件地址。
-
选择 Create subscription。
-
-
您将收到一封确认电子邮件。打开电子邮件,然后按照说明操作以完成订阅。
每当发布新的 EC2 Windows 驱动程序时,我们都会向订户发送通知。如果您不希望再收到这些通知,请通过以下步骤取消订阅。
从 Amazon EC2 Windows 驱动程序通知中取消订阅
-
通过以下网址打开 Amazon SNS 控制台:https://console.aws.amazon.com/sns/v3/home
。 -
在导航窗格中,选择 Subscriptions。
-
选中订阅的复选框,然后依次选择 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
--protocolYourUserName@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'
-Protocolus-east-1
-Endpoint'YourUserName@YourDomainName.ext'