DPU-Based NVMe Storage Load Balancing Without Host Multipath
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional network storage solutions require multipath software installation in hosts, leading to load unbalancing and inefficient I/O request distribution between controllers, especially when using open-source or third-party software, and developing customized multipath software for various operating systems is cumbersome.
Innovation Solution
A network storage method that utilizes a data processing unit (DPU) connected via PCIe to the host, which performs load balancing and I/O distribution between controllers without requiring multipath software on the host, using NVMe and NVMe-oF protocols for communication, and implementing load balancing through hash algorithms.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If multipath software is installed in the host to distribute I/O requests, then I/O distribution between controllers can be implemented, but the host CPU load increases and software development complexity increases for different operating systems
Solution Approach 1:
The patent extracts the multipath software functionality from the host system and relocates it to a dedicated data processing unit. This separation removes the software complexity burden from the host while maintaining I/O distribution capabilities, as the DPU independently handles controller selection and load balancing without requiring host CPU intervention or OS-specific software development.
Solution Approach 2:
The data processing unit acts as an intermediary between the host and storage controllers. It receives I/O requests from the host, determines the appropriate controller based on load balancing algorithms, and forwards requests accordingly. This intermediary approach eliminates the need for host-based multipath software while maintaining intelligent I/O distribution.
2Productivity
If open-source or third-party multipath software is used, then I/O distribution can be implemented, but load balancing between controllers is insufficient and I/O request forwarding between controllers increases
Solution Approach 1:
The data processing unit independently performs load balancing decisions and controller selection without relying on host-based software. It monitors controller states and autonomously determines the optimal controller for each I/O request, ensuring consistent load balancing performance regardless of the host's operating system or installed software.
Solution Approach 2:
The system establishes dedicated PCIe paths from the host to multiple controllers through the DPU before I/O operations begin. This preliminary configuration enables direct I/O access to specific controllers without requiring runtime I/O forwarding between controllers, improving both performance and load balancing reliability.
3Reliability
If customized multipath software is developed for different operating systems to achieve load balancing, then controller load distribution can be optimized, but software development and maintenance difficulty increases significantly
Solution Approach 1:
The data processing unit provides universal load balancing functionality that operates independently of the host's operating system. A single DPU implementation can serve multiple OS environments without requiring customized software development for each platform, as the load balancing logic resides in the DPU hardware/firmware rather than host software.
Solution Approach 2:
The patent extracts the OS-specific multipath software requirement entirely by relocating the intelligence to the DPU. The host only needs to issue standard I/O requests through the PCIe interface, while the DPU handles all controller selection and load balancing logic, eliminating the need for any OS-specific software development or maintenance.
Data Source
AI summary
This disclosure is related to a network storage method, a storage system, a data processing unit, and a computer system. The network storage method is applied to the storage system. The storage system includes a host, a data processing unit, and a storage device. The data processing unit is connected to the host through a PCIe interface. The storage device includes a plurality of controllers and a plurality of logical units. The method includes: The host sends an input/output request to the data processing unit, where the input/output request is for accessing one of the plurality of logical units. The data processing unit determines, from the plurality of controllers, a controller configured to process the input/output request, to implement load balancing between the plurality of controllers, and sends the input/output request to the determined controller. Multipath software does not need to be installed in the host.


