NVMe Namespace Multi-Array Access via Fabric Mediator
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional data storage systems face challenges in providing access to a nonvolatile memory express (NVMe) namespace across multiple storage arrays, as NVMe-oF does not allow namespaces to be exposed from two different NVM subsystems hosted on different data storage arrays simultaneously, and existing solutions like NVMe Technical Proposal 4034 'Dispersed Namespaces' lack operating system support.
Innovation Solution
The method involves hosting a nonvolatile memory (NVM) subsystem on multiple storage arrays, performing a 'stretch' operation to concurrently host the NVM subsystem on multiple arrays, and updating log page information to indicate concurrent hosting, allowing access to the namespace from any storage array, thereby presenting it as a metro volume.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If a namespace is confined to one NVM subsystem as per NVMe foundational property, then the NVM subsystem can be hosted on a single storage array, but the namespace cannot be accessed via multiple storage arrays simultaneously
Solution Approach 1:
The patent segments the NVM subsystem into multiple instances distributed across different storage arrays. Each storage array hosts a portion of the NVM subsystem, allowing the namespace to be accessed via multiple arrays simultaneously while maintaining the fundamental NVMe namespace confinement property within each individual NVM subsystem instance.
Solution Approach 2:
The patent introduces a fabric network as an intermediary between host computers and multiple NVM subsystem instances. This fabric-mediated approach allows hosts to access the namespace through multiple storage arrays without requiring direct host support for dispersed namespaces, as the fabric handles the complexity of multi-path access.
2Adaptability or versatility
If Dispersed Namespaces approach is used to enable multi-array access, then namespace can be exposed from multiple NVM subsystems, but host operating system support is required which is not available
Solution Approach 1:
The patent uses the fabric network as an intermediary layer that abstracts away the complexity of dispersed namespace management from the host operating system. The fabric handles namespace routing and path management, eliminating the need for host OS support for Dispersed Namespaces while still enabling multi-array access.
Solution Approach 2:
The patent creates copies of the NVM subsystem across multiple storage arrays, with each copy maintaining the namespace. This copying approach allows the namespace to be accessible via multiple arrays without requiring the host to manage complex dispersed namespace configurations, as each array presents a complete copy of the namespace independently.
3Adaptability or versatility
If conventional SCSI approach is used with two data storage arrays maintaining copies of a volume, then hosts can view copies as the same logical unit, but this approach does not work well for NVMe-oF
Solution Approach 1:
The patent applies local quality by allowing each storage array to maintain its own NVM subsystem instance with local namespace management, while the fabric network provides the global view of unified namespace access. This preserves NVMe protocol integrity at each local array while enabling multi-array accessibility through the fabric.
Solution Approach 2:
The patent transitions from the conventional SCSI two-dimensional model (single LU identity presented to hosts) to an NVMe-oriented multi-dimensional model where the same namespace can be accessed through multiple independent NVM subsystem instances via the fabric, adding a new dimension of access paths without compromising protocol compatibility.
Data Source
AI summary
A technique of providing access to a namespace via multiple storage arrays involves providing access to the namespace from a nonvolatile memory (NVM) subsystem while the NVM subsystem is hosted on a first storage array. The technique further involves, after providing access to the namespace from the NVM subsystem while the NVM subsystem is hosted on the first storage array, performing a stretch operation to concurrently host the NVM subsystem on the first storage array and a second storage array. The technique further involves, after performing the stretch operation, providing access to the namespace from the NVM subsystem while the NVM subsystem is concurrently hosted on the first storage array and the second storage array. Accordingly, the namespace is now accessibly via either storage array.


