RAID Bad Block Module for Array Availability
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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
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.
Data Source
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.


