The NVM Express® (NVMe®) interface allows host software to communicate with a non-volatile memory subsystem. It defines the protocol and boosts the performance of PCIe NVMe SSDs.
In June 2021, NVMe 2.0 was released, standardizing some extra features and improvements, especially for data centers. But the most significant change is the “refactoring”, in which NVM Express restructured the original NVMe1.4, NVMe-MI, and NVMe-oF to make the newest NVMe specification more scalable and extensible.
NVMe 2.0 refactoring
The scale of the latest NVMe refactoring is why this release is numbered 2.0 instead of 1.5. The refactoring included in NVMe 2.0 enables faster and simpler development of NVMe solutions to support the increasingly diverse NVMe device environment.
The previous version included the NVMe 1.4 base spec, NVMe-MI, and NVMe-Of specs. However, the latest NVMe 2.0 library of specifications comprises four groups of specs with a total of eight documents:
1. NVMe base specification
• NVMe Base specification
2. Separate specifications per command set
• NVM Command Set specification
• Zoned Namespace Command Set specification
• Key-Value Command Set specification
3. Modular transport mapping layer
• PCIe Transport specification
• RDMA Transport specification
• TCP Transport specification
4. NVMe Management Interface
• NVMe-MI
The refactoring in NVMe 2.0 includes integrating the NVMe and NVMe over Fabrics (NVMe-oF) specifications and creating separate specifications per command set and per transport mapping layers. For example, PCIe has been broken out into one transport specification.
Key features in NVMe 2.0
Besides refactoring and releasing sequestered technical proposals from previous specifications, the NVMe 2.0 family of specifications includes four critical features.
Zoned Namespaces (ZNS)
This feature provides the interface that allows NVMe SSD and host to collaborate on data placement. It can align the data to the physical media of the SSD, improving overall performance and increasing the capacity that can be exposed to the host. More than that, write amplification is significantly improved with ZNS. In other words, the use of ZNS can extend the lifespan of NVMe SSDs.
The Zoned Namespace Command Set specification defines how ZNS SSDs can be operated. Three important ZNS SSD’s operational characteristics are:
1. Zoned Namespace is divided into a set of equally sized zones, which are contiguous non-overlapping ranges of logical block addresses.
2. Writes within a zone must be sequential and start from the position of “Write Pointer”.
3. Each zone must be erased before it can be rewritten.
Key-value command set
The burst of unstructured data created after the late 2000s boosted the development of the non-relational database. A key-value database is a type of non-relational database that uses a simple key-value method to store data. Both keys and values can be anything. This type of database is highly distributed and allows horizontal scaling at scales that other types of databases cannot achieve. However, organizing data into Log-structured merge-tree (LSMT) may be required in a key-value database. This operation involves much more write cycles in addition to the original data writes and results in a shorter lifetime of an SSD.
NVMe-KV was developed to solve this problem. It allows access to the data on an NVMe SSD namespace using a key rather than a logical block address. The NVMe-KV Command Set provides the key to store a corresponding value on non-volatile media, then retrieves that value from the media by specifying the corresponding key. By following the NVMe-KV Command Set and Key-Value Storage API Specification defined by SNIA, the KV SSD allows users to access key-value data without the costly and time-consuming overhead of additional translation tables between keys and logical blocks [4].
NVMe Endurance Group Management
NVMe Endurance Group Management allows media to be configured into Endurance Groups and NVM sets. This enables granularity of access to the SSD and improved control.
Endurance Group and NVM sets were first introduced in NVMe 1.4, but customers had limited capability to configure them. The configuration would either need to be hard-coded in the drive’s firmware or handled with vendor-specific commands. NVMe 2.0 provides a mechanism for users to allocate the Endurance Group and NVM sets. With more configurable parameters, the NVM subsystem can have more flexibility to isolate the I/O performance effects and wear-leveling operation of different users on shared drives or arrays.
This diagram shows the NVMe Storage Entity Hierarchy:
1. NVM subsystem contains domains
2. Domains contain endurance groups
3. Endurance Groups contain NVM Sets
4. NVM sets contain Namespaces
5. Namespaces contain an array of logical blocks
HDD (rotational media) now supported with NVMe 2.0
Although the SATA specification has not been updated for 12 years, HDDs still cannot approach the theoretical bandwidth of SATA interface (600MB/s). So we don’t expect the Rotational Media support of NVMe 2.0 will bring immediate benefit to the HDDs in terms of performance. The key reason NVMe supports Rotational Media is to improve overall system composability. A highly composable system provides components that can be selected and assembled in various combinations to satisfy specific user requirements. This feature is something that will benefit the data center and enterprise environments.
NVMe 2.0 is a significant improvement over 1.4
Looking at the new features in NVMe 2.0, it’s clear that NVMe is now focusing on the demand from enterprises and data centers. The result is not a surprise at all. Just as Jeff Janukowicz, Research Vice President IDC, said: “NVMe technology is the leading interface for SSDs, with overall worldwide enterprise SSD capacity expected to grow at a 43% compound annual growth rate into 2024. NVMe architecture is designed for future SSD development and form factors, as we enter a new era in hyper-scale and enterprise computing that drives digital transformation.”
Resources used in this article:
1. Figure 1,2,6: NVM Express
2. Figure 3: Zone Storage
3. Figure 4: Northeastern University College of Engineering
4 Figure. 5: NVM Express