Two-Stage RAID Storage Model for Write-Hole Prevention
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing RAID systems face challenges in efficiently writing data across multiple disks, particularly in scenarios where not all disks in a stripe are utilized, leading to inconsistencies and data unrecoverability due to the 'write-hole' issue, which current solutions like hardware-based approaches and parity logging only partially address.
Innovation Solution
The method involves writing a logical data block and its parity block to a RAID log using fewer physical log blocks than the total number of disks, and then copying the data to a RAID slab, where a checksum is updated to ensure data integrity and error correction, allowing for variable stripe sizes and efficient data recovery.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If data is written directly to RAID slab with variable stripe sizes, then storage efficiency is improved, but data reliability deteriorates due to write-hole issues
Solution Approach 1:
The patent applies preliminary action by first writing data to the RAID log before writing to the RAID slab. This two-stage approach ensures that data is safely recorded in the log (which uses uniform stripe sizes and parity protection) before being transferred to the slab, preventing write-hole issues while maintaining storage efficiency.
Solution Approach 2:
The RAID log acts as an intermediary between the write operation and the RAID slab. By introducing this intermediate storage layer with robust error protection, the system achieves both reliability (through the log's uniform striping and parity) and efficiency (through the slab's flexible allocation).
2Speed
If uniform stripe sizes are used in RAID slab, then reading speed is improved, but storage flexibility deteriorates
Solution Approach 1:
The patent segments the storage system into two distinct parts: the RAID log with uniform stripe sizes optimized for fast reading, and the RAID slab with variable stripe sizes optimized for storage flexibility. This segmentation allows each part to excel at its specific function without compromise.
Solution Approach 2:
The system copies data from the RAID log to the RAID slab after initial writing. This copying mechanism allows the uniform-striped log to handle reads efficiently while the variable-striped slab provides flexible storage, with data available in both formats.
3Device complexity
If fewer physical log blocks are used than total disks, then device complexity is reduced, but data protection capability deteriorates
Solution Approach 1:
The patent applies local quality by giving different parts of the storage system different characteristics. The RAID log uses uniform stripe sizes and full parity protection for maximum reliability, while the RAID slab uses variable stripe sizes for efficiency. Each region is optimized for its specific purpose rather than applying a single uniform approach system-wide.
Data Source
Figure 1
Figure 2
Figure 3A
AI summary
A method for writing a logical data block to storage. The method includes receiving a request to write a logical data block to a storage pool, allocating a number of physical log blocks in a RAID log and a parity block for the logical data block, and writing the logical data block and the parity block to the physical log blocks. The number of the physical log blocks are less than a number of disks storing the RAID log. The method further includes allocating space in a physical slab block in a RAID slab for the logical data block, copying data including the logical data block to the space in the physical slab block, and updating, in the RAID slab, a checksum corresponding to the physical slab block and a parity block that includes the data stripe having the physical slab block based on the data copied.