RAID I/O Request Redistribution for Drive Load Balancing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing RAID storage arrays face issues with uneven distribution of input/output (IO) requests among drives, leading to performance degradation due to some drives receiving more requests than others or becoming slow/busy, which can cause the entire array to slow down.
Innovation Solution
A controller is employed to monitor IO requests for each drive and skip sending pending requests to drives with high loads or slow performance, redistributing them through a queue or cache for later processing, using data structures like the Adelson-Velsky and Landis (AVL) tree to manage node selection.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If IO requests are distributed to drives in a RAID storage array, then data storage and retrieval functionality is provided, but uneven distribution of IO requests causes some drives to become overloaded while others remain underutilized, leading to performance degradation
Solution Approach 1:
The system monitors the number of pending IO requests for each drive and uses this feedback information to dynamically adjust the distribution of new IO requests. When a drive's pending request count exceeds a threshold, the system redirects new requests to other drives, ensuring balanced load distribution and preventing any single drive from becoming a performance bottleneck
Solution Approach 2:
The IO request distribution strategy is made dynamic by continuously evaluating the pending request counts of drives and adjusting the distribution in real-time. This dynamic approach allows the system to adapt to changing drive performance conditions and maintain optimal IO distribution across the storage array
2Ease of operation
If drives are monitored and IO requests are redistributed based on load conditions, then IO distribution balance is improved, but system complexity increases due to monitoring and conditional logic requirements
Solution Approach 1:
The system uses a simple threshold parameter (pending request count threshold) to trigger redistribution logic. By monitoring this single parameter and comparing it against a predefined threshold, the controller can make straightforward decisions about whether to redirect IO requests, avoiding the need for complex algorithms while still achieving effective load balancing
Data Source
AI summary
Novel tools and techniques are provided for implementing distribution of IO requests to a storage array. In various cases, a controller for a redundant array of independent disks can be configured determine a first drive configured to receive a first input/output (IO) request; detect a first number IO requests pending for the first drive; determine the first number of IO requests pending for the first drive exceeds a first predetermined threshold; and based on a determination the first number of IO requests pending for the first drive exceeds the first predetermined threshold, skip sending the first IO request to the first drive.


