Sequential Resilvering for Storage Rebuilds

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional resilvering processes in data storage systems are inefficient, leading to prolonged resilvering times and performance degradation due to small random Input/Outputs (I/Os) during the reconstruction of data on a failed disk, especially in systems using copy-on-write transactional models.

Innovation Solution

Implementing a two-phase resilvering process that involves coarse grained sorting of blocks into buckets based on their locations, followed by fine grained sorting into sorted trees, allowing for sequential resilvering and reducing resilvering times by performing larger, sequential I/Os.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional resilvering processes are used to rebuild failed disk data, then data redundancy is maintained, but resilvering time is prolonged and system performance degrades due to small random I/Os

Engineering Contradiction:
Improveresilvering speedVSAvoidresilvering time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the resilvering process into distinct phases (discovery, coarse-grained sorting, fine-grained sorting, sequential resilvering) and divides data blocks into groups based on their location on the failed disk. This segmentation allows the system to process blocks in an optimized sequence rather than handling them as individual random I/O operations, thereby reducing overall resilvering time while maintaining data redundancy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary sorting of data blocks into coarse-grained and fine-grained groups before the actual resilvering operation. By pre-organizing the blocks based on their location and dependencies, the system prepares the data in advance for sequential processing, which eliminates the need for random I/O operations during the resilvering phase and significantly improves productivity.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If all data is copied from synchronized mirror to unsynchronized mirror for recovery, then data synchronization is restored, but performance of file storage devices is significantly reduced during the process

Engineering Contradiction:
Improvedata synchronizationVSAvoiddevice performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts only the necessary data blocks that need to be resilvered from the failed disk, rather than copying all data from the mirror. By identifying and processing only the blocks that were not successfully completed on the failed device, the system maintains data synchronization while minimizing the impact on device performance during the recovery process.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies partial action by performing resilvering only on the specific blocks that require reconstruction, rather than copying the entire dataset. This selective approach restores data synchronization while avoiding the performance degradation associated with processing all data blocks, thus maintaining higher device productivity during recovery.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9594635B2Systems and methods for sequential resilvering
Publication Date: 2017.03.14 ORACLE INT CORP
  • US9594635B2 patent drawing
  • US9594635B2 patent drawing
  • US9594635B2 patent drawing

AI summary

Implementations claimed and described herein provide systems and methods for the efficient rebuilding of a failed storage device through sequential resilvering. In one implementation, blocks for resilvering are discovered. The blocks correspond to input/output requests not successfully completed for a failed storage device. A coarse grained sorting of the blocks is performed based on a block location of each of the blocks on the failed storage device. The block locations of the blocks are stored in memory according to the coarse grained sorting. A fine grained sorting of the blocks is performed based on the coarse grained sorting of the blocks. The blocks are sequentially resilvered based on the fine grained sorting.