RAID ECC Controller Using Difference Code Words for Drive Changes
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing RAID systems face challenges in efficiently adding or removing drives without requiring prolonged system downtime, as current methods often necessitate reading and writing across all data and parity drives, leading to reduced uptime.
Innovation Solution
The implementation of a RAID controller with a RAID ECC encoder module that generates code words based on a cyclic code generator polynomial, allowing for seamless drive addition and removal by maintaining the logical-to-physical mapping unchanged, and using difference code words to update parity drives without reading other data drives.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional RAID systems read and write across all data and parity drives when adding or removing drives, then data integrity is maintained, but system downtime increases
Solution Approach 1:
The patent segments the drive modification process into two distinct phases: (1) generating difference code words from the removed drive's data, and (2) updating only the parity drives with these difference code words. This segmentation eliminates the need to read and write all data drives during drive removal, thereby maintaining data integrity through controlled updates while significantly reducing system downtime.
Solution Approach 2:
The patent performs preliminary actions by pre-calculating difference code words from the data on the drive to be removed before actually removing it. These difference code words are then used to update the parity drives. This preliminary calculation approach ensures data integrity is maintained while avoiding the time-consuming operation of reading all other data drives during the removal process.
2Adaptability or versatility
If the logical mapping is changed when drives are added or removed, then drive flexibility is improved, but system complexity increases
Solution Approach 1:
Instead of changing the logical mapping when drives are added or removed (traditional approach), the patent inverts the approach by keeping the logical mapping constant. The physical drives are updated to match the existing logical structure rather than reorganizing the logical structure to accommodate physical changes. This inversion maintains drive flexibility while significantly reducing system complexity.
Solution Approach 2:
The patent creates a universal logical mapping structure that can accommodate different numbers of drives without requiring changes to the mapping itself. The same logical-to-physical mapping table serves multiple configurations, allowing drives to be added or removed flexibly while maintaining system simplicity through a single, unchanged mapping structure.
3Reliability
If all data drives are read during drive removal in traditional RAID systems, then parity updates are accurate, but I/O performance decreases
Solution Approach 1:
The patent extracts only the necessary information (difference code words) from the drive being removed, rather than reading all data drives. These extracted difference code words are sufficient to update the parity drives accurately, eliminating the need to read other data drives and thus maintaining parity update accuracy while preserving I/O performance.
Solution Approach 2:
The patent introduces difference code words as an intermediary element that bridges the removed drive's data and the parity drives. Instead of directly reading all data drives to update parity, the system uses these intermediate difference code words to achieve accurate parity updates with minimal I/O operations, thereby maintaining reliability while improving productivity.
Data Source
AI summary
A Redundant Array of Inexpensive Disks (RAID) controller comprises a RAID error correction code (ECC) encoder module that receives data for storage and that generates code words stored by data drives and one or more parity drives, which have physical locations. The code words are generated based on the data and a cyclic code generator polynomial. Logical locations correspond to an index of the cyclic code generator polynomial. A mapping module maps the physical locations of the data and parity drives to the logical locations. A difference generating module generates a difference code word when data on one of the data drives is modified. The RAID ECC encoder module encodes the difference code word and adds the encoded difference code word to an original code word generated before the modification.


