MPIO Driver Multi-Path IO Thread Fault Tolerance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional storage systems often fail to adequately utilize multiple storage targets for input-output operations, leading to reduced fault tolerance and inefficient data transfer, resulting in sub-optimal performance during tasks like block archiving or restoring.
Innovation Solution
A multi-path layer with MPIO drivers is configured to utilize multiple storage targets for executing threads in block archiving or restoring processes, ensuring that if one target fails, the operation can be seamlessly switched to another available target, thereby preventing task failures and delays.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If single storage target is used for IO operations, then device complexity is reduced, but reliability deteriorates due to lack of fault tolerance
Solution Approach 1:
The patent segments IO operations into multiple independent paths targeting different storage targets. Each path can operate independently, allowing the system to continue functioning even if one path fails. This segmentation is achieved through the multi-path layer that creates separate IO threads for each storage target, enabling parallel operation and fault isolation.
Solution Approach 2:
The system dynamically changes the active storage target parameter based on the operational status of individual paths. When a storage target becomes unavailable, the system automatically switches to an alternative target by modifying the IO operation parameters. This dynamic parameter adjustment maintains continuous operation without manual intervention.
2Productivity
If single storage target is used for IO operations, then data transfer path is simplified, but productivity deteriorates due to load concentration and potential delays
Solution Approach 1:
The patent divides the data transfer workload into multiple segments by creating separate IO threads for each storage target. This segmentation distributes the load across multiple paths rather than concentrating it on a single target, improving overall throughput and reducing delays. The multi-path layer manages these segmented operations independently, optimizing each path's performance.
Solution Approach 2:
The system employs partial action by utilizing only the necessary number of storage targets based on current workload demands and target availability. The multi-path layer dynamically selects and activates appropriate numbers of targets, avoiding over-provisioning while ensuring sufficient capacity. This allows the system to scale its operational complexity based on actual needs rather than maintaining maximum capacity always.
3Reliability
If single storage target is used for block archiving/restoring, then operation simplicity is maintained, but reliability deteriorates causing task failures
Solution Approach 1:
The multi-path layer implements self-service functionality by automatically detecting storage target failures and switching to alternative targets without requiring manual intervention. The system monitors the operational status of storage targets and autonomously adjusts IO operations to maintain task completion. This self-service mechanism preserves ease of operation while significantly improving reliability.
Solution Approach 2:
The patent applies beforehand cushioning by pre-configuring multiple storage targets and IO paths as backup options. Before any failure occurs, the system establishes redundant paths that can immediately take over if a primary target fails. This preparatory cushioning ensures continuous operation and prevents task failures, maintaining both reliability and operational simplicity.
Data Source
AI summary
A processing device is configured to communicate over a network with a storage system comprising a plurality of storage devices. The device comprises a multi-path input-output (MPIO) driver configured to control delivery of input-output (IO) operations from the device to the storage system over selected ones of a plurality of paths through the network. The paths are associated with respective initiator-target pairs, and each of a plurality of targets of the initiator-target pairs comprises a corresponding port of the storage system. The MPIO driver is further configured to create a plurality of IO operation threads, to use a given IO operation thread to retrieve a given IO operation from an IO queue, to attempt to perform the given IO operation on a given target of the plurality of targets, and to return the given IO operation to the IO queue upon a failure to perform the given IO operation.


