Distributed subsystem sparing
First Claim
1. In a storage subsystem comprising a plurality of arrays of storage devices including at least first and second arrays having a same number of rows, said first array configured to include a first plurality n of blocks of data, a parity block and a spare region per row, and said second array configured to include a second plurality m of blocks of data per row stored therein, where m may be unequal to n, a method for restoring lost ones of said blocks of data in an event of a device failure in one of said arrays, comprising the steps of:
- first determining if spare regions are available in said one of said arrays in which said device failure occurred;
second determining if a dedicated spare storage device having spare regions is available in said storage subsystem, if said first determining step did not identify spare regions in said one of said arrays;
third determining if distributed spare regions are available in one or more other arrays in said storage subsystem, if said second determining step did not identify a dedicated spare storage device having spare regions;
reconstructing each of said lost blocks, andplacing each of said reconstructed blocks in a spare region determined to be available by one of said determining steps.
0 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for sharing distributed spares of a first array with a second array in a storage subsystem which included a number of storage arrays requires that at least a first array of the subsystem has available distributed spares, and that at least a second array has a same number of "rows" as the first array, for spare sharing. When a device failure occurs on the second array, the data and parity blocks of the failed device are reconstructed and placed in the spares of the first array, and the block addresses are appropriately remapped to the spares. Distributed spare sharing is possible because the first array is configured to include at least one spare region/row, and the second array will never lose a number of blocks greater than the common number of rows in the first array in a single device failure. Distributed spare sharing optimizes a storage subsystem, because all spares within arrays of the subsystem having an equal number of rows must be depleted before device replacement becomes mandatory.
141 Citations
94 Claims
-
1. In a storage subsystem comprising a plurality of arrays of storage devices including at least first and second arrays having a same number of rows, said first array configured to include a first plurality n of blocks of data, a parity block and a spare region per row, and said second array configured to include a second plurality m of blocks of data per row stored therein, where m may be unequal to n, a method for restoring lost ones of said blocks of data in an event of a device failure in one of said arrays, comprising the steps of:
-
first determining if spare regions are available in said one of said arrays in which said device failure occurred; second determining if a dedicated spare storage device having spare regions is available in said storage subsystem, if said first determining step did not identify spare regions in said one of said arrays; third determining if distributed spare regions are available in one or more other arrays in said storage subsystem, if said second determining step did not identify a dedicated spare storage device having spare regions; reconstructing each of said lost blocks, and placing each of said reconstructed blocks in a spare region determined to be available by one of said determining steps. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. In a storage subsystem comprising a plurality of arrays of storage devices including at least three arrays having a same number of rows, a first of said at least three arrays including a first plurality n of blocks of information stored therein, a second of said at least three arrays including a second plurality m of blocks of information stored therein, a third of said at least three arrays including a third plurality g of blocks of information stored therein, and at least said second and a third of said at least three arrays configured to include a spare region per row, where n, m, and q may have different values a method for recovering lost ones of said blocks of information in an event of a storage device failure in said first array, comprising the steps of:
-
first determining if a dedicated spare storage device having spare regions is available in said storage subsystem; second determining if distributed spare regions are available in one or more other arrays in said storage subsystem, if said first determining step did not identify a dedicated spare storage device having spare regions; if spare regions are available as determined by said determining steps, reconstructing each of said lost blocks, and placing each of said reconstructed blocks in one of said available spare regions. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
-
37. A storage subsystem comprising:
-
a plurality of arrays of storage devices including at least first and second arrays having a same number of rows, said first array configured to include a first plurality n of blocks of data, a parity block and a spare region per row, and said second array including a second plurality m of blocks of data per row stored therein, where m may be unequal to n; first means responsive to a device failure in one of said arrays, resulting in a loss of at least one of said blocks of information, for determining if one or more of said spare regions of said first array are available for storing one or more blocks of information; second means for determining if a dedicated spare storage device having spare regions is available in said storage subsystem, if said first means for determining did not identify spare regions in said first array; third means for determining if distributed spare regions are available in one or more other arrays in said storage subsystem, if said second means for determining did not identify a dedicated spare storage device having spare regions; means responsive to said first, second and third determining means for reconstructing said lost blocks if spare regions are available; and means for placing each of said reconstructed blocks in one of said available spare regions. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51)
-
-
52. A storage subsystem, comprising:
-
a plurality of arrays of storage devices including at least three arrays having a same number of rows, a first of said at least three arrays including a first plurality n of blocks of information stored therein, a second of said at least three arrays including a second plurality m of blocks of information stored therein, a third of said at least three arrays including a third plurality g of blocks of information stored therein, and at least said second and said third of said at least three arrays configured to include a spare region per row where n, m, and g may have different values; first means responsive to a storage device failure in one of said arrays resulting in a loss of at least one of said blocks of information, for determining if a dedicated spare storage device having spare regions is available in said at least second and third arrays; second means for determining if distributed spare regions are available in one or more other arrays in said storage subsystem, if said first determining step did not identify a dedicated spare storage device having spare regions; means responsive to said first and second determining means for reconstructing each of said lost blocks if said one or more spare regions are available; and means for placing each of said reconstructed blocks in one of said available spare regions. - View Dependent Claims (53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73)
-
-
74. A computer system, comprising:
-
a central processing unit (CPU); and a storage subsystem, said storage subsystem further comprising, a plurality of arrays of storage devices including first and second arrays having a same number of rows, said first array configured to include a first plurality n of blocks of data, a parity block and a spare region per row, and said second array configured to include a second plurality m of blocks of data per row stored therein, where m may be unequal to n,;
first means responsive to a device failure in one of said arrays resulting in a loss of at least one of said blocks of data, for first determining if spare regions are available in said one of said arrays in which said device failure occurred;second means for determining if a dedicated spare storage device having spare regions is available in said storage subsystem, if said first determining means did not identify spare regions in said one of said arrays; third means for determining if distributed spare regions are available in one or more other arrays in said storage subsystem, if said second determining means did not identify a dedicated spare storage device having spare regions; means responsive to said first, second and third determining means for reconstructing said lost blocks if said spare regions are available; means for placing each of said reconstructed blocks in one of said available spare regions; means for controlling said storage subsystem; and means for linking said CPU to said subsystem. - View Dependent Claims (75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94)
-
Specification