Correcting multiple block data loss in a storage array using a combination of a single diagonal parity group and multiple row parity groups
AssigneeNetwork Appliance, Inc.
InventorsRobert English, Peter Corbett, Steven Kleiman
Life of this patent
Estimating the term…
Abstract
A method for correcting double failures in a storage array has the following steps. A storage array is organized as a plurality of concatenated sub-arrays, each sub-array including a set of data storage devices and a row parity storage device. Row parity is computed for each row of each sub-array. The row parity of a particular sub-array is stored on a row parity storage device of the particular sub-array. A diagonal parity is computed across the concatenated sub-arrays. A double storage device failure is corrected using both the sub-array row parity and the diagonal parity.
Claims42
A method for correcting double failures in a storage array, comprising:
- organizing the storage array as a plurality of concatenated sub-arrays, each sub-array including a set of data storage devices and a row parity storage device;
- computing row parity for each row of each sub-array;
- storing the row parity of a particular sub-array on a row parity storage device of the particular sub-array;
- computing the diagonal parity across the concatenated sub-arrays;
- and
- correcting a double storage device failure two of data disks within a single sub-array using the row parity storage device of that sub-array and the diagonal parity.
A method for correcting double failures in a storage array, comprising:
- organizing the storage array as a plurality of concatenated sub-arrays, each sub-array including a set of data storage devices and a row parity storage device;
- computing row parity for each row of each sub-array;
- storing the row parity of a particular sub-array on a row parity storage device of the particular sub-array;
- computing the diagonal parity across the concatenated sub-arrays;
- and
- correcting a double storage device failure, where a first failure of the double failure is in a data disk of a first sub-array and the second failure of the double failure is in a row parity disk of the same sub-array by using the diagonal parity disk and the row parity of the first sub-array to reconstruct the failed disks.
A method for correcting double failures in a storage array, comprising:
- organizing the storage array as a plurality of concatenated sub-arrays, each sub-array including a set of data storage devices and a row parity storage device;
- computing row parity for each row of each sub-array;
- storing the row parity of a particular sub-array on a row parity storage device of the particular sub-array;
- computing the diagonal parity across the concatenated sub-arrays;
- and
- correcting a double storage device failure, where a first failure of the double failure is in a data disk of a first sub-array and the second failure of the double failure is in the diagonal parity by using the row parity of the first sub-array to restore the data disk and then reconstructing the diagonal parity using all disks of the array.
A computer readable media, comprising:
- said computer readable media containing instructions for execution on a processor for the practice of a method for correcting double failures in a storage array, the method having the steps of,
- organizing the storage array as a plurality of concatenated sub-arrays, each sub-array including a set of data storage devices and a row parity storage device;
- computing row parity for each row of each sub-array;
- storing the row parity of a particular sub-array on a row parity storage device of the particular sub-array;
- computing the diagonal parity across the concatenated sub-arrays;
- and
- correcting a double storage device failure within a single sub-array using the row parity storage device of that sub-array and the diagonal parity.
A computer readable media, comprising:
- said computer readable media containing instructions for execution on a processor for the practice of a method for correcting double failures in a storage array, the method having the steps of,
- organizing the storage array as a plurality of concatenated sub-arrays, each sub-array including a set of data storage devices and a row parity storage device;
- computing row parity for each row of each sub-array;
- storing the row parity of a particular sub-array on a row parity storage device of the particular sub-array;
- computing the diagonal parity across the concatenated sub-arrays;
- and
- correcting a double storage device failure of two data disks within a single sub-array using the row parity storage device of that sub-array and the diagonal parity.
A computer readable media, comprising:
- said computer readable media containing instructions for execution on a processor for the practice of a method for correcting double failures in a storage array, the method having the steps of,
- organizing the storage array as a plurality of concatenated sub-arrays, each sub-array including a set of data storage devices and a row parity storage device;
- computing row parity for each row of each sub-array;
- storing the row parity of a particular sub-array on a row parity storage device of the particular sub-array;
- computing the diagonal parity across the concatenated sub-arrays;
- and
- correcting a double storage device failure, where a first failure of the double failure is in a data disk of a first sub-array and the second failure of the double failure is in a row parity disk of the same sub-array by using the diagonal parity disk and the row parity of the first sub-array to reconstruct the failed disks.
A computer readable media, comprising:
- said computer readable media containing instructions for execution on a processor for the practice of a method for correcting double failures in a storage array, the method having the steps of,
- organizing the storage array as a plurality of concatenated sub-arrays, each sub-array including a set of data storage devices and a row parity storage device;
- computing row parity for each row of each sub-array;
- storing the row parity of a particular sub-array on a row parity storage device of the particular sub-array;
- computing the diagonal parity across the concatenated sub-arrays;
- and
- correcting a double storage device failure, where a first failure of the double failure is in a data disk of a first sub-array and the second failure of the double failure is in the diagonal parity by using the row parity of the first sub-array to restore the data disk and then reconstructing the diagonal parity using all disks of the array.
A method for correcting multiple failures in a storage array, comprising:
- organizing the storage array as a plurality of concatenated sub-arrays, each sub-array including a set of data storage devices and a row parity storage device;
- computing row parity for each row of each sub-array;
- storing the row parity of a particular sub-array on a row parity storage device of the particular sub-array;
- computing the diagonal parity across the concatenated sub-arrays and storing the diagonal parity on a diagonal parity device;
- and
- correcting a multiple storage device failure using the row parity devices and the diagonal parity device.
An apparatus for correcting double failures in a storage array, comprising:
- means for organizing the storage array as a plurality of concatenated sub-arrays, each sub-array including a set of data storage devices and a row parity storage device;
- means for computing row parity for each row of each sub-array;
- means for storing the row parity of a particular sub-array on a row parity storage device of the particular sub-array;
- means for computing the diagonal parity across the concatenated sub-arrays;
- and
- means for correcting a double storage device failure two of data disks within a single sub-array using the row parity storage device of that sub-array and the diagonal parity.
A apparatus for correcting double failures in a storage array, comprising:
- means for organizing the storage array as a plurality of concatenated sub-arrays, each sub-array including a set of data storage devices and a row parity storage device;
- means for computing row parity for each row of each sub-array;
- means for storing the row parity of a particular sub-array on a row parity storage device of the particular sub-array;
- means for computing the diagonal parity across the concatenated sub-arrays;
- and
- means for correcting a double storage device failure, where a first failure of the double failure is in a data disk of a first sub-array and the second failure of the double failure is in a row parity disk of the same sub-array by using the diagonal parity disk and the row parity of the first sub-array to reconstruct the failed disks.
A apparatus for correcting double failures in a storage array, comprising:
- means for organizing the storage array as a plurality of concatenated sub-arrays, each sub-array including a set of data storage devices and a row parity storage device;
- means for computing row parity for each row of each sub-array;
- means for storing the row parity of a particular sub-array on a row parity storage device of the particular sub-array;
- means for computing the diagonal parity across the concatenated sub-arrays;
- and
- means for correcting a double storage device failure, where a first failure of the double failure is in a data disk of a first sub-array and the second failure of the double failure is in the diagonal parity by using the row parity of the first sub-array to restore the data disk and then reconstructing the diagonal parity using all disks of the array.
A apparatus for correcting multiple failures in a storage array, comprising:
- means for organizing the storage array as a plurality of concatenated sub-arrays, each sub-array including a set of data storage devices and a row parity storage device;
- means for computing row parity for each row of each sub-array;
- means for storing the row parity of a particular sub-array on a row parity storage device of the particular sub-array;
- means for computing the diagonal parity across the concatenated sub-arrays and storing the diagonal parity on a diagonal parity device, and
- means for correcting a multiple storage device failure using the row parity devices and the diagonal parity device.
Dependencies are inferred from the claim text.