Storage System I/O Management During Disk Rebuild

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Storage systems face challenges when a disk fails in a disk array group, as the rebuilding process can be slowed down or disrupted by random I/O requests, potentially leading to data loss, especially when another disk fails during this time.

Innovation Solution

A method is introduced to manage storage systems by determining the disk array group affected by a failed disk, calculating a threshold number of I/O operations based on the number of outstanding operations, and controlling the number of I/O operations initiated to the disk array group to reduce the load during rebuilding, while also optimizing cache usage to improve cache hit rates.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If the storage system allows random I/O requests during the rebuilding process, then the system maintains responsiveness to upper layer applications, but the rebuilding process slows down or breaks off

Engineering Contradiction:
Improvesystem responsivenessVSAvoidrebuilding speed
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent extracts and isolates I/O requests destined for the failed disk array group during the rebuilding process. By separating these requests from the normal I/O flow and handling them differently (either queuing them or redirecting to cache), the system maintains responsiveness to applications while preventing these requests from interfering with the rebuilding operations on the spare disk.

Inventive Principle:
Principle #2Taking out (Extraction)

2Productivity

If a large number of I/O requests are directed to the disk array group with a failed disk, then the system handles application demands, but data loss risk increases due to potential second disk failures

Engineering Contradiction:
ImproveI/O request handlingVSAvoiddata safety
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements a protective mechanism by monitoring the number of outstanding I/O requests to the failed disk array group and comparing it against a dynamically calculated threshold. When the threshold is exceeded, the system takes preventive action to limit further I/O requests, thereby cushioning the system against the risk of a second disk failure during the vulnerable rebuilding period. This prior cushioning approach balances productivity maintenance with reliability protection.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

3Productivity

If the cache is used to cache data for the failed disk array group, then the cache hit rate improves, but the cache memory is occupied reducing availability for other data

Engineering Contradiction:
Improvecache hit rateVSAvoidcache management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies local quality by treating data for the failed disk array group differently from other cached data. Specifically, it implements a dedicated or prioritized caching strategy for this group, allowing the system to maintain high cache hit rates for requests related to the failed group while managing overall cache resources efficiently. This localized approach to caching resolves the contradiction by optimizing for the specific needs of the failed group without completely sacrificing general cache availability.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11163658B2Methods, devices and computer readable mediums for managing storage system
Publication Date: 2021.11.02 EMC IP HLDG CO LLC
  • US11163658B2 patent drawing
  • US11163658B2 patent drawing
  • US11163658B2 patent drawing

AI summary

The techniques involve, in response to receiving a message indicating that a failure occurs in a first disk group of an array, selecting, from lists in a cache, a first entry to be written into the array, the lists including first and second lists, wherein the first list is used to cache a data entry for the first disk group. The techniques further involve, in response to determining that the first entry comes from the first list, writing the first entry into the array; in response to determining that the first entry comes from the second list and the first entry is to be written into the first disk group, moving the first entry from the second list to the first list; and in response to determining that the first entry is to be written into the second disk group, writing the first entry into the second disk group.