MPIO Driver Throttling for Storage Area Network Slow Drain

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Storage systems experience performance degradations due to 'slow drain' issues caused by imbalances in data rates between host devices, network switches, and storage arrays, leading to inefficiencies and congestion.

Innovation Solution

Implementing a multi-path input-output (MPIO) driver in host devices to monitor response times and generate alerts when thresholds are exceeded, triggering a throttling command to reduce IO operation rates and mitigate mismatches in negotiated data rates between initiators and targets, thereby alleviating congestion.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If host devices transmit IO operations at high data rates through the storage area network, then storage access performance is improved, but slow drain issues and congestion occur when there is a mismatch between negotiated data rates of initiators and targets

Engineering Contradiction:
Improvedata rateVSAvoidperformance degradation
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The system continuously monitors response times of IO operations and uses this feedback to detect slow drain conditions. When response times exceed thresholds indicating a slow drain issue, the system generates alerts that trigger throttling commands to adjust data rates, creating a closed-loop feedback mechanism that resolves the contradiction between high speed and reliability

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system dynamically adjusts IO operation data rates based on real-time detection of slow drain conditions. The MPIO driver receives throttling commands and modifies transmission rates accordingly, allowing the system to adapt from high-speed operation to rate-limited operation when mismatches are detected, thus maintaining both performance and reliability

Inventive Principle:
Principle #15Dynamics

2Reliability

If the system monitors response times and implements throttling control, then slow drain issues are detected and mitigated, but device complexity increases due to additional monitoring and control mechanisms

Engineering Contradiction:
Improveslow drain detection and mitigationVSAvoidmonitoring and control complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The MPIO driver is enhanced to perform multiple functions: it continues to manage multi-path IO operations while also monitoring response times, detecting slow drain conditions, and executing throttling commands. This multi-functionality approach consolidates monitoring and control capabilities within an existing component, reducing overall system complexity compared to adding separate dedicated monitoring and control devices

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system implements self-monitoring and self-regulation capabilities within the MPIO driver. The driver monitors its own IO operation response times and automatically executes throttling commands when slow drain conditions are detected, eliminating the need for external monitoring and control systems, thus reducing device complexity while maintaining reliable slow drain mitigation

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11308004B1Multi-path layer configured for detection and mitigation of slow drain issues in a storage area network
Publication Date: 2022.04.19 EMC IP HLDG CO LLC
  • US11308004B1 patent drawing
  • US11308004B1 patent drawing
  • US11308004B1 patent drawing

AI summary

A processing device is configured to control delivery of input-output (IO) operations from a host device to a storage system over selected ones of a plurality of paths through a network, and to monitor response times for particular ones of the IO operations sent from the host device to the storage system. The processing device is further configured, responsive to at least a subset of the monitored response times being above a threshold over a time period, to generate an alert, to send the alert to an intermediary device coupled to the host device and the storage system, to receive from the intermediary device a throttling command generated in the intermediary device based at least in part on the alert, and responsive to receipt of the throttling command, to at least temporarily reduce a rate at which additional ones of the IO operations are sent from the host device to the storage system.