RAID-Z Sequential Reconstruction With Zone Group Metadata

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

RAID-Z reconstruction in ZFS faces challenges with disk ordering during data integrity validation, leading to unreliable data recovery due to disrupted logical relationships between data blocks and checksums, especially in the absence of complete metadata.

Innovation Solution

The system performs sequential reconstruction by storing block pointers in zone group metadata and maintaining checksum validation, allowing reconstruction to proceed in disk order while ensuring data integrity, using supplemental metadata to avoid real-time Merkle tree traversal.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If RAID-Z uses traditional sequential reconstruction without zone group metadata, then reconstruction speed is improved, but data integrity validation fails due to disrupted logical relationships between data blocks and checksums

Engineering Contradiction:
Improvedata integrity validationVSAvoidreconstruction speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary action by pre-organizing data into zone groups with associated metadata before reconstruction is needed. The zone group metadata is written to disk in advance, containing the zone group index that maps data blocks to their corresponding checksums. This preliminary organization allows the reconstruction process to proceed sequentially while maintaining integrity validation, as the metadata is already prepared and doesn't need to be traversed in real-time during reconstruction.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The zone group metadata acts as an intermediary between the data blocks and their checksums during reconstruction. Instead of directly traversing the Merkle tree or relying on complex metadata structures, the zone group metadata provides a simplified mapping that connects data blocks to their checksums in a straightforward manner. This intermediary structure enables both sequential reconstruction and integrity validation to work together without conflict.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If RAID-Z traverses Merkle tree during reconstruction to maintain integrity, then data integrity validation is maintained, but reconstruction time increases due to complex metadata traversal

Engineering Contradiction:
Improvedata integrity validationVSAvoidreconstruction time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system extracts the essential information needed for integrity validation from the complex Merkle tree structure and consolidates it into the zone group metadata. By taking out only the necessary mapping between data blocks and checksums, the system eliminates the need for full Merkle tree traversal during reconstruction. This extraction approach maintains integrity validation capability while significantly reducing the time required for reconstruction.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system segments the metadata structure into zone group metadata that is separate from the main Merkle tree. This segmentation allows the zone group metadata to serve as a lightweight index for reconstruction operations, while the full Merkle tree remains intact for comprehensive integrity validation when needed. The segmentation separates the reconstruction function from the validation function, allowing each to operate independently with optimal performance.

Inventive Principle:
Principle #1Segmentation

3Reliability

If RAID-Z uses variable block sizes and dynamic stripe widths, then write hole is eliminated and end-to-end data integrity is improved, but disk ordering problem occurs during reconstruction after metadata loss

Engineering Contradiction:
Improveend-to-end data integrityVSAvoiddisk ordering during reconstruction
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system performs preliminary action by pre-establishing zone group metadata that captures the logical organization of data blocks before reconstruction is needed. This metadata includes the zone group index that records which data blocks belong to which zone groups, maintaining the logical relationships even when metadata is partially lost. During reconstruction, this pre-prepared metadata allows the system to restore disk ordering correctly without needing to re-traverse the entire Merkle tree.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system changes the parameter of metadata organization by introducing zone group metadata as an intermediate layer between the data blocks and the Merkle tree. This parameter change allows the system to maintain the benefits of variable block sizes and dynamic stripe widths while providing a simplified ordering mechanism for reconstruction. The zone group metadata stores the essential ordering information in a format that is easy to interpret and apply during reconstruction, resolving the disk ordering problem.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12547323B1Sequential reconstruction for dynamic stripe width RAID
Publication Date: 2026.02.10 VDURA INC
  • US12547323B1 patent drawing
  • US12547323B1 patent drawing
  • US12547323B1 patent drawing

AI summary

A system stores and sequentially reconstruct a set of data. The system divides the set of data into the plurality of blocks and adds, for each block, a block pointer to a zone group index corresponding to a zone group of the block. In response to allocating a final block for a zone group, the system writes the zone group index in a same transaction group as the data in the respective zone group. The system stores a block pointer for the zone group index in a set of zone group metadata. The system sequentially reconstructs the set of data by loading the zone group metadata associated with one or more zone groups of the set of data and iterating, for each of the one or more zone groups, through a respective zone group index. The storage reconstructs each block referenced in a respective zone group index.