RAID Bad Block Module for Array Availability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

RAID configurations face failures due to bad block errors, leading to entire array failures, especially during degraded, rebuilding, dirty degraded, and initialization states, as existing systems lack effective bad block management, causing high availability penalties.

Innovation Solution

A RAID bad block module is introduced to intercept bad block errors, log them in a bad block table, and determine if the RAID controller can handle the error without failing the array, passing it to the operating system if necessary, thus preventing entire array failures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If bad block errors are passed to the RAID layer for handling, then the RAID layer can manage block-level errors, but the entire array may fail when multiple errors occur or during degraded/rebuilding states

Engineering Contradiction:
Improvearray availabilityVSAvoiderror handling complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The error handling function is segmented between the bad block module (which handles individual block errors) and the RAID layer (which handles array-level operations). The bad block module intercepts and manages bad block errors independently, preventing them from propagating to the RAID layer and causing array failure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The bad block module acts as an intermediary layer between the physical disk and the RAID layer. It intercepts bad block errors before they reach the RAID layer, logs them in the bad block table, and prevents them from causing array-wide failures while still allowing the RAID layer to function normally.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the RAID layer marks the entire array as failed upon encountering read errors, then array integrity is maintained, but high availability is penalized due to unnecessary array failures

Engineering Contradiction:
Improvedata integrityVSAvoidarray availability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Instead of marking the entire array as failed, the bad block module applies local quality by marking only the specific bad blocks in the bad block table. This localized error handling maintains data integrity for affected blocks while preserving overall array availability and functionality.

Inventive Principle:
Principle #3Local quality

3Ease of manufacture

If GLIST blocks are used for bad block management, then internal bad block handling is provided, but the hard disk must pass errors to the RAID layer when GLIST blocks are exhausted

Engineering Contradiction:
Improvebuilt-in bad block managementVSAvoiderror handling capability
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The bad block module provides universal bad block management that works across all RAID levels and configurations. It extends the limited GLIST-based handling by providing a systematic approach that logs all bad blocks in a centralized table, enabling consistent error handling regardless of RAID level or GLIST capacity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9442814B2Systems and methods for improved fault tolerance in RAID configurations
Publication Date: 2016.09.13 AMZETTA TECH LLC
  • US9442814B2 patent drawing
  • US9442814B2 patent drawing
  • US9442814B2 patent drawing

AI summary

A RAID bad block module is added to a RAID controller. The bad block module intercepts bad block errors and marks them in a bad block table. When a bad block error is intercepted the bad block module logs the error and determines, based on the error and previously received errors logged in the table, whether the RAID controller can handle the error without failing the entire array. If so, the bad block module passes the error to the RAID controller. Else, the bad block module passes the error to an application or operating system where it is handled like any other disk error. Thus, instead of failing the entire array, the bad block errors are dealt with by the operating system.