# US 8,751,862 B2 · System and method to support background initialization for controller that supports fast rebuild using in block data

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,751,862 B2
- Document ID: US8751862B2
- Status: Granted
- Kind: B2
- Application number: 11/837,096
- Filed: 2007-08-10
- Published: 2009-02-12
- Granted: 2014-06-10
- Earliest claimed: 2007-08-10
- Assignees: Dell Products L.P.
- Applicants: Jacob Cherian; Rohit Chawla
- Inventors: Jacob Cherian; Rohit Chawla
- Web page: https://patentgrep.com/patent/US8751862B2

## CPC

- G06F 11/1092: {Rebuilding, e.g. when physically replacing a failing disk}
- G06F 2211/104: Metadata, i.e. metadata associated with RAID systems with parity
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A fast rebuild mechanism that includes a background initialization mechanism. The fast rebuild mechanism allows a RAID controller to be made aware of what blocks are actually in use so that only those blocks are rebuilt after a disk drive failure. The fast rebuild mechanism also includes functionality for an IO controller (such as storage controller) to detect whether a block has stored data to indicate that the block has valid data when the block is accessed.

## Claims

### Claim 1

A method for performing a background initialization fast rebuild operation on a Redundant Array of Inexpensive Disks (RAID) system comprising:
providing the RAID system with a virtual disk portion and a disk metadata portion, the disk metadata portion storing a fast rebuild operation indication to indicate whether the RAID system supports a fast rebuild operation and a virtual disk consistent indication to indicate whether the virtual disk is consistent;
providing each block within the RAID system with a user data portion and a block information portion, the block information portion including a valid block data indication;
setting the virtual disk consistent indication to false;
determining whether a block has valid data;
indicating that the block has valid data via the valid block data indication;
rebuilding only blocks that contain valid data after a disk drive failure based upon the fast rebuild operation indication and the valid block data indications; and,
after all blocks, containing valid data have been rebuilt, setting the virtual disk consistent indication to true; and wherein
the fast rebuild operation comprises
determining, for every stripe in the virtual disk portion, whether the virtual disk consistent indication value is TRUE;
determining whether the RAID system is a parity based RAID system if the virtual disk consistent value is TRUE;
determining whether a stripe in the virtual disk portion includes a corresponding parity strip if the RAID system is a parity based RAID system, if the stripe does include the corresponding parity strip, then reading strip data of the stripe, if the stripe does not include the corresponding parity strip, then reading all strips in the stripe;
if the RAID system is not a parity based RAID system, then reading all strips in the stripe, after all strips in the stripe are read, determining whether the block valid data detected interrupt is present;
if the block valid data detected interrupt is present, then rebuilding this stripe and setting the block valid data value active for the rebuild data, if the block valid data detected interrupt is not present, then this stripe does not need to be rebuilt;
determining whether all stripes have completed the fast rebuild operation, if all stripes have completed, then completing the rebuild operation.

### Claim 2 (depends on 1)

The method of claim 1 further comprising
clearing the valid block data indication on blocks that are no longer in use within the RAID system.

### Claim 3 (depends on 1)

The method of claim 1 wherein
the block information portion further comprises a data written on inconsistent stripe identifier, the data written on inconsistent stripe identifier enabling the RAID controller to track writes on inconsistent stripes.

### Claim 4 (depends on 1)

The method of claim 1 wherein
the RAID system comprises a storage controller.

### Claim 5 (depends on 1)

The method of claim 1 wherein
the block information portion is not accessible to an end user.

### Claim 6

An apparatus for performing a background initialization fast rebuild operation on a Redundant Array of Inexpensive Disks (RAID) system comprising:
a virtual disk portion and a disk metadata portion, the disk metadata portion storing a fast rebuild operation indication to indicate whether the RAID system supports a fast rebuild operation and a virtual disk consistent indication to indicate whether the virtual disk is consistent,
means for providing each block within the RAID system with a user data portion and a block information portion, the block information portion including a valid block data indication;
means for setting the virtual disk consistent indication to false;
means for determining whether a block has valid data;
means for indicating that the block has valid data via the valid block data indication; and,
means for rebuilding only blocks that contain valid data after a disk drive failure based upon the fast rebuild operation indication and the valid block data indications; and,
means for setting the virtual disk consistent indication to true after all blocks containing valid data have been rebuilt; and wherein
the fast rebuild operation comprises
determining, for every stripe in the virtual disk portion, whether the virtual disk consistent indication value is TRUE;
determining whether the RAID system is a parity based RAID system if the virtual disk consistent value is TRUE;
determining whether a stripe in the virtual disk portion includes a corresponding parity strip if the RAID system is a parity based RAID system, if the stripe does include the corresponding parity strip, then reading strip data of the stripe, if the stripe does not include the corresponding parity strip, then reading all strips in the stripe;
if the RAID system is not a parity based RAID system, then reading all strips in the stripe, after all strips in the stripe are read, determining whether the block valid data detected interrupt is present;
if the block valid data detected interrupt is present, then rebuilding this stripe and setting the block valid data value active for the rebuild data, if the block valid data detected interrupt is not present, then this stripe does not need to be rebuilt;
determining whether all stripes have completed the fast rebuild operation, if all stripes have completed, then completing the rebuild operation.

### Claim 7 (depends on 6)

The apparatus of claim 6 further comprising
means for clearing the valid block data indication on blocks that are no longer in use within the RAID system.

### Claim 8 (depends on 6)

The apparatus of claim 6 wherein
the block information portion further comprises a data written on inconsistent stripe identifier, the data written on inconsistent stripe identifier enabling the RAID controller to track writes on inconsistent stripes.

### Claim 9 (depends on 6)

The apparatus of claim 6 wherein
the RAID system comprises a storage controller.

### Claim 10 (depends on 6)

The apparatus of claim 6 wherein
the block information portion is not accessible to an end user.

### Claim 11

An information handling system comprising:
a processor;
a memory coupled to the processor;
a Redundant Array of Inexpensive Disks (RAID) system, the RAID system being capable of performing a background initialization fast rebuild operation, the RAID system comprising a virtual disk portion and a disk metadata portion, the disk metadata portion storing a fast rebuild operation indication to indicate whether the RAID system supports a fast rebuild operation and a virtual disk consistent indication to indicate whether the virtual disk is consistent, the RAID system further comprising instructions for
providing each block within the RAID system with a user data portion and a block information portion, the block information portion including a valid block data indication;
setting the virtual disk consistent indication to false;
determining whether a block has valid data;
indicating that the block has valid data via the valid block data indication; and,
rebuilding only blocks that contain valid data after a disk drive failure based upon the fast rebuild operation indication and the valid block data indications; and,
after all blocks, containing valid data have been rebuilt, setting the virtual disk consistent indication to true; and wherein
the fast rebuild operation comprises
determining, for every stripe in the virtual disk portion, whether the virtual disk consistent indication value is TRUE;
determining whether the RAID system is a parity based RAID system if the virtual disk consistent value is TRUE;
determining whether a stripe in the virtual disk portion includes a corresponding parity strip if the RAID system is a parity based RAID system, if the stripe does include the corresponding parity strip, then reading strip data of the stripe, if the stripe does not include the corresponding parity strip, then reading all strips in the stripe;
if the RAID system is not a parity based RAID system, then reading all strips in the stripe, after all strips in the stripe are read, determining whether the block valid data detected interrupt is present;
if the block valid data detected interrupt is present, then rebuilding this stripe and setting the block valid data value active for the rebuild data, if the block valid data detected interrupt is not present, then this stripe does not need to be rebuilt;
determining whether all stripes have completed the fast rebuild operation, if all stripes have completed, then completing the rebuild operation.

### Claim 12 (depends on 11)

The information handing system of claim 11 wherein the RAID system further comprises instructions for clearing the valid block data indication on blocks that are no longer in use within the RAID system.

### Claim 13 (depends on 11)

The information handling system of claim 11 wherein
the block information portion further comprises a data written on inconsistent stripe identifier, the data written on inconsistent stripe identifier enabling the RAID controller to track writes on inconsistent stripes.

### Claim 14 (depends on 11)

The information handling system of claim 11 wherein
the RAID system comprises a storage controller.

### Claim 15 (depends on 11)

The information handling system of claim 11 wherein
the block information portion is not accessible to an end user.
