Patent ID: 7640484

Claim:
A method for enabling recovery from three or fewer concurrent failures of storage devices in a storage array, comprising: providing the away with a predetermined number of storage devices, including a plurality of first devices configured to store data and row parity, one diagonal parity device configured to store diagonal parity and one anti-diagonal parity device configured to store anti-diagonal parity, wherein the predetermined number of storage devices n is p+2 and wherein p is a prime number; dividing each device into blocks; organizing the blocks into stripes that contain a same number of blocks in each device, wherein each stripe comprises n−3 rows of blocks; defining the diagonal parity along diagonal parity sets that span the first devices, wherein the diagonal parity sets wrap around within a group of n−3 rows; computing and storing the diagonal parity for all of the diagonal parity sets except one on the diagonal parity device; defining the anti-diagonal parity along anti-diagonal parity sets that span the first devices, wherein the anti-diagonal parity set wraps around within a group of n−3 rows; and computing and storing the anti-diagonal parity for all the diagonal parity sets except one on the anti-diagonal parity device.