Discovery Controller NVMe-oF Namespace Resolution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Booting a host from an NVMe-oF IP fabric is a convoluted process due to server BIOS optimization for local storage rather than remote networked storage, requiring hosts to enumerate and test multiple namespaces, which is time-consuming and does not scale well on large fabrics.
Innovation Solution
A discovery controller maintains a listing of namespace identifiers and their associated subsystem ports, allowing hosts to efficiently resolve global namespace identifiers to local namespace identifiers and access the correct namespace using a simplified process involving a 'Retrieve Namespace Addressing' command, reducing the number of operations needed to locate the boot namespace.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If hosts enumerate and test multiple namespaces to locate boot namespace, then boot namespace can be found, but the process consumes significant time and does not scale well on large fabrics
Solution Approach 1:
The discovery controller performs preliminary actions by maintaining an updated listing of namespace identifiers and their associated subsystem ports before the host needs to boot. This pre-computed mapping eliminates the need for hosts to enumerate and test namespaces during boot, significantly reducing boot time while ensuring accurate namespace location.
Solution Approach 2:
The discovery controller acts as an intermediary between hosts and storage subsystems. It receives namespace identifier queries from hosts, resolves them using its maintained listing, and returns the corresponding subsystem port information. This intermediary service abstracts the complex namespace resolution process from hosts, providing fast and accurate results without requiring hosts to perform time-consuming enumeration.
2Reliability
If hosts create inventory of all namespaces and test each one, then boot namespace can be identified, but the process is convoluted and complex
Solution Approach 1:
The complex namespace resolution logic is extracted from hosts and relocated to the discovery controller. The host simply queries the discovery controller with a namespace identifier, and the discovery controller handles the complex task of resolving the identifier to the correct subsystem port using its maintained listing, returning the result to the host.
Solution Approach 2:
The discovery controller serves as an intermediary that simplifies the boot process. Instead of hosts performing complex enumeration and testing, they delegate the resolution task to the discovery controller, which uses its pre-maintained listing to provide direct answers, thereby simplifying the overall system operation.
3Productivity
If server BIOS is optimized for local storage, then local storage performance is improved, but remote networked storage access becomes inefficient
Solution Approach 1:
The discovery controller acts as an intermediary that bridges the gap between BIOS-optimized local storage access and remote networked storage access. It provides a simplified interface for hosts to access remote namespaces, making remote storage as easy to operate as local storage by handling the complex resolution process automatically.
Solution Approach 2:
The system separates the concerns of namespace resolution and storage access. The discovery controller handles the complex namespace resolution function, while hosts focus on storage access operations. This segmentation allows BIOS to remain optimized for local storage while providing efficient remote storage access through the discovery controller service.
Data Source
AI summary
Currently, there is no scalable methodologies defined to locate a namespace on an NVMe-oF fabric. Therefore, it is necessary to configure a host with the NVMe™ Qualified Name (NQN) and transport information of the storage subsystem where the boot namespace is located or discover and enumerate all namespaces available to the host on an NVMe-oF fabric. With the current protocols, a host may need to perform many operations to locate the proper namespace and boot from the NVMe-oF fabric, making booting in a SAN environment an extremely slow operation and computationally expensive process. Embodiments herein support discovery, via a discovery controller, to provide a namespace resolution service able to facilitate a host to efficiently resolve a given namespace identifier to the corresponding subsystem port(s) through which that namespace is accessible.


