HBA Virtualization-Aware MPIO Failover Path Selection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional host device multi-pathing arrangements are not aware of and not aligned with HBA virtualization arrangements, leading to the selection of non-optimal paths in case of IO operation failures, resulting in less-effective multi-pathing policies.

Innovation Solution

The implementation of HBA virtualization aware multi-pathing decisions by identifying details of virtual HBAs and their respective backing physical HBAs, allowing for path hierarchical considerations in selecting alternative paths for retrying failed IO operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional multi-pathing failure policies are used, then path selection is simple, but path selection is not aligned with HBA virtualization arrangements leading to non-optimal paths

Engineering Contradiction:
Improvemulti-pathing policy effectivenessVSAvoidpath selection complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The MPIO driver incorporates feedback mechanisms to detect HBA virtualization arrangements and adjust path selection accordingly. By monitoring the virtualization layer and receiving information about virtual HBAs and their backing physical HBAs, the system dynamically modifies failover policies to align with the virtualization architecture, resolving the contradiction between simple path selection and effective multi-pathing.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system changes the parameters of path selection by introducing awareness of HBA virtualization layers. The MPIO driver now considers virtual HBA identifiers and physical HBA mappings when selecting paths, transforming the path selection process from a simple conventional approach to a virtualization-aware approach that optimizes reliability.

Inventive Principle:
Principle #35Parameter changes

2Measurement precision

If HBA virtualization aware path selection is implemented, then path selection accuracy is improved, but detection and identification complexity increases

Engineering Contradiction:
Improvepath identification accuracyVSAvoidvirtual HBA detection complexity
Core Design Contradiction:
Measurement precisionVSDifficulty of detecting and measuring

Solution Approach 1:

The MPIO driver acts as an intermediary layer between the host device and storage system, specifically designed to detect and manage HBA virtualization arrangements. This intermediary component handles the complexity of identifying virtual HBAs and their physical counterparts, providing accurate path identification without burdening the entire system with detection complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system performs preliminary detection and identification of HBA virtualization arrangements during path setup and configuration. By pre-identifying virtual HBA instances and their backing physical HBAs before IO operations occur, the system stores this information for use during failover decisions, reducing real-time detection complexity while maintaining high path identification accuracy.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11256446B1Host bus adaptor (HBA) virtualization aware multi-pathing failover policy
Publication Date: 2022.02.22 EMC IP HLDG CO LLC
  • US11256446B1 patent drawing
  • US11256446B1 patent drawing
  • US11256446B1 patent drawing

AI summary

A host device is configured to communicate over a network with a storage system comprising a plurality of storage devices. The host device comprises a multi-path input-output (MPIO) driver configured to control delivery of input-output (IO) operations from the host device to the storage system over a plurality of paths through the network. The MPIO driver is further configured to identify whether given ones of a plurality of initiators associated with the paths comprise given ones of a plurality of virtual initiator instances, and to identify given ones of a plurality of physical initiator components corresponding to the given ones of the virtual initiator instances. The MPIO driver is also configured to detect a failure of an IO operation over a first path, and to select a second path for retrying the IO operation based on the identification of the physical initiator components corresponding to the virtual initiator instances.