NVM Express (NVMe) is a significant step forward in high-performance, low-latency storage I/O and reduction of I/O stack overheads. NVMe over Fabrics extends NVMe storage connectivity such that NVMe-enabled hosts can access NVMe-enabled storage anywhere in the datacenter, ensuring that the performance of solid state storage technologies is fully unlocked.
The new NVMe over Fabrics specification builds on NVM Express version 1.2. It is designed as a layered architecture, enabling NVMe to be transported over different fabric types. NVM Express, Inc. has also published the NVMe over Fabrics reference implementation code for Linux, including a full NVMe host and storage target implementation for the RDMA and Fibre Channel transports. CLI tools and Linux OS integration aids are included. NVMe users can download the new driver stacks, Linux distribution maintainers can pull in the NVMe over Fabrics stack, and developers of both NVMe storage systems and devices can leverage the reference design for their solutions. In addition, the Linux driver is supported and supplemented by the Storage Performance Developer Kit (SPDK) project, which has developed a user-space device implementation to be distributed under the BSD license via Github.
The NVM Express Management Interface 1.0 specification defines an architecture and command set for out-of-band management of an NVM SSD over PCIe (using VDMs) and SMBus/I2C. It allows a management controller to perform tasks such as pre-boot SSD device and capability discovery, health and temperature status polling, and out-of-band firmware updates.
All NVM Express specifications are available at http://www.nvmexpress.org/specifications/.