Enable NVMe FAQs

This article addresses some common questions about enabling NVMe interface on virtual machines created in Azure.

Overview

What is NVMe?

NVMe stands for nonvolatile memory express, a communication protocol that facilitates faster and more efficient data transfer between servers and storage systems. With NVMe, data can be transferred at the highest throughput and with the fastest response times.

What are the benefits of using NVMe interface on a VM family?

By enabling NVMe, the VM offers higher IOPS (Input/Output Operations Per Second) and throughput (MB/s), which can significantly improve the performance of remote disk storage with Azure managed disks. Higher performance is especially beneficial for IO-intensive workloads that require fast and reliable data transfer to the Azure managed disks.

What types of storage interface does Azure support in the VM families?

In Azure, the older generations (v2, v3, v4) support Small Computer System Interface (SCSI) and current generation (v5) VM series support both NVMe and SCSI storage interfaces. SCSI is a legacy standard that provides physical connectivity and data transfer between computers and peripheral devices.

Will Azure continue to support SCSI interface VMs?

Yes, Azure continues to support SCSI VMs on the older generation and current generation VM offerings in the GP (General Purpose) category, which includes the v2, v3, v4 and v5 series.

How is the NVMe enabled Ebsv5 different from the L series VM that Azure offers?

The NVMe enabled Ebsv5 series is designed to offer the highest Azure managed disk storage performance. The L series VMs are designed to offer higher IOPS and throughout on the local NVMe disks, which are ephemeral. Refer to the VM sizes documentation for details on the performance offered by the Ebsv5 and L series.

Azure Disk Storage Performance with NVMe on Ebsv5 and Ebdsv5

What performance advantages can be expected when using NVMe on the Ebsv5 and Ebdsv5 VM families in Azure?

The NVMe enabled on the Ebdsv5 and Ebdsv5 sizes offer more than higher IOPS and throughput than the SCSI sizes in the same family at no extra cost. For workloads with high IO demands and requiring improved remote storage performance, we recommend trying the new NVMe sizes. For more information on the benefits of performance, see the VM spec page.

To achieve the maximum IOPS, we recommend using a 4 KiB or 8 KiB block size. For maximum performance throughput, you can choose to use one of the following block sizes: 64 KiB, 128 KiB, 256 KiB, 512 KiB or 1024 KiB. However, it's important to optimize the I/O size based on the specific requirements of your application and to use the recommended block sizes only as a guideline.

What workloads benefit with NVMe on Ebsv5 family?

The Ebsv5 VM families are suitable for various workloads that require high I/O and improved remote storage performance. Some examples of such workloads include:

  • Online transaction processing (OLTP) workloads: These workloads involve frequent, small, and fast database transactions, such as online banking, e-commerce, and point-of-sale systems.
  • Online analytical processing (OLAP) workloads: These workloads involve complex queries and large-scale data processing, such as data mining, business intelligence, and decision support systems.
  • Data warehousing workloads: These workloads involve collecting, storing, and analyzing large volumes of data from multiple sources, such as customer data, sales data, and financial data.
  • Replication and disaster recovery workloads: These workloads involve replicating data between multiple databases or sites for backup and disaster recovery purposes.
  • Database development and testing workloads: These workloads involve creating, modifying, and testing database schemas, queries, and applications.

Enabling NVMe and Compatible VMs and Platforms

What platforms and generations support NVMe VMs?

NVMe VMs are only accessible on the platform with the 3rd Generation Intel® Xeon® Platinum 8370C (Ice Lake) processor. However, support for more platforms and generations is coming soon. Stay informed by following our product launch announcements in Azure updates.

What VM families support NVMe?

  • NVMe interface is supported only the Ebsv5 and Ebdsv5 VM families. Watch out for our product launch announcements in the Azure updates.
  • You can learn from the SKU API response about SKUs as NVMe support is added

How do I enable NVMe on a VM family?

To enable the NVMe for remote disk, ensure that the following five conditions are met:

  • Choose a VM family that supports NVMe. It's important to note that only Ebsv5 and Ebdsv5 VM sizes are equipped with NVMe in the Intel v5 generation VMs. Make sure to select either one of the series, Ebsv5 or Ebdsv5 VM.

  • Select the operating system image that is tagged with NVMe support. Once supported VM family and OS image is selected, you are prompted to select the NVMe disk controller type.

    Screenshot of prompt to select NVMe disk controller type.

  • Opt in to NVMe by selecting NVMe disk controller type in Azure portal or ARM/CLI/PowerShell template. For step-by-step instructions, refer here.

  • Only Gen2 images are supported.

  • Choose one of the Azure regions where NVMe is enabled. By meeting the five conditions, you are able to enable NVMe on the supported VM family in no time. Follow the above conditions while creating and resizing a VM with NVMe to ensure successful launch of feature.

How can I check if a given image is tagged as NVMe?

To check if a given image is tagged as NVMe, use the following command:

az vm image show --urn URN_OF_IMAGE

How do I use a base image that supports NVMe and create a custom image for my remote disk?

Let's say you want to tag an image that supports NVMe, but it wasn't tagged yet. Follow these four steps:

  1. Upload NVMe supported VHD to your storage account. AzCopy is a fast way, but you can also use Azure portal to upload.
    azcopy copy <local path to your vhd> <container in your storage account>
    
  2. Create your image gallery using PowerShell, Azure portal, or CLI.
  3. Create the image definition, make sure to include --feature DiskControllerTypes=SCSI,NVMe. See the following CLI example:
    az sig image-definition create --resource-group <resourceGroupName> --gallery-name <galleryName> --gallery-image-definition <imageName> --publisher <publisher> --offer <offerName> --sku <skuName> --os-type <osType> --os-state <osState> --feature DiskControllerTypes=SCSI,NVMe
    
  4. Create the image version under the NVMe-tagged gallery with the NVMe-supported VHD. See the following CLI example:
    az sig image-version create --resource-group <resourceGroupName> --gallery-name <galleryName> --gallery-image-definition <imageName> --gallery-image-version <version> --target-regions <region1> <region2> --replica-count <replicaCount> --os-vhd-uri <NVMe-supported vhd uri> --os-vhd-storage-account <storageAccount>
    

How can I resize a SCSI Ebsv5 or Ebdsv5 VM (for example, 8 vCPU) created using untagged image to a NVMe-enabled VM of the different size(E112i) without recreating the VM configurations and without tagging the image?

  • The source VM (for example, E8bsv5 in this case), should use a NVMe none tagged OS image that supports NVMe
  • Ensure to set the destination discontrollertype of the VM as NVMe also in E112i VMs. Use the following PowerShell script to set the disk controller type:
    azure-nvme-VM-update.ps1 [-subscription_id] <String> [-resource_group_name] <String> [-vm_name] <String> [[-disk_controller_change_to] <String>] [-vm_size_change_to] <String> [[-start_vm_after_update] <Boolean>] [[-write_logfile] <Boolean>]
    

Missing Required Configurations

What happens if I want to use another VM family other than Ebsv5 or Ebdsv5 series?

If you're considering using a VM family other than the Ebsv5 or Ebdsv5 series, it's important to note that the NVMe interface is only supported on these two families. If you select a nonsupported VM family, you receive an error message that reads:
"The selected VM size can't boot with DiskControllerType. Check that the disk controller type provided is one of the supported disk controller types for the VM size Y Please query SKU API at https://docs.microsoft.com/rest/api/compute/resource-skus/list to determine supported disk controller types for the VM size Resource SKUs - List - REST API (Azure Compute)".
Therefore, to ensure that you use the NVMe interface successfully, choose either the Ebsv5 or Ebdsv5 VM, family.

What happens if I miss opting in the disk controller type?

To launch VMs with an NVMe interface in the Ebsv5 or Ebdsv5 VM families, it's crucial to opt in for the NVMe disk controller type. Failure to do so results in the VMs with their default configuration, SCSI. Since no other VM families currently support the NVMe interface, specifying the NVMe disk controller type is mandatory to launch VMs successfully with the NVMe interface. So, opt in for the NVMe disk controller type to avoid any complications in launching your VMs.

What happens if the OS I use isn't tagged as NVMe support?

To launch VMs with an NVMe interface in the Ebsv5 or Ebdsv5 VM families, it's essential to choose one of the supported OS images tagged as NVMe. If your current OS image is not supported for NVMe, you receive an error message that reads: "The selected image isn't supported for NVMe. See supported VM images."

Screenshot of example of choosing one of the supported OS images on NVMe

When will NVMe support be added to the OS image I currently use?

NVMe support is available in about 33+ OS versions. We continuously improve the OS image coverage and recommend referring to the page for updates on the latest OS image support added. This page provides up-to-date information on which OS images are tagged as NVMe supported and when new OS images are available with NVMe support.

What are the implications of using a Gen 1 image in Azure?

Using a Gen 2 image is a pre-requisite to enable NVMe interface on the Ebsv5 or Ebdsv5 VM series. If you use a Gen 1 VM image, you receive an error message that reads: "The selected image isn't supported for NVMe. See supported VM images."

Screenshot of example of choosing one of the supported OS images on NVMe interface for Gen 2.

What are the consequences of selecting an Azure region where NVMe isn't currently enabled?

NVMe is currently available only in the following 13 Azure regions: US North Southeast Asia, West Europe, Australia East, North Europe, West US 3, UK South, Sweden Central, East US, Central US, West US 2, East US 2, and South central US. If you choose a nonsupported region, E96bsv5 or E112i are disabled in the size selection drop-down. Even though you may see the smaller sizes E2-64bsv5 or E2-64bdsv5, NVMe deployment won't be successful due to missing configurations.

The Azure region I need doesn't support NVMe, when will NVMe be available?

Watch out for our product launch announcements in the Azure updates.

NVMe Supportability

What sizes in the Ebsv5 and Ebdsv5 family support NVMe?

The sizes E2-E112i support NVMe on Ebsv5 and Ebdsv5 families.

What sizes in the Ebsv5 and Ebdsv5 family support SCSI?

All sizes (E2-E96) on the Ebsv5 and Ebsdv5 families support SCSI except E112i.

What OS types and versions are supported?

NVMe support is available in about 30+ OS versions. Refer to the page for updates on the latest OS image support added. This page provides up-to-date information on which OS images are tagged as NVMe supported and when new OS images are available with NVMe support.

Will Gen 1 VMs be supported with NVMe?

No, there are no immediate plans to support NVMe on Gen 1 VMs. If you think your workload benefits NVMe performance, we recommend switching to the Gen 2 VMs. Refer to the steps here to convert Gen 1 VM image to Gen 2 or create a new Gen 2 VM.

Which Azure disk storage options are compatible with NVMe?

NVMe sizes can be combined with Premium SSD v1, Premium SSD v2, and Ultra disks. For additional information on Azure disk offerings, see Azure Managed disks.

I have a SCSI Ebsv5 VM. How do I switch to NVMe of the same VM size?

The steps to switch from SCSI to NVMe are the same as explained in FAQ.

How can I switch back to SCSI interface from NVMe VM?

To switch back to SCSI from NVMe, follow the same steps as explained in FAQ.

Does Azure support live resizing on disks with NVMe VM sizes?

Live resizing is currently supported on Premium v1, Standard SSD, and Standard HDD disks. Nevertheless, you can add disks without restarting the VM.

How can I identify NVMe disks on Linux VM?

  • Get nvme-cli package using the command =” sudo apt install nvme-cli”

  • Run NVMe list command =” sudo nvme list “to fetch NVMe disk details: 

    Screenshot of instructions to identify NVMe disks on Linux VM.

    Screenshot of instructions to choose namespace ID in Linux portal.

    Here's how the data shows in response to Azure PowerShell commands

    Screenshot of an example of response to Azure PowerShell command.

How can I identify NVMe disks on windows VM?

Launch PowerShell and use the following command: wmic diskdrive get model,scsilogicalunit

Screenshot of an example of Powershell command example to launch NVMe on Windows.

The ASAP attached disks are presented in the guest with model string “Virtual_Disk NVME Premium” and the SCSI Logical Unit will have value portal visible LUN ID incremented by 1. 
Here's a snapshot of how NVMe disks are seen in NVMe enabled Windows VM:

Diagram that shows example of PowerShell command to identify the NVMe disk on Windows VM.

The following snapshot shows in guest output for data disks attached at LUN 0 and LUN 4 (CRP). The LUN ID is equivalent to NAMESPACE ID.

Diagram that shows the example of how NVMe disks are seen in NVMe enabled Windows VM.

NVMe Pricing

What is the price for NVMe Ebsv5 prices?

The NVMe enabled Ebsv5 and Ebdsv5 VMs are the same price as SCSI VMs. Refer to the pricing pages for Windows and Linux. With NVMe, you get higher performance at no extra cost.

How can I try before purchasing this VM series? Is preview still available?

The preview period for this offer is over, and it is now generally available for purchase. You can request a quota for one of the available Azure regions to try out the new NVMe Ebsv5 or Ebdsv5 sizes.

Known Issues

What happens if I create an E112i VM using an OS image that isn't tagged as NVMe?

An NVMe E112i VM can only be created using an image (PIR & Azure Compute Gallery) that is tagged as NVMe. If an untagged image is used, a SCSI VM is created, and the VM may not perform as intended. There's a solution in development to prevent the creation of an NVMe VM from a nontagged NVMe image. Make sure to follow all instructions listed in FAQ.

How can I resize a SCSI Ebsv5 or Ebdsv5 VM (for example, 48 vCPU) to an NVMe-enabled VM of the different size (E112i) without re-creating the VM configurations?

Let's say you want to resize a E48 vCPU SCSI VM to E112i NVMe, use the following PowerShell script.

  • The source VM (for example, E48bsv5 in this case) should use a NVMe tagged OS image
  • Ensure to set the destination diskcontrollertype of the VM as NVMe also in E112i VMs
azure-nvme-VM-update.ps1 [-subscription_id] <String> [-resource_group_name] <String> [-vm_name] <String> [[-disk_controller_change_to] <String>] [-vm_size_change_to] <String> [[-start_vm_after_update] <Boolean>] [[-write_logfile] <Boolean>]

Can I convert a SCSI Ebv5 or Ebdsv5 VM to NVMe enabled while retaining same VM vCPU size with a NVMe tagged OS image?

Currently, this scenario is only supported in Linux operating systems and isn't supported in Windows operating systems.

Are shared disks in remote disks supported with NVMe VMs?

Shared disk feature is currently supported for all disks Premium SSD, Premium SSD v2, and Ultra.

Reporting Issues

My VMs don't reach the published performance limits. Where do I report this issue?

If you see performance issues, you can submit a support ticket. Provide all relevant information on the ticket, such as the subscription, VM size used, region, logs, and screenshot.

Screenshot of example of guest output for data disks.

How can I get more help if I run into issues while setting up the VMs with the NVMe interface?

If you run into issues while creating or resizing Ebsv5 or Ebdsv5 to NVMe, and need assistance, you can submit a support ticket.

Screenshot of example for reporting issues for feature by submitting support ticket.

Screenshot of support ticket selection details.