Vlog-expan-image

NVMe Primer

3 Oct 2018|2 min read|Sameer Paithankar

What is NVMe?

NVMe (Non-Volatile Memory Express) is an industry standard for non-volatile memory-based enterprise-level storage solutions. NVMe is designed to remove the bottlenecks experienced by legacy hard drive infrastructure.

NVMe is an interface designed to enable faster data transfer between enterprise-level systems and solid-state drives (SSDs). NVMe defines a standardized register set and command set for better performance. A simple command set takes around 13 commands to get an NVMe device up and running in comparison to SCSI or ACI which take around 400 commands.

How NVMe works

NVMe works based on paired submission and completion queue mechanisms. Host software places commands into the submission queue. The NVMe controller places command completions into an associated completion queue. Multiple submission queues may report completions on a single completion queue, provided the controller supports arbitration with different priorities. Message-Signaled Interrupts Extended (MSI-X) and interrupt steering are supported as well.

High-end SSDs have been made using the PCI Express bus before NVMe, but using non-standard specification interfaces. By standardizing the SSD interface, operating systems only need one driver to work with all SSDs adhering to the specification.

Intel SSD 750 series, an SSD that uses NVM Express

NVMe advantages

  1. NVMe supports deep queue depth of 64k commands per queue and up to 64k I/O queues.
  2. NVMe provides low latency, low CPU utilization, and high performance.
  3. NVMe requires less than half the number of CPU instructions compared to the SCSI command set.
  4. Support for enterprise capabilities like end-to-end data protection, enhanced error reporting, and virtualization.

OS support

  • Linux: RHEL 6.5, 6.6, 6.7, 7.0, 7.1; SUSE 11 SP3, 12; Ubuntu 13, 14
  • Windows: Windows 7, 8, 8.1, 10; Windows Server 2008 R2, 2012, 2012 R2
  • UNIX: FreeBSD, Solaris 11.2 and higher
  • VMware: ESXi 5.5, 6.0

NVMe Use cases

  1. Simultaneous read and write performances
  2. Performance measurement with database applications workload
  3. System-level validation of NVMe controller
  4. Testing for NVMe over Fabrics, including RDMA and Fibre Channel solutions
  5. WHQL testing for NVMe driver
Profile

Sameer Paithankar

Share:
Background Image

Want to create a connected, intelligent, & resilient manufacturing ecosystem?