Host Driver I/O Request Routing in Multi-Controller Storage Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In single server high availability storage systems with multiple controllers, existing methods for handling input/output requests are computationally intensive and time-consuming, particularly due to the need for data transfer between storage controllers, which can misdirect requests and complicate processing.

Innovation Solution

The system employs a host driver to process input/output requests and directs commands between storage controllers, allowing one controller to retrieve data from another without transferring data across communication links, using PCIe or SAS connections for efficient command transfer and cache mirroring, thereby reducing processing time and complexity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is transferred between storage controllers through SAS connections for I/O request handling, then request routing reliability is improved, but processing time and computational complexity increase significantly

Engineering Contradiction:
Improverequest routing reliabilityVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent introduces a host driver as an intermediary component that receives I/O requests and determines the appropriate storage controller to forward them to. This mediator approach allows the host driver to make intelligent routing decisions based on persistent reservations, avoiding the need for time-consuming data transfers between controllers when requests can be handled locally.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the storage system into multiple independent storage controllers, each with exclusive access to specific logical volumes through persistent reservations. This segmentation allows each controller to handle requests independently without requiring coordination or data transfer with other controllers, thereby reducing processing time while maintaining reliability through the segmented architecture.

Inventive Principle:
Principle #1Segmentation

2Reliability

If storage controllers use persistent reservation to have exclusive access to logical volumes, then request misdirection is prevented, but system complexity increases

Engineering Contradiction:
Improverequest routing accuracyVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements persistent reservations where storage controllers pre-establish exclusive access rights to specific logical volumes before I/O requests arrive. This preliminary action of reserving volumes ensures that when requests come in, the host driver can immediately route them to the correct controller without needing complex real-time decision-making or data transfer coordination, thus maintaining reliability while managing complexity.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If cache mirroring is used for data transfer between storage controllers, then data availability is improved, but computational intensity and processing time increase

Engineering Contradiction:
Improvedata availabilityVSAvoidcomputational intensity
Core Design Contradiction:
ReliabilityVSPower

Solution Approach 1:

The patent enables storage controllers to serve themselves by allowing each controller to handle I/O requests for its reserved logical volumes independently without requiring data synchronization or mirroring with other controllers. This self-service capability eliminates the computationally intensive cache mirroring process while maintaining data availability through the persistent reservation mechanism that ensures each controller has exclusive access to its assigned volumes.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9229654B2Input/output request shipping in a storage system with multiple storage controllers
Publication Date: 2016.01.05 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD

AI summary

Systems and methods presented herein provide for input/output shipping between storage controllers in a storage system. One storage system comprises a plurality of logical volumes, a host driver operable to process input/output requests to the logical volumes, and a plurality of storage controllers coupled between the server and the logical volumes. A first of storage controllers is operable to receive an input/output request from the host driver for one of the logical volumes, and transfer a command to a second of the storage controllers to retrieve the data of the input/output request. The second storage controller processes the command from the first storage controller, and retrieves the data associated with the input/output request.