Storage Controller Multipath I/O Workload Selection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional multipath implementations in storage systems face challenges in responding to failed I/O requests due to path selection being performed by the host multipath driver without awareness of current fabric conditions or storage controller conditions, leading to unknown congestions and prolonged response times.
Innovation Solution
A method where the storage controller evaluates workloads across multiple communication paths and selects the path with the lowest workload for I/O requests, sending status updates to indicate which paths are chosen to satisfy the requests, thereby improving fault tolerance and bandwidth.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If path selection is performed by the host multipath driver, then the host can independently manage I/O requests, but the path selection is performed without awareness of current fabric conditions and storage controller conditions, leading to unknown congestions and prolonged response times
Solution Approach 1:
The storage controller sends feedback information about fabric path conditions and controller workload status to the host multipath driver. This enables the host to make informed path selection decisions based on real-time conditions from both ends of the communication path, resolving the contradiction between host independence and awareness of system conditions.
Solution Approach 2:
The storage controller acts as an intermediary that collects information about fabric path conditions and controller status, then transmits this information to the host multipath driver. This intermediary mechanism enables the host to be aware of system conditions without compromising its independent management capability.
2Device complexity
If conventional multipath implementations are used, then path selection can be performed at the host level, but significant problems occur when responding to failed I/O requests due to lack of real-time congestion awareness
Solution Approach 1:
The storage controller performs preliminary evaluation of fabric path conditions and controller workload status before I/O requests are sent to the host. By preparing and communicating this information in advance, the system prevents path failures and reduces I/O request response time without increasing host-side complexity.
Solution Approach 2:
Real-time feedback from the storage controller about fabric congestion and controller status enables proactive path selection and prevents I/O failures before they occur, reducing response time while maintaining relatively simple host-level implementation.
3Device complexity
If path selection is performed without awareness of current fabric conditions, then the implementation remains simple, but congestions in the fabric remain unknown until after I/O requests time out or response times are prolonged
Solution Approach 1:
The storage controller continuously monitors fabric path conditions and controller workload status, then provides this information as feedback to the host multipath driver. This feedback mechanism maintains relatively simple path selection logic while ensuring real-time awareness of fabric congestion and controller conditions.
Solution Approach 2:
The storage controller serves as an intermediary information gathering point that collects fabric congestion data and controller status information, then makes this information available to the host. This approach maintains implementation simplicity while preventing information loss about system conditions.
Data Source
AI summary
A computer program product, according to one embodiment, includes a computer readable storage medium having program instructions embodied therewith. The computer readable storage medium is not a transitory signal per se. Moreover, the program instructions are readable and/or executable by a controller to cause the controller to perform a method which includes: receiving a same input/output request along more than one communication paths, and evaluating a workload associated with each of the communication paths. A communication path having a lowest workload associated therewith is selected. Moreover, information corresponding to the input/output request as well as a status are sent along the selected communication path. The status sent indicates that the selected communication path was chosen to satisfy the input/output request. A special status indicating that none of the remaining communication paths were chosen to satisfy the input/output request is also sent along each of the remaining communication paths.


