NVMe® Cross Namespace Copy Technology Extends Copy Functionality

Blog

By: David Black, Dell Technologies

Modern infrastructure enabled by NVM Express® (NVMe®) technology requires the capability to efficiently copy data among storage volumes in an SSD or storage system. Applications and host I/O stacks increasingly utilize multiple storage volumes and work across the entire scope, requiring support for efficient data copying.

NVMe Cross Namespace Copy (CNC) functionality copies data across multiple storage volumes (i.e., NVMe namespaces), enabling more flexibility across an entire SSD or storage system without resorting to host-based copy. CNC extends the NVMe Copy command with new Source Descriptor Formats that enable data to be sourced from different namespaces. By retaining and extending the gather functionality of single-namespace copy, CNC enables copying of multiple source regions from different namespaces into a single destination region with a single command. CNC functionality supports the effective and efficient usage of NVMe technology, especially when copying significant amounts of data.

Improvements to Copy

CNC enables applications and hosts to copy data across namespaces more efficiently, as its data transfers occur entirely within the SSD or storage system, avoiding the additional overhead of moving data to and from the host. CNC-enhanced copy commands provide the optional ability to avoid inefficient copies – an error is returned instead of the controller copying data that would be faster for the host to copy via reads and writes.  

CNC also supports and extends Protection Information (PI) functionality that enhances data integrity and system robustness. CNC supports the full complement of PI integrity/robustness checks and adds functionality to insert or strip (remove) PI when copying data between namespaces. That strip and insert functionality is particularly useful in systems where only a subset of the namespaces use PI.

CNC focuses on commonly-used copy functionality – copying between namespaces with different formats (e.g., different logical block sizes) is not supported, with the exception of PI insert and strip. Overlap of the source and destination of a copy within the same namespace is also not supported. Both of these unusual scenarios are left to hosts to handle, thereby simplifying SSD and storage system copy implementations.

Use Cases

NVMe CNC is ideal for large-scale data copying within data centers and for hyperscalers who require significant mobility of large amounts of data. CNC has numerous use cases, particularly within larger storage systems where multiple namespaces are important for effective utilization. Plus, CNC improves efficiency when cloning or creating a template for a virtual machine or a container’s persistent storage. CNC also excels at copying data to separate analytics from production activities.

For More Information

To learn more, view Peter Onufryk’s NVM Express State of the Union presentation during the 2022 Flash Memory Summit (FMS) event covering CNC in addition to multiple other NVMe features.