Shares

With VMware vSphere 6.5 there was also a new introduction of VMware Virtual NVMe Device. Non Volatile Memory Express stands for NVMe. In this post, we will discuss what is it and what is good for. Check out our VMware vSphere 6.5 detailed page with How-to, news, videos, and tutorials.

Virtual NVMe Device is new virtual storage host bus adapter (HBA) which has been designed lower IO overhead and scalable IO for all flash SAN/vSAN storages.

As you know in the real life, with hardware NVMe SSDs taking significant advantage over old SATA/SAS based Flash devices, the mass adoption and the storage revolution is NOW.

The main benefit of NVMe interface over SCSI is that it reduces the amount of overhead, and so consumes fewer CPU cycles. Also, there is a reduction of IO latency for your VMs. Which Guest OS are supported?

Which Guest OS are supported?

Not all operating systems are supported. Before you start adding (or replacing) the controllers on your VMs, make sure that your OS is suported. You'll also need to make sure that the Guest OS has a driver installed to use the NVMe controller.

Not ALL operating systems are supported.

According to this VMware KB article, there are the following Guest OS supported.

Windows 7 and 2008 R2 (hot fix required: https://support.microsoft.com/en-us/kb/2990941)

Windows 8.1, 2012 R2, 10, 2016

RHEL, CentOS, NeoKylin 6.5 and later

Oracle Linux 6.5 and later

Ubuntu 13.10 and later

SLE 11 SP4 and later

Solaris 11.3 and later

FreeBSD 10.1 and later

Mac OS X 10.10.3 and later

Debian 8.0 and later

What is Supported Configuration of Virtual NVMe?

Supports NVMe Speciﬁcation v1.0e mandatory admin and I/O commands

Maximum 15 namespaces per controller – (each namespace is mapped to a virtual disk enumerated as nvme0:0, ….., nvme0:15)

Maximum 4 controllers per VM – (Enumerated as nvme0, nvme1,…… , nvme3)

Maximum 16 queues (1 admin + 15 I/O queues) and 16 interrupts.

Maximum 256 queue depth (4K in-ﬂight commands per controller)

Interoperability with all existing vSphere features, except SMP-FT.

VMware vSphere Compatibility?

Also, don't forget that you'll need a virtual machine compatibility is ESXi 6.5 or later. The Add New device wizard when adding a new virtual hardware to a VM which has Virtual Hardware 13 configured (vmx-13).

How to Add VMware Virtual NVMe Device?

Step 1: Right-click the virtual machine in the inventory and select Edit Settings.

Step 2: Click the Virtual Hardware tab, and select NVMe Controller from the New device drop-down menu > Click Add > The controller appears in the Virtual Hardware devices list > Ok to validate. This is part one.

Part two is actually when you attach a new disk (or old one) to the controller. You can see it on the screenshot bellow…

Wrap Up:

This is certainly a change to a management of VMs for the future. When running on All-Flash hardware, having the NVMe adapter configure will certainly increase the IOPs. Some tests show up to 5 times boost.

The benefit of increased performance on VMs configured with NVMe might be a good way to increase the performance of your application(s) as we all know it's all about application performance. We did not play any tests in the lab but this topic seems to be fairly interesting.

Non Volatile Memory Express (NVMe) is a specification for connecting a flash directly to a PCIe bus on the server/workstation. And as such you're basically circumventing latencies generated by connecting the flash drive to an old SATA HDD controller.

Concerning the queue depth (queuing up of I/Os waiting to be served by a storage device) which is might lower (see inexistent due to parallel processing) means that storage is not creating any additional source of latency which slows down the VM performance.

Slowly the SATA/SAS formats seem to look old when compared side by side and the emergence (and the performance! ) of PCIe format.

More from ESX Virtualization

Stay tuned through RSS, and social media channels (Twitter, FB, YouTube)

Shares