Storage Volume Synchronization via Non-Volatile Cache Metadata
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional approaches to storage array recovery in RAID and multi-volume arrays suffer from performance degradation and data loss risks due to the need to scan the entire array for inconsistency after a failure, as they lack the ability to identify inconsistent stripes, leading to inefficient recovery processes.
Innovation Solution
Implementing non-volatile write buffers with metadata tracking for each storage volume to identify and recover only suspect, partially written stripes, reducing the scope of consistency checks and ensuring data integrity by utilizing non-volatile memory caches to store recently written Logical Block Addresses (LBAs) and preventing cache evictions to maintain data and metadata integrity.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional approaches scan the entire storage array for inconsistency after a failure, then data integrity can be ensured, but recovery time increases and performance degrades
Solution Approach 1:
The patent segments the storage array into multiple independent stripes, each with its own consistency metadata. Instead of scanning the entire array, the system only needs to check metadata for specific stripes that may be inconsistent, dramatically reducing the recovery scope while maintaining data integrity verification.
Solution Approach 2:
The patent implements preliminary actions by maintaining consistency metadata (such as checksums or version markers) for each stripe in advance. When a failure occurs, this pre-computed metadata allows the system to quickly identify which stripes are inconsistent without performing a full array scan, thus reducing recovery time while ensuring integrity.
2Measurement precision
If conventional approaches scan the entire storage array for inconsistency, then all potential data issues can be detected, but system performance during recovery degrades
Solution Approach 1:
The patent extracts the consistency verification function from the bulk data storage operations by implementing separate consistency metadata for each stripe. This allows the system to detect inconsistencies by checking only the extracted metadata rather than scanning entire data blocks, maintaining detection accuracy while improving recovery performance.
Solution Approach 2:
The patent introduces consistency metadata as an intermediary layer between the storage media and the recovery process. This intermediary contains pre-computed verification information that mediates the inconsistency detection, allowing rapid identification of problematic stripes without directly scanning all stored data, thus preserving detection accuracy while enhancing performance.
3Device complexity
If the storage array lacks metadata tracking for written blocks, then the system structure remains simple, but the ability to identify inconsistent stripes is lost
Solution Approach 1:
The patent applies local quality by implementing metadata tracking specifically for stripe-level consistency information rather than maintaining comprehensive metadata for all data blocks. This localized approach provides the necessary identification capability for inconsistent stripes while keeping the overall system structure relatively simple by avoiding full-block metadata overhead.
Data Source
AI summary
A disk array redundancy controller ensures integrity of a mirrored or RAID storage array supporting a host system and minimizes recovery time responsive to a storage volume failure by traversing caches of recently written blocks to identify partially flushed stripes of data and recovering the inconsistent stripes on each of the storage volumes based on a master copy derived from the scan of all pre-failure caches of the storage array. The storage array employs nonvolatile caches in conjunction with solid state drive (SSD) storage volumes, allowing post-failure recovery of recently written blocks. A cache depth at least sufficient to store the largest stripe, or set of blocks, from the host ensures recovery of the entire stripe from a collective scan of the caches of all storage volumes of the storage array.


