| US 7,519,629 B2 | ||
| System and method for tolerating multiple storage device failures in a storage system with constrained parity in-degree | ||
| James Lee Hafner, San Jose, Calif. (US); Jeffrey R. Hartline, Ithaca, N.Y. (US); and Tapas Kanungo, San Jose, Calif. (US) | ||
| Assigned to International Business Machines Corporation, Armonk, N.Y. (US) | ||
| Filed on Sep. 30, 2004, as Appl. No. 10/956,466. | ||
| Prior Publication US 2006/0074995 A1, Apr. 06, 2006 | ||
| Int. Cl. G06F 17/00 (2006.01) | ||
| U.S. Cl. 707—202 [708/531; 711/114; 714/6; 714/800; 707/203; 707/204] | 17 Claims |

| 1. A method of protecting against T storage device failures in a collection of N storage devices, wherein T and N are positive
integers and 2<=T<N the method comprising:
setting an integer number K between 2 and T inclusive;
logically partitioning a portion of each of the N storage devices into at least one strip on each of the N storage devices;
partitioning the at least one strip on each of the N storage devices into at least one data element and at least one parity
element;
organizing the strips of the partitioned portions on the N storage devices into a corresponding stripe
wherein each of the N storage devices stores data elements and parity elements in the organized strips of the corresponding
stripe;
for each of the stored parity elements, selecting a set of K data elements from the corresponding stripe so that:
(a) the selected set of K data elements has not already been selected for another parity element;
(b) the selected K data elements are located on K different storage devices;
(c) the K storage devices of the selected K data elements are different from the storage device of the corresponding parity
element;
(d) each data element of the selected K data elements is selected for T different parity elements; and
generating a parity value from data values stored in the K data elements in the selected set of K data elements and storing
the parity value in the stored parity element.
|