Zero rebuild extensions for raid
AssigneeLSI Corporation
InventorJonathan S. Goldick
Life of this patent
Estimating the term…
Abstract
Disclosed is a method of reliably operating a RAID storage system. A first block of data is striped across a plurality of drives following a CRUSH algorithm. The first block of data is again striped across a second plurality of drives to a D′+P′ stripe and placed on free drive space following the CRUSH algorithm. The data is written in an asynchronous fashion and possibly at a time when system utilization is low.
Claims30
A method for reliably storing data in a computer system comprising:
- selecting a first plurality of drives from a total pool of drives to handle primary Redundant Array of Independent Disks (RAID) Data and Parity (D+P) striping according to Controlled Replication Under Scalable Hashing (CRUSH) algorithms;
- writing a first block of data in said primary RAID D+P striping to said first plurality of drives in accord with said CRUSH algorithm;
- selecting a second plurality of drives from a remainder pool of drives to handle redundant RAID Data plus Parity (D′+P′) striping according to said CRUSH algorithm, said remainder pool of drives being said total pool of drives excluding said first plurality of drives selected from said total pool of drives, said second plurality of drives having free space not already used by other applications;
- and
- writing at least a portion of said first block of data in said redundant RAID D′+P′ striping to said second plurality of drives in said free space of said second plurality of drives in accord with said CRUSH algorithm as at least a partial redundant copy of said primary RAID D+P striping such that said redundant RAID D′+P′ striping as well as standard RAID rebuild algorithms for exclusive or (XOR) data and parity striping are available to rebuild said first data block when a drive in said first plurality of drives fails, and such that said free space used by said redundant RAID D′+P′ striping is still available for primary application usage.
A zero-rebuild redundant array of independent disks (RAID) storage system, comprising:
- a total pool of drives;
- a first plurality of drives selected from said total pool of drives;
- a second plurality of drives from a remainder pool of drives, said remainder pool of drives being said total pool of drives excluding said first plurality of drives selected from said total pool of drives, said second plurality of drives having free space not already used by other applications;
- and
- a RAID storage controller that selects said first plurality of drives from said total pool of drives to handle primary RAID Data and Parity (D+P) striping according to Controlled Replication Under Scalable Hashing (CRUSH) algorithms, writes a first block of data in said primary RAID D+P striping to said first plurality of drives in accord with said CRUSH algorithm, selects said second plurality of drives from said remainder pool of drives to handle redundant RAID Data plus Parity (D′+P′) striping according to said CRUSH algorithm, and writes at least a portion of said first block of data in said redundant RAID D′+P′ striping to said second plurality of drives in said free space of said second plurality of drives in accord with said CRUSH algorithm as at least a partial redundant copy of said primary RAID D+P striping such that said redundant RAID D′+P′ striping as well as standard RAID rebuild algorithms for exclusive or (XOR) data and parity striping are available to rebuild said first data block when a drive in said first plurality of drives fails, and such that said free space used by said redundant RAID D′+P′ striping is still available for primary application usage.
A non-transitory computer readable medium having instructions stored thereon for operating a redundant array of independent disks (RAID) storage system that, when executed by a computer, at least direct said computer to:
- select a first plurality of drives from a total pool of drives to handle primary Redundant Array of Independent Disks (RAID) Data and Parity (D+P) striping according to Controlled Replication Under Scalable Hashing (CRUSH) algorithms;
- write a first block of data in said primary RAID D+P striping to said first plurality of drives in accord with said CRUSH algorithm;
- select a second plurality of drives from a remainder pool of drives to handle redundant RAID Data plus Parity (D′+P′) striping according to said CRUSH algorithm, said remainder pool of drives being said total pool of drives excluding said first plurality of drives selected from said total pool of drives, said second plurality of drives having free space not already used by other applications;
- and
- write at least a portion of said first block of data in said redundant RAID D′+P′ striping to said second plurality of drives in said free space of said second plurality of drives in accord with said CRUSH algorithm as at least a partial redundant copy of said primary RAID D+P striping such that said redundant RAID D′+P′ striping as well as standard RAID rebuild algorithms for exclusive or (XOR) data and parity striping are available to rebuild said first data block when a drive in said first plurality of drives fails, and such that said free space used by said redundant RAID D′+P′ striping is still available for primary application usage.
Dependencies are inferred from the claim text.