MPIO Driver Fabric Identifier Path Selection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional techniques fail to adequately detect and alleviate performance degradations in storage systems due to network switch fabric reconfigurations, leading to issues like RSCN storms that impact IO operations.

Innovation Solution

A multi-path layer in host devices is configured with an MPIO driver that determines fabric identifiers for paths and adjusts path selection to avoid fabrics experiencing performance degradations, using commands like SCSI log sense or mode sense to identify and reroute IO operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional path selection techniques are used, then device complexity is reduced, but IO operation performance deteriorates during fabric reconfigurations

Engineering Contradiction:
ImproveIO operation performanceVSAvoidpath selection mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system performs preliminary actions by discovering and registering multiple paths to the storage system before IO operations need to be executed. The MPIO driver maintains a registry of available paths and their associated fabric identifiers, allowing rapid path selection during IO operations without performing complex discovery at runtime. This preliminary path discovery and registration enables the system to respond quickly to fabric reconfigurations while avoiding the complexity of real-time path analysis.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The invention changes the parameter space from traditional path selection (based on single-path metrics) to multi-parameter selection incorporating fabric identifiers, path status, and performance characteristics. By expanding the selection criteria to include fabric-level information and historical performance data, the system can make more informed path selection decisions that prevent IO operations from entering degraded fabric paths, thereby maintaining performance without requiring overly complex real-time analysis.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If fabric rediscovery processes are executed, then path availability is improved, but performance degradation occurs due to RSCN message storms

Engineering Contradiction:
Improvepath availabilityVSAvoidIO operation throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary path discovery and registration during system initialization or when paths become available, storing the results in a registry that the MPIO driver can query during IO operations. This eliminates the need for continuous or frequent fabric rediscovery processes, as the path information is already cached and ready for use. Only when paths change or become unavailable does the system need to perform rediscovery, thereby avoiding RSCN message storms while maintaining path availability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms where the MPIO driver monitors IO operation success and failure rates for each path and fabric identifier. This feedback information is stored and used to influence future path selection decisions, allowing the system to learn from past performance and avoid paths that are likely to degrade. The feedback loop operates at a lower frequency than continuous rediscovery, reducing message traffic while still adapting to changing fabric conditions.

Inventive Principle:
Principle #23Feedback

3Reliability

If multiple paths are maintained for redundancy, then system reliability is improved, but path selection complexity increases

Engineering Contradiction:
ImproveIO operation reliabilityVSAvoidpath management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system performs preliminary discovery and registration of multiple paths during system initialization or when paths become available, storing the results in a registry that the MPIO driver can query during IO operations. This eliminates the need for continuous or frequent fabric rediscovery processes, as the path information is already cached and ready for use. Only when paths change or become unavailable does the system need to perform rediscovery, thereby avoiding RSCN message storms while maintaining path availability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The invention changes the parameter space from traditional path selection (based on single-path metrics) to multi-parameter selection incorporating fabric identifiers, path status, and performance characteristics. By expanding the selection criteria to include fabric-level information and historical performance data, the system can make more informed path selection decisions that prevent IO operations from entering degraded fabric paths, thereby maintaining performance without requiring overly complex real-time analysis.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11050660B2Host device with multi-path layer implementing path selection based at least in part on fabric identifiers
Publication Date: 2021.06.29 EMC IP HLDG CO LLC
  • US11050660B2 patent drawing
  • US11050660B2 patent drawing
  • US11050660B2 patent drawing

AI summary

An illustrative embodiment includes a host device configured to communicate over a network with a storage system comprising a plurality of storage devices. The host device comprises a set of input-output queues and a multi-path input-output driver configured to select input-output operations from the set of input-output queues for delivery to the storage system over the network. The multi-path input-output driver is further configured to determine fabric identifiers for respective ones of a plurality of paths from the host device to the storage system, and to select particular ones of the paths for delivery of the input-output operations to the storage system based at least in part on the fabric identifiers. The fabric identifiers may be determined for the respective paths, for example, based at least in part on responses to a predetermined command sent over the paths by the multi-path input-output driver.