Efficient method for providing fault tolerance against double device failures in multiple device systems
First Claim
Patent Images
1. A method for protecting against single and double storage device failures in a group of N storage devices, comprising:
- logically partitioning each of the storage devices into a plurality of data storage locations;
a) selecting a data storage location on 1 to N-2 of the data storage devices to be data-block-members of a parity set to be protected by parity, the selected data storage locations storing data to be protected;
b) computing a parity block for the data-block-members and assigning the parity block to the parity set;
c) storing the parity block in one of the storage devices that does not store one of the data-block-members of the parity set;
generating one or more additional parity sets by repeating steps a)-c) such that each data-block-member is a member of two or more parity sets, and such that no two members of a parity set are members of the same additional parity set.
4 Assignments
0 Petitions
Accused Products
Abstract
A method for storing redundant information in an array of data storage devices such that data is protected against two simultaneous storage device failures. The method assigns each data block to two different parity sets, each protected by a different parity block. The protected data blocks and the parity block each reside on a different data storage device.
144 Citations
23 Claims
-
1. A method for protecting against single and double storage device failures in a group of N storage devices, comprising:
-
logically partitioning each of the storage devices into a plurality of data storage locations; a) selecting a data storage location on 1 to N-2 of the data storage devices to be data-block-members of a parity set to be protected by parity, the selected data storage locations storing data to be protected; b) computing a parity block for the data-block-members and assigning the parity block to the parity set; c) storing the parity block in one of the storage devices that does not store one of the data-block-members of the parity set; generating one or more additional parity sets by repeating steps a)-c) such that each data-block-member is a member of two or more parity sets, and such that no two members of a parity set are members of the same additional parity set. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for protecting against single and double storage device failures in a group of N storage devices, comprising:
-
logically partitioning each of the storage devices into a plurality of data storage locations; defining a plurality of data stripes on each storage device, each data stripe on each data storage device comprising a plurality of data storage locations on that data storage device; assigning each data stripe to a data band, such that no two data stripes from the same storage device are assigned to the same data band; a) selecting one data storage location from each of 1 to N-2 stripes of a band to be data-block-members of a parity set to be protected by parity; b) computing a parity block for the data-block-members and assigning the parity block to the parity set; c) storing the parity block in the same band in one of the storage devices that does not store one of the data-block-members of the parity set; generating one or more additional parity sets by repeating steps a)-c) such that each data-block-member is a member of two parity sets, and such that no two members of a parity set are members of the same additional parity set. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A method for assigning parity and data blocks to a parity set to insure recovery from single and double storage device failures in a system having a plurality of data storage devices, comprising the steps of:
-
assigning one of N unique symbols to each storage device; partitioning each storage device into M different data blocks, and assigning each data block a unique symbol; defining a parity set vector containing N symbols that include one which corresponds to a parity block stored on the data storage device and the remaining symbols including two each that correspond to each unique data block symbol stored on the data storage device, and the remaining symbol or symbols in the vector being null symbols; defining a parity assignment matrix having N rows, each row comprising the elements of the parity set vector shifted by one or more places from the previous row, wherein each column of the matrix represents a different parity set and each row of the matrix represents a different storage device; for each data block and parity block; assigning a data block on a given storage device to the two parity sets represented by the columns in which the symbol corresponding to that data block appears in the matrix; assigning a parity block on a given storage device to the parity set represented by the column in which the symbol corresponding to that parity block appears in the matrix. - View Dependent Claims (19, 20, 21, 22)
-
-
23. A system for protecting against single and double storage device failures in a group of N storage devices, comprising:
-
means for logically partitioning each of the storage devices into a plurality of data storage locations; a) means for selecting a data storage location on 1 to N-2 of the data storage devices to be data-block-members of a parity set to be protected by parity, the selected data storage locations storing data to be protected; b) means for computing a parity block for the data-block-members and assigning the parity block to the parity set; c) means for storing the parity block in one of the storage devices that does not store one of the data-block-members of the parity set; and means for generating one or more additional parity sets by repeating steps a)-c) such that each data-block-member is a member of two parity sets, and such that no two members of a parity set are members of the same additional parity set.
-
Specification