Host Path Masking for Scalable Software-Defined Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software-defined storage systems face challenges in path selection using advanced protocols like NVMe/oF or NVMe/TCP, leading to non-optimal paths and performance issues such as excessive latency and reduced throughput, particularly in virtual machine environments with strict path limits, limiting scalability.
Innovation Solution
Implementing path masking between software stack layers of host devices to facilitate path selection using address range distribution information, allowing for higher numbers of paths to logical storage volumes, thereby optimizing path selection and reducing network hops.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If path masking is implemented between software stack layers, then scalability to larger numbers of storage nodes is achieved, but device complexity increases
Solution Approach 1:
The software stack is segmented into distinct layers: the upper layer (application/VM) that requires limited paths for simplicity, and the lower layer (storage access layer) that manages the full complement of paths to storage nodes. This segmentation allows each layer to operate with appropriate complexity - the upper layer maintains simplicity while the lower layer handles path masking and selection, enabling scalability without overwhelming the application layer.
Solution Approach 2:
The lower software stack layer acts as an intermediary between the application and the storage network. It masks the true number of available paths from the upper layer, presenting a simplified view while actually managing communication through multiple paths. This intermediary layer enables the system to scale to more storage nodes without requiring the upper layer to become more complex.
2Productivity
If the number of paths to logical storage volumes is increased, then throughput is improved, but path selection complexity increases
Solution Approach 1:
The lower software stack layer autonomously performs path selection based on address range distribution information, without requiring complex path selection logic in the upper layer. The system self-manages the mapping between logical storage addresses and physical paths, enabling high throughput through multiple paths while keeping the upper layer simple. The lower layer automatically determines optimal paths based on where data is physically located.
3Productivity
If advanced storage access protocols like NVMe/oF or NVMe/TCP are used, then performance is improved, but compatibility with existing software-defined storage systems is reduced
Solution Approach 1:
The lower software stack layer is designed to support multiple storage access protocols including NVMe/oF, NVMe/TCP, and traditional protocols. It provides a universal interface that can handle different protocol types while maintaining the same path masking functionality. This allows the system to leverage high-performance protocols when available while remaining compatible with existing software-defined storage systems that use traditional protocols.
Data Source
AI summary
An apparatus in an illustrative embodiment comprises at least one processing device configured to establish a first number of paths to a logical storage volume, stored across multiple storage nodes of a distributed storage system, in a first layer of a software stack of the at least one processing device, and to present a second number of paths to the logical storage volume from the first layer of the software stack to at least one overlying layer of the software stack, the second number of paths being less than the first number of paths. The at least one processing device is further configured to receive input-output operations from the at least one overlying layer of the software stack for delivery to the storage nodes, and to select in the first layer a plurality of paths within the first number of paths to deliver the input-output operations to the storage nodes.


