Correcting multiple block data loss in a storage array using a combination of a single diagonal parity group and multiple row parity groups
First Claim
Patent Images
1. 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 of two data disks within a single sub-array using the row parity storage device of that sub-array and the diagonal parity.
0 Assignments
0 Petitions
Accused Products
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.
-
Citations
49 Claims
-
1. 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 of two data disks within a single sub-array using the row parity storage device of that sub-array and the diagonal parity. - View Dependent Claims (2, 3, 4, 5)
-
-
6. 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. - View Dependent Claims (7, 8, 9, 10)
-
-
11. 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. - View Dependent Claims (12, 13, 14, 15)
-
-
16. 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.
-
-
17. 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.
-
-
18. 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.
-
-
19. 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.
-
-
20. 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. - View Dependent Claims (21, 22, 23)
-
-
24. 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. - View Dependent Claims (25, 26, 27, 28)
-
-
29. 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. - View Dependent Claims (30, 31, 32, 33)
-
-
34. 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. - View Dependent Claims (35, 36, 37, 38)
-
-
39. 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. - View Dependent Claims (40, 41, 42)
-
-
43. 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 stored in a non-volatile memory device; computing row parity for each row of each sub-array; storing the row parity of a particular sub-array on a row parity non-volatile memory 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 non-volatile memory device of that sub-array and the diagonal parity. - View Dependent Claims (44, 45)
-
-
46. A data storage system having a storage array, comprising:
-
the storage array organized as a plurality of concatenated sub-arrays, each sub-array stored in a non-volatile memory device; a row parity computed for each row of each sub-array; a row parity non-volatile memory device to store the row parity of a particular sub-array; a diagonal parity computed across the concatenated sub-arrays; and a processor to correct a double storage device failure within a single sub-array using the row panty non-volatile memory device of that sub-array and the diagonal parity. - View Dependent Claims (47, 48)
-
-
49. A computer readable media, comprising:
-
said computer readable media containing instructions for execution on a processor for a method of correcting double failures in a storage array, the method having, organizing the storage array as a plurality of concatenated sub-arrays, each sub-array stored in a non-volatile memory device; computing row parity for each row of each sub-array; storing the row parity of a particular sub-array on a row parity non-volatile memory 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 non-volatile memory device of that sub-array and the diagonal parity.
-
Specification