I/O Request Routing by LBA Mapping to Avoid Node Forwarding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The efficiency of processing I/O requests in storage systems is reduced due to the decoupling of third-party multipathing software from the data processing policies set by hardware vendors, leading to unnecessary forwarding of requests between storage nodes.
Innovation Solution
A network forwarding device modifies the destination address of I/O requests based on a preset correspondence between logical block addresses and storage nodes, ensuring direct delivery to the appropriate node for processing, thereby avoiding intra-system forwarding.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If third-party multipathing software randomly sends I/O requests to storage nodes via network forwarding devices, then load balancing is achieved, but I/O request processing efficiency is reduced due to unnecessary forwarding between storage nodes
Solution Approach 1:
The network forwarding device acts as an intermediary between the client and storage nodes. It receives I/O requests, determines the target storage node based on the logical block address mapping, and forwards requests directly to the correct node without requiring random distribution and subsequent re-forwarding. This intermediary approach resolves the contradiction by eliminating unnecessary forwarding while maintaining load balancing through intelligent request routing.
Solution Approach 2:
The system performs preliminary action by establishing a mapping relationship between logical block addresses and storage node addresses before I/O requests arrive. The network forwarding device uses this pre-established mapping to directly route requests to the correct storage node, avoiding the need for random distribution and subsequent correction forwarding. This preliminary configuration enables efficient direct routing while maintaining load balancing.
2Reliability
If storage nodes forward I/O requests between themselves based on preset data processing policies, then data processing correctness is ensured, but processing efficiency decreases due to CPU interruption and additional forwarding overhead
Solution Approach 1:
The patent extracts the request routing function from the storage node processors and places it in the network forwarding device. By removing this function from the storage node CPU, the system avoids CPU interruption and the associated performance penalty. The network forwarding device handles the routing decision externally, allowing storage node CPUs to focus solely on data processing without efficiency losses.
Solution Approach 2:
The system replaces the mechanical forwarding mechanism (where storage nodes physically forward requests to each other through CPU intervention) with a network-based routing mechanism. The network forwarding device uses network protocols and address mapping to route requests directly to the correct storage node, eliminating the need for mechanical CPU-based forwarding and its associated overhead.
3Productivity
If network forwarding devices modify destination addresses in I/O requests, then direct routing to correct storage nodes is achieved, but request processing complexity increases
Solution Approach 1:
The network forwarding device performs multiple functions: it receives I/O requests from clients, determines target storage nodes using logical block address mapping, modifies destination addresses for direct routing, and forwards requests to the correct nodes. By consolidating these multiple functions into a single device, the system achieves efficient direct routing without proportionally increasing overall system complexity. The multi-functionality of the forwarding device handles the complexity internally while presenting a simple interface to both clients and storage nodes.
Data Source
AI summary
An input/output (I/O) request processing method includes: receiving a target I/O request, where the target I/O request carries a destination address and a target logical block address, and the destination address is a node address of a first storage node; determining, based on a preset correspondence between a logical block address and a storage node, a second storage node corresponding to the target logical block address; if the second storage node is inconsistent with the first storage node, modifying the destination address in the target I/O request to a node address of the second storage node, to obtain a target I/O request having a modified destination address; and sending the target I/O request having the modified destination address.


