RAID-6 for storage system employing a hot spare drive
AssigneeDell Products L.P.
InventorsVishnu Murty Karrotu, Neeraj Joshi, Kavi K. Chakkravarthy
Life of this patent
Estimating the term…
Abstract
A disclosed method for implementing a RAID-6 virtual disk includes performing data storing operations in response to receiving write data. The data storing operations include, in at least one embodiment: storing a block of the write data in D data stripes distributed across D of N storage devices, where D and N are integers greater than 0 and N is greater than D. The storage devices may correspond to disk drives, but may correspond to other types of storage devices as well
Claims20
A redundant array of independent drives (RAID) controller method performed by a RAID controller, the RAID controller method comprising:
- responsive to receiving an assignment of a RAID 6 virtual disk comprising N storage drives, determining availability of a hot spare drive;
- responsive to detecting an available hot spare drive, performing RAID parity operations comprising;
- responsive to receiving write data, performing data storing operations comprising:
- storing a block of the write data in D data stripes distributed across D of the N storage drives, where D and N are integers greater than 0 and N is greater than D;
- generating P parity data based on the D data stripes and storing the P parity data on one of the N storage drives;
- generating Q parity data based on a combination of the D data stripes and the P parity data and storing the Q parity data on one of the N storage drives;
- and
- generating Z parity data based on a combination of the P parity data and the Q parity data and storing the Z parity data on a hot spare drive;
- and
- responsive to detecting a failed storage drive, performing data regeneration operations comprising:
- determining regenerated write data corresponding to write data, if any, previously stored on the failed storage drive, wherein said determining is based upon a combination of the P parity data and write data stored on non-failing storage drives;
- determining regenerated P parity data corresponding to the P parity data, if any, previously stored on the failed storage drive, wherein said determining is based upon a combination of the Q parity data and the Z parity data;
- determining regenerated Q parity data corresponding to the Q parity data, if any, previously stored on the failed storage drive, wherein said determining is based upon a combination of the P parity data and the Z parity data;
- and
- overwriting the Z parity data previously stored on the hot spare drive with the regenerated write data, the regenerated P parity data, and the regenerated Q parity data.
A redundant array of independent drives (RAID) controller, comprising:
- a processor;
- and
- a memory including processor executable RAID controller instructions for causing the processor to perform RAID controller operations comprising:
- responsive to receiving write data, performing storing operations comprising:
- storing a block of the write data in D data stripes distributed across D of N storage drives, where N is greater than D;
- generating P parity data based on the D data stripes and storing the P parity data on one of the N storage drives;
- generating Q parity data based on a combination of the D data stripes and the P parity data and storing the Q parity data on one of the N storage drives;
- and
- generating Z parity data based on a combination of the P parity data and the Q parity data and storing the Z parity data on a hot spare drive;
- and
- responsive to detecting a failed storage drive, performing data regeneration operations comprising:
- determining, based upon two read operations, regenerated P parity data corresponding to the P parity data, if any, previously stored on the failed storage drive;
- determining, based upon two read operations, regenerated Q parity data corresponding to the Q parity data previously stored on the failed storage drive;
- and
- overwriting Z parity data previously stored on the hot spare drive with the regenerated P parity data and the regenerated Q parity data.
A non-transient computer readable medium comprising processor executable redundant array of independent drives (RAID) controller instructions for causing a RAID controller to perform operations comprising:
- responsive to receiving an assignment of a RAID 6 virtual disk comprising N storage drives, determining availability of a hot spare drive;
- responsive to detecting an available hot spare drive, performing RAID parity operations comprising;
- receiving write data including at least one data block of a size corresponding to the product of S and D where S indicates a size of a data stripe and D indicates a number of data stripes;
- storing the data block in D data stripes distributed across D of N storage drives, wherein N is greater than D;
- storing RAID-6 P parity data on a first of the N storage drives not included in the D storage drives;
- storing RAID-6 Q parity data on a second of the N storage drives not included in the D storage drives;
- generating Z parity data based on a combination of the P parity data and the Q parity data and storing the Z parity data on a third storage drive not included in the D storage drives.
Dependencies are inferred from the claim text.