Amazon NVMe drivers for Windows instances - Amazon Elastic Compute Cloud
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

Amazon NVMe drivers for Windows instances

Amazon EBS volumes and instance store volumes are exposed as NVMe block devices on instances built on the Amazon Nitro System. Windows Server 2012 R2 and later include an NVMe driver, StorNVMe, that is provided by Microsoft. However, to achieve the full performance and features provided by Amazon EBS you must have the Amazon NVMe driver installed when using an NVMe block device. The latest Amazon Windows AMIs for Windows Server 2008 R2 and later contain the required Amazon NVMe driver.

For more information about EBS and NVMe, see Amazon EBS and NVMe in the Amazon EBS User Guide. For more information about SSD instance store and NVMe, see SSD instance store volumes.

Install or upgrade Amazon NVMe drivers using PowerShell

If you are not using the latest Amazon Windows AMIs provided by Amazon, use the following procedure to install the current Amazon NVMe driver. You should perform this update at a time when it is convenient to reboot your instance. Either the install script will reboot your instance or you must reboot it as the final step.

Prerequisites

PowerShell 3.0 or later

To download and install the latest Amazon NVMe driver
  1. We recommend that you create an AMI as a backup as follows, in case you need to roll back your changes.

    1. When you stop an instance, the data on any instance store volumes is erased. Before you stop an instance, verify that you've copied any data that you need from your instance store volumes to persistent storage, such as Amazon EBS or Amazon S3.

    2. In the navigation pane, choose Instances.

    3. Select the instance that requires the driver upgrade, and choose Instance state, Stop instance.

    4. After the instance is stopped, select the instance, choose Actions, then Image and templates, and then choose Create image.

    5. Choose Instance state, Start instance.

  2. Connect to your instance and log in as the local administrator.

  3. Download and extract the drivers to your instance using one of the following options:

    • Using a browser:

      1. Download the latest driver package to the instance.

      2. Extract the zip archive.

    • Using PowerShell:

      Invoke-WebRequest https://s3.cn-north-1.amazonaws.com.cn/ec2-windows-drivers-downloads-cn/NVMe/Latest/AWSNVMe.zip -outfile $env:USERPROFILE\nvme_driver.zip Expand-Archive $env:userprofile\nvme_driver.zip -DestinationPath $env:userprofile\nvme_driver
  4. Install the driver to your instance by running the install.ps1 PowerShell script from the nvme_driver directory (.\install.ps1). If you get an error, make sure you are using PowerShell 3.0 or later.

    1. (Optional) Starting with Amazon NVMe version 1.5.0, Small Computer System Interface (SCSI) persistent reservations are supported for Windows Server 2016 and later. This feature adds support for Windows Server Failover Clustering with shared Amazon EBS storage. By default, this feature isn't enabled during installation.

      You can enable the feature when running the install.ps1 script to install the driver by specifying the EnableSCSIPersistentReservations parameter with a value of $true.

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

      You can disable the feature when running the install.ps1 script to install the driver by specifying the EnableSCSIPersistentReservations parameter with a value of $false.

      PS C:\> .\install.ps1 -EnableSCSIPersistentReservations $false
    2. Starting with Amazon NVMe 1.5.0, the install.ps1 script always installs the ebsnvme-id tool with the driver.

      (Optional) For versions 1.4.0, 1.4.1, and 1.4.2, the install.ps1 script allows you to specify whether the ebsnvme-id tool should be installed with the driver.

      1. To install the ebsnvme-id tool, specify InstallEBSNVMeIdTool ‘Yes’.

      2. If you don't want to install the tool, specify InstallEBSNVMeIdTool ‘No’.

        If you don't specify InstallEBSNVMeIdTool, and the tool is already present at C:\ProgramData\Amazon\Tools, the package will upgrade the tool by default. If the tool is not present, install.ps1 will not upgrade the tool by default.

        If you don't want to install the tool as part of the package, and want to install it later, you can find the latest version or the tool in the driver package. Alternatively, you can download version 1.0.0 from Amazon S3:

        Download the ebsnvme-id tool.

  5. If the installer does not reboot your instance, reboot the instance.

Install or upgrade Amazon NVMe drivers with Distributor

You can use Distributor, a capability of Amazon Systems Manager, to install the NVMe driver package one time or with scheduled updates.

  1. For the instructions for how to install the NVMe driver package using Distributor, see the procedures in Install or update packages in the Amazon EC2 Systems Manager User Guide.

  2. For Name, choose AWSNVMe.

  3. For installation type, select Uninstall and reinstall.

  4. (Optional) Customize the installation by specifying values for AdditionalArguments.

    1. Starting with Amazon NVMe 1.5.0, the driver supports SCSI persistent reservations for Windows Server 2016 and later. By default, this feature isn't enabled during installation. To enable this feature, specify {"SSM_EnableSCSIPersistentReservations": $true} for AdditionalArguments. If you don't want to enable this feature, specify {"SSM_EnableSCSIPersistentReservations": $false} for AdditionalArguments.

    2. Starting with Amazon NVMe 1.5.0, the install.ps1 script will always install the ebsnvme-id tool.

      (Optional) For versions 1.4.0, 1.4.1, and 1.4.2, the install.ps1 script allows you to specify whether the ebsnvme-id tool should be installed with the driver.

      1. To install the ebsnvme-id tool, specify {"SSM_InstallEBSNVMeIdTool": "Yes"} for AdditionalArguments.

      2. If you don't want to install the tool, specify {"SSM_InstallEBSNVMeIdTool": "No"} for AdditionalArguments.

        If SSM_InstallEBSNVMeIdTool is not specified for AdditionalArguments, and the tool is already present at C:\ProgramData\Amazon\Tools, the package will upgrade the tool by default. If the tool is not present, the package will not upgrade the tool by default. Additional arguments must be formatted using valid JSON syntax. For examples of how to pass additional arguments for the aws configure package, see the Amazon EC2 Systems Manager documentation.

        If you don't want to install the tool as part of the package, and want to install it later, you can find the latest version of the tool in the driver package. Alternatively, you can download version 1.0.0 from Amazon S3:

        Download the ebsnvme-id tool.

  5. If the installer does not reboot your instance, reboot the instance.

Configure SCSI persistent reservations

After Amazon NVMe driver version 1.5.0 or later has been installed, you can enable or disable SCSI persistent reservations using the Windows registry for Windows Server 2016 and later. You must reboot the instance for these registry changes to take effect.

You can enable SCSI persistent reservations with the following command which sets the EnableSCSIPersistentReservations to a value of 1.

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

You can disable SCSI persistent reservations with the following command which sets the EnableSCSIPersistentReservations to a value of 0.

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

Amazon NVMe driver version history

The following table shows the corresponding NVMe driver version to download for each Windows Server version on Amazon EC2.

Windows Server version AWSNVMe driver version
Windows Server 2022 latest
Windows Server 2019 latest
Windows Server 2016 latest
Windows Server 2012 R2 latest
Windows Server 2012 latest
Windows Server 2008 R2 1.3.2 and earlier

The following table describes the released versions of the Amazon NVMe driver.

Package version Driver version Details Release date

1.5.1

1.5.0

Fixed the install script to create a folder for the ebsnvme-id tool if it is not present.

17 November 2023

1.5.0

1.5.0

Added support for Small Computer System Interface (SCSI) persistent reservations for instances running Windows Server 2016 and later. The ebsnvme-id tool (ebsnvme-id.exe) is now installed by default.

31 August 2023

1.4.2

1.4.2

Fixed a bug where the Amazon NVMe driver did not support instance store volumes on D3 instances.

16 March 2023

1.4.1

1.4.1

Reports Namespace Preferred Write Granularity (NPGW) for EBS volumes that support this optional NVMe feature. For more information, see section 8.25, "Improving Performance through I/O Size and Alignment Adherence," in the NVMe Base Specification, version 1.4.

20 May 2022

1.4.0

1.4.0

  • Added support for IOCTLs that allow applications to interact with NVMe devices. This support allows applications to get IdentifyController, IdentifyNamespace, and NameSpace list from the NVMe device. For more information, see Protocol-specific queries in the Microsoft documentation.

  • AWSNVMe 1.4.0 installation on Windows Server 2008 R2 will fail. AWSNVMe version 1.3.2 and earlier are supported on Windows Server 2008 R2.

  • The 1.4.0 driver version and the latest ebsnvme-id tool (ebsnvme-id.exe) are combined in a single package. This combination allows you to install both driver and tool from a single package. For more details, see Install or upgrade Amazon NVMe drivers using PowerShell.

  • Bug fixes and reliability improvements.

23 November 2021

1.3.2

1.3.2

Fixed issue with modifying EBS volumes actively processing IO, which may result in data corruption. Customers who do not modify online EBS volumes (for example, resizing or changing type) are not impacted.

10 September 2019

1.3.1

1.3.1

Reliability Improvements.

21 May 2019

1.3.0

1.3.0

Device optimization improvements.

31 August 2018

1.2.0

1.2.0

Performance and reliability improvements for Amazon NVMe devices on all supported instances, including bare metal instances.

13 June 2018

1.0.0

1.0.0

Amazon NVMe driver for supported instance types running Windows Server.

12 February 2018

Subscribe to notifications

Amazon SNS can notify you when new versions of EC2 Windows Drivers are released. Use the following procedure to subscribe to these notifications.

To subscribe to EC2 notifications from the console
  1. Open the Amazon SNS console at https://console.amazonaws.cn/sns/v3/home.

  2. In the navigation bar, change the Region to US East (N. Virginia), if necessary. You must select this Region because the SNS notifications that you are subscribing to are in this Region.

  3. In the navigation pane, choose Subscriptions.

  4. Choose Create subscription.

  5. In the Create subscription dialog box, do the following:

    1. For TopicARN, copy the following Amazon Resource Name (ARN):

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

    2. For Protocol, choose Email.

    3. For Endpoint, type an email address that you can use to receive the notifications.

    4. Choose Create subscription.

  6. You'll receive a confirmation email. Open the email and follow the directions to complete your subscription.

Whenever new EC2 Windows drivers are released, we send notifications to subscribers. If you no longer want to receive these notifications, use the following procedure to unsubscribe.

To unsubscribe from Amazon EC2 Windows driver notification
  1. Open the Amazon SNS console at https://console.amazonaws.cn/sns/v3/home.

  2. In the navigation pane, choose Subscriptions.

  3. Select the check box for the subscription and then choose Actions, Delete subscriptions. When prompted for confirmation, choose Delete.

To subscribe to EC2 notifications using the Amazon CLI

To subscribe to EC2 notifications with the Amazon CLI, use the following command.

aws sns subscribe --topic-arn arn:aws:sns:us-east-1:801119661308:ec2-windows-drivers --protocol email --notification-endpoint YourUserName@YourDomainName.ext
To subscribe to EC2 notifications using Amazon Tools for Windows PowerShell

To subscribe to EC2 notifications with Amazon Tools for Windows PowerShell, use the following command.

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