RAID array rebuild assist from external array copy
AssigneeWestern Digital Technologies, Inc.
InventorsAdam Roberts, Sivakumar Munnangi
Life of this patent
Estimating the term…
Abstract
When rebuilding a RAID (Redundant Array of Independent Disks) array in which a drive has failed, if another RAID array contains a mirror copy of the of the rebuilding RAID array content, this mirroring RAID array can be used to more rapidly rebuild the RAID array with the failed drive. Data requests to the rebuilding RAID array can be redirected to the mirroring RAID array; data can be transferred from the mirroring RAID array; or a combination of these can be used to finish rebuilding more quickly. When transferring data to the rebuilding array from the mirroring array, the transfer can be performed as a direct memory access (DMA) process independently of the RAID module of either array.
Claims19
A non-volatile data storage system, comprising:
- a first Redundant Array of Independent Disks (RAID) array, comprising:
- a plurality of non-volatile data storage drives;
- and
- one or more control circuits, including:
- a network interface;
- a RAID module configured to encode data received over the network interface and to store the encoded data distributed across the plurality of non-volatile data storage drives in a redundant manner;
- and
- a buffer,
- wherein, in response to a failure of a first non-volatile data storage drive of the plurality of non-volatile data storage drives, the one or more control circuits are configured to perform a rebuild operation of data stored on the first non-volatile data storage drive, the rebuild operation including:
- requesting at least a portion of an encoded copy of data, stored on the first non-volatile data storage drive, from a second RAID array, the second RAID array storing at least a portion of data stored in the first RAID array,
- receiving the portion of the encoded copy of the data from the second RAID array in the buffer in a transfer over the network interface, and
- writing, independent of the RAID module, the portion of the encoded copy of the data from the buffer into one or more of the plurality of non-volatile data storage drives in the first RAID array.
A method, comprising:
- in response to a first Redundant Array of Independent Disks (RAID) array determining that a first non-volatile data storage drive of a plurality of non-volatile data storage drives in the first RAID array is failing, performing a rebuild of the first RAID array, the rebuild including:
- determining whether a second RAID array is a mirror RAID array that stores a mirror copy of data stored on the first RAID array;
- and
- transferring at least a portion of an encoded copy of data stored on the first non-volatile data storage drive of the first RAID array, over a computing fabric, from the second RAID array, in a direct memory access (DMA) transfer independent of RAID modules controlling the second RAID array;
- and,
- in response to a data request to the first RAID array received from a host during the rebuild, requesting the second RAID array fulfill the data request by supplying at least a portion of the requested data over the computing fabric to the host.
A Redundant Array of Independent Disks (RAID) array, comprising:
- a plurality of data storage drives;
- means for encoding user data and storing the encoded user data distributed across the plurality of data storage drives in a redundant manner;
- and
- means for rebuilding data content of the RAID array in response to a failing data storage drive among the plurality of data storage drives, the means for rebuilding further including:
- means for requesting at least a portion of an encoded copy of data, stored on the data storage drive of the plurality of data storage drives, from another RAID array, the another RAID array storing at least a portion of data stored in the RAID array;
- means for receiving the portion of the encoded copy of the data from the another RAID array in a buffer of the RAID array in a transfer over a network interface of the RAID array;
- and
- means for writing, independent of a RAID module of the RAID array, the portion of the encoded copy of the data from the buffer into one or more of the plurality of data storage drives in the RAID array.
Dependencies are inferred from the claim text.