Concentrated parity technique for handling double failures and enabling storage of more than one parity block per stripe on a storage device of a storage array
First Claim
1. A method for constructing an array of storage devices, comprising:
- establishing a selected number of storage devices in the array of storage devices, each selected storage device storing data in blocks;
establishing a selected number of data storage blocks for a parity block;
establishing a plurality of parity sets, a parity set having the number of data blocks and having a set parity block, the parity sets chosen so that each data storage block is in more than one parity set;
computing the set parity block for each parity set; and
storing each set parity block on a storage device of the array selected to store parity blocks (hereinafter a parity storage device for each of the plurality of parity sets), to store more than one parity block on each parity storage device, with an exception that two parity blocks for a same data storage location are precluded from being stored on the same is parity storage device.
0 Assignments
0 Petitions
Accused Products
Abstract
A method for constructing an array of storage devices is disclosed. A number of storage devices is selected. Each storage device stores data in data blocks. A redundancy is established, the redundancy being a number of data blocks for a parity block. A plurality of parity sets is established, a parity set having the number of data blocks for a parity block and having a set parity block. The set parity block for each parity set is computed. Each set parity block is stored on one of the data storage devices that does not store one of the data-block members of the parity set, to store more than one parity block on each storage device, with an exception that two parity blocks for the same data storage location are precluded from being stored on the same data storage device.
-
Citations
42 Claims
-
1. A method for constructing an array of storage devices, comprising:
-
establishing a selected number of storage devices in the array of storage devices, each selected storage device storing data in blocks; establishing a selected number of data storage blocks for a parity block; establishing a plurality of parity sets, a parity set having the number of data blocks and having a set parity block, the parity sets chosen so that each data storage block is in more than one parity set; computing the set parity block for each parity set; and storing each set parity block on a storage device of the array selected to store parity blocks (hereinafter a parity storage device for each of the plurality of parity sets), to store more than one parity block on each parity storage device, with an exception that two parity blocks for a same data storage location are precluded from being stored on the same is parity storage device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer operated data storage system apparatus, comprising:
-
a selected number of storage devices established as an array of storage devices, each selected storage device storing data in blocks; a selected number of data storage blocks established for a parity block; a plurality of parity sets, a parity set having the number of data blocks and having a set parity block, the set the parity sets chosen so that each data storage block is in more than one parity set; the data storage system configured to compute the set parity block for each parity set; and the data storage system configured to store each set parity block on a storage device of the array selected to store parity blocks (hereinafter parity storage device for each of the plurality of parity sets), to store more than one parity block on each parity storage device, with an exception that two parity blocks for a same data storage location are precluded is from being stored on the same parity storage device. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A computer readable storage media, comprising:
said computer readable storage media containing program instructions for execution on a processor for a method of constructing an array of storage devices, the program instructions for, establishing a selected number of storage devices in the array of storage devices, each storage device storing data in blocks; establishing a selected number of data storage blocks for a parity block; establishing a plurality of parity sets, a parity set having the number of data blocks and having a set parity block, the parity sets chosen so that each data storage block is in more than one parity set; computing the set parity block for each parity set; and storing each set parity block on a storage device of the array selected to store parity blocks (hereinafter parity storage device for each of the plurality of parity sets), to store more than one parity block on each parity storage device, with an exception that two parity blocks for the same data storage location are precluded from being stored on the same parity storage device.
-
32. A method for constructing an array of storage devices, comprising:
-
dividing storage blocks of the storage devices into data blocks for storing data and parity blocks for storing parity; assigning a plurality of data blocks to a parity set; assigning each data block to a selected number of parity sets, where the selected number is greater than one; and storing the parity blocks to a storage device such that, (1) a parity block for a parity set cannot be on a device holding a data block of the parity set, (2) more than one parity block for the parity set assigned to a data block cannot be on the same storage device, and (3) the array is recoverable from up to a selected number of device failures. - View Dependent Claims (33, 34, 35, 36)
-
-
37. A data storage system apparatus, comprising:
-
an array of storage devices, each storage device having storage blocks divided into data blocks for storing data and parity blocks for storing parity; a plurality of data blocks assigned to a parity set; the data storage system configured to assign each data block to a selected number of parity sets, where the selected number is greater than one; and the parity blocks stored to a storage device such that, (1) a parity block for a parity set cannot be on a device holding a data block of the parity set, (2) more than one parity block for the parity set assigned to a data block cannot be on the same storage device, and (3) the array is recoverable from up to a selected number of device failures. - View Dependent Claims (38, 39, 40, 41)
-
-
42. A computer readable storage media, comprising:
-
said computer readable storage media containing program instructions for execution on a processor for a method of constructing an array of storage devices, each storage device having storage blocks, the program instructions for, dividing the storage blocks into data blocks for storing data and parity blocks for storing parity; assigning a plurality of data blocks to a parity set; assigning each data block to a selected number of parity sets, where the selected number is greater than one; and storing the parity blocks to a storage device such that, (1) a parity block for a parity set cannot be on a device holding a data block of the parity set, (2) more than one parity block for the parity set assigned to a data block cannot be on the same storage device, and (3) the array is recoverable from up to a selected number of device failures.
-
Specification