Non-Volatile Memory express (NVMe)

The Non-Volatile Memory express (NVMe) transport protocol provides enhanced performance on high-demand IBM FlashSystem® drives.

NVMe is a logical device interface specification for accessing non-volatile storage media. Host hardware and software use NVMe to fully leverage the levels of parallelism possible in modern solid-state drives (SSDs).

Compared to the Small Computer System Interface (SCSI) protocol, NVMe improves I/O and brings performance improvements such as multiple, long command queues, and reduced latency. For example, while SCSI has one queue for commands, NVMe is designed to have up to 64 thousand queues. In turn, each of those queues can have up to 64 thousand commands that are processed simultaneously. NVMe also streamlines the list of commands to only the basic commands that Flash technologies need.

Every physical Fibre Channel port supports four virtual ports: one for SCSI host connectivity, one for FC-NVMe host connectivity, one for SCSI host failover, and one for FC-NVMe host failover. Every NVMe virtual port supports the functions of NVMe discovery controllers and NVMe I/O controllers. Hosts create associations (NVMe logins) to the discovery controllers to discover volumes or to I/O controllers to complete I/O operations on NVMe volumes. Up to 128 discovery associations are allowed per node, and up to 128 I/O associations are allowed per node. An additional 128 discovery association and 128 I/O associations are allowed per node during N_Port ID virtualization (NPIV) failover.