RAID Drive Replacement with Difference Code Word Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing RAID systems face challenges in efficiently adding or removing drives without requiring prolonged downtime, as current methods often necessitate reading and writing across all data and parity drives, which can reduce system uptime.

Innovation Solution

The implementation of a RAID controller with a cyclic code generator polynomial that maintains a consistent logical-to-physical mapping, allowing for seamless drive addition and removal by generating difference code words and assigning artificial zeros to removed positions, thereby minimizing the need for reading other drives during these operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If current drive addition/removal methods are used in RAID systems, then data redundancy and reliability are maintained, but system downtime increases and productivity decreases

Engineering Contradiction:
Improvedata redundancyVSAvoidsystem uptime
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by pre-calculating and storing difference code words that represent the changes needed when drives are added or removed. These difference code words are computed in advance and stored in the RAID controller's memory, so that when a drive operation is needed, the controller can simply apply the pre-computed differences rather than performing complex recalculations across all drives, thereby minimizing downtime while maintaining data redundancy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent segments the code word update process into two parts: the original code words stored on the RAID drives and the difference code words stored in the controller. This segmentation allows the controller to independently manage drive addition/removal operations by applying only the relevant difference code words, rather than requiring coordinated updates across all drives, thus reducing system downtime while preserving data integrity.

Inventive Principle:
Principle #1Segmentation

2Reliability

If all data drives are read during drive addition/removal operations, then data integrity is verified, but operation time increases and productivity decreases

Engineering Contradiction:
Improvedata integrityVSAvoidoperation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts the data integrity verification function from the drive addition/removal operation itself and separates it into a distinct process. The difference code words are generated and stored without requiring verification reads of all data drives during the actual drive operation. Verification can be performed separately or omitted in favor of trusting the pre-computed difference code words, thereby significantly reducing operation time while maintaining data integrity through the mathematical properties of the difference encoding.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies preliminary action by pre-computing and storing difference code words that encode the necessary data integrity information. These difference code words are calculated in advance based on the relationship between the current RAID state and the desired state after drive addition or removal. This preliminary computation eliminates the need for time-consuming verification reads during the actual drive operation, reducing operation time while preserving data integrity.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If logical-to-physical mapping is modified during drive operations, then drive flexibility is improved, but system complexity and operation time increase

Engineering Contradiction:
Improvedrive flexibilityVSAvoidmapping complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-computing difference code words that are specific to each possible drive addition or removal scenario. Each difference code word is tailored to the particular mapping configuration, allowing the system to adapt to different drive configurations without requiring complex real-time mapping recalculations. The controller stores multiple pre-computed difference code words corresponding to different operational scenarios, enabling flexible drive operations while maintaining simple, consistent mapping logic.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses parameter changes by representing drive addition and removal as changes in the code word parameters rather than changes in the underlying mapping structure. The difference code words encode the necessary parameter adjustments to transition from one RAID configuration to another, allowing flexible drive operations while maintaining a consistent logical-to-physical mapping framework. This approach reduces mapping complexity by handling configuration changes through parameter manipulation rather than structural reorganization.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8386889B1Drive replacement techniques for RAID systems
Publication Date: 2013.02.26 MARVELL ASIA PTE LTD
  • US8386889B1 patent drawing
  • US8386889B1 patent drawing
  • US8386889B1 patent drawing

AI summary

A control module includes an encoder module, which generates a first code word for multiple drives. A detector module, in response to detecting an error in a first drive subsequent to generation of the first code word, initiates replacement of the first drive with a second drive. The encoder module generates a second code word for the second drive. A mapping module maps physical locations of data in the drives to logical locations of the first code word, assigns a predetermined value to one of the logical locations corresponding to the first drive to identify an unused logical location, and assigns the unused logical location to the second drive based on the predetermined value. A difference module generates a third code word based on the first and second code words. The encoder module generates an updated code word for the multiple drives based on the first and third code words.