Wednesday, 18 October 2017

vSphere 6.5 and vNVMe controller

NVMe:

NVM Express (NVMe) or Non-Volatile Memory Host Controller Interface (NVMHCI) is a logical device interface specification for accessing non-volatile storage media attached via a PCI Express (PCIe) bus in real and virtual hardware.

The acronym NVM stands for non-volatile memory, commonly flash memory that comes in the form of solid-state drives (SSDs). NVM Express, as a logical device interface, has been designed from the ground up to capitalise on the low latency and internal parallelism of flash-based storage devices, mirroring the parallelism of contemporary CPUs, platforms and applications.

NVM Express allows host hardware and software to fully exploit the possible parallelism in modern SSDs. As a result, NVM Express reduces I/O overhead and brings various performance improvements in comparison to previous logical-device interfaces, including multiple, long command queues, and reduced latency. 

vSphere and NVMe:

NVM Express (NVMe) controller is available with ESXi 6.5 and Hardware Version 13. With Hardware Version 13, you can use NVMe, SATA, SCSI, and IDE controllers in a virtual machine.



Virtual NVMe (vNVMe):


Virtual NVMe Device has lower IO overhead and scalable IO for all-flash SAN/vSAN storages. Hardware NVMe SSDs has significant advantage over old SATA/SAS based Flash devices.
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. 

Each virtual machine can support 4 NVMe controllers and up to 15 devices per controller. 
Driver Architecture:




  • Native Model: Register/unregister driver and bring up device
  • VMKLinux Model: Deprecated
  • OS Libs: Provide OS related resource, such as heap, lock, interrupt.
  • Mgmt: Management interface to pass through admin command
  • SCSI Emulation Layer: The storage stack of ESXi is SCSI based, responsible for translating SCSI to NVMe command
  • NVMe Core: NVMe related stuff, such as queue construction, command issue, register read/write


Supported guest operating systems:

Not all operating systems are supported with vNVMe. Make sure that your OS is supported and also verify that the guest OS has a driver installed to use the NVMe controller.

  • 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

No comments:

Post a Comment

Popular Posts This Week