Storage Pool Parity Layout to Prevent RAID Write-Holes
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing RAID-5 replication schemes face issues with data recoverability due to 'write-holes' and inefficiencies in modifying data, where inconsistencies in parity blocks can lead to unrecoverable data if write operations fail, especially when not all disks are updated correctly.
Innovation Solution
A modified RAID scheme that allocates physical blocks across multiple disks, generating and writing parity blocks in a way that ensures data recoverability by writing parity blocks and data blocks across different disks, allowing for per-file and per-block replication policies, and using a storage pool allocator to manage disk allocation efficiently.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional RAID-5 replication schemes are used, then data can be replicated across multiple disks, but write operations may fail to complete fully creating 'write-holes' where parity blocks become inconsistent with data blocks
Solution Approach 1:
The patent applies preliminary action by writing the parity block to disk before writing the data blocks. This ensures that if a write operation fails partway through, the parity block is already on disk and can be used to recover any data blocks that were not successfully written. This prevents the creation of 'write-holes' where parity would be missing or inconsistent.
Solution Approach 2:
The patent implements beforehand cushioning by creating parity blocks that can serve as a safety buffer against write failures. The parity block acts as a cushion that protects against data corruption or loss if the write operation is interrupted or fails, ensuring that data can be recovered even when complete stripe writes do not occur.
2Productivity
If parity blocks are written after data blocks in traditional RAID-5, then data can be written efficiently, but incomplete writes result in unrecoverable data if write operations fail
Solution Approach 1:
The patent reverses the traditional RAID-5 write sequence by writing the parity block before the data blocks. This preliminary action ensures that the parity block is securely stored on disk before any data blocks are written, maintaining both efficiency and reliability. If a write operation fails after writing the parity block but before completing data block writes, the system can still recover using the pre-written parity block.
3Speed
If delta blocks are generated using only one data block instead of all data blocks, then modification operations are faster, but recoverability is lost if write operations fail
Solution Approach 1:
The patent applies preliminary action by writing the parity block before generating and writing delta blocks for modifications. This ensures that the parity block is already on disk when the delta block write operation completes, providing a safety cushion that enables recovery even if the delta block write fails or is interrupted.
Solution Approach 2:
The patent implements beforehand cushioning by ensuring the parity block is written to disk before the delta block write operation. This creates a protective buffer that maintains recoverability of modified data even when write operations fail, while still allowing the faster delta block generation approach to be used.
Data Source
AI summary
A method for writing data to a storage pool includes receiving a write operation to write a logical block of data to the storage pool, determining a number (n−1) of physical blocks required to store the logical block of data, generating a parity block using the logical block of data, allocating n physical blocks in the storage pool, writing the parity block in the first of n allocated physical block, and writing the logical block of data across the remaining n−1 allocated physical blocks, where n is less than a number of disks in the storage pool, and where each of the n allocated physical blocks is located on a different disk in the storage pool.


