US 7,555,701 B2
Method and system for recovering from multiple drive failures
Sanjay Subbarao, Irvine, Calif. (US)
Assigned to Adaptec, Inc., Milpitas, Calif. (US)
Filed on Nov. 04, 2005, as Appl. No. 11/266,341.
Claims priority of provisional application 60/624564, filed on Nov. 04, 2004.
Prior Publication US 2006/0129760 A1, Jun. 15, 2006
Int. Cl. H03M 13/00 (2006.01)
U.S. Cl. 714—781 10 Claims
OG exemplary drawing
 
1. A method of recovering n×m unresolved symbols from a possible m-storage element failure in a networked array of n data storage elements and m parity storage elements, where m is greater than two and n is greater than or equal to m, each storage element having n symbols, the method comprising:
deriving a first set of n relationships, each of the first set of n relationships consisting of n data symbols from the n data storage elements and one parity symbol from a first set of parity symbols, the n data symbols and one parity symbol in each relationship being individually subjected to XOR operations that collectively equal zero;
deriving a second set of n relationships, each of the second set of n relationships consisting of n symbols from the n data storage elements and first set of parity symbols and one parity symbol from a second set of parity symbols, the n symbols and one parity symbol from the second set of parity symbols in each relationship being individually subjected to XOR operations that collectively equal zero;
deriving additional sets of relationships such that a total of m sets of relationships are derived, each of the additional sets of relationships composed of up to (n+i−1)Ci−1 relationships, where i indicates the numbered set of relationship and C is the mathematical symbol for combination, meaning the number of combinations of (n+i−1) symbols taken i−1 at a time, each relationship in the sets of relationships consisting of n symbols from the n data storage elements and i−1 sets of parity symbols and one parity symbol from the ith set of parity symbols, the at least n symbols and one parity symbol from the ith set of parity symbols in each relationship being individually subjected to XOR operations that collectively equal zero;
generating scripts that use the first, second and additional sets of relationships to generate XOR equations to resolve the unresolved n×m symbols resulting from possible m-storage element failure combinations,
uploading the scripts to one or more storage element controllers for the networked array; and
running the scripts to resolve the unresolved n×m symbols resulting from an m storage element failure combination.