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
OG exemplary drawing
 
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.