Patent ID: 6993701

Claim:
A method for enabling recovery from two or fewer concurrent failures of storage devices in a storage array, the method comprising the steps of: providing the array with a predetermined number of storage devices, including a plurality of first devices configured to store data and row parity, and one diagonal parity device configured to store diagonal parity, wherein the predetermined number of storage devices n is p+1 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−2 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−2 rows so that all blocks belonging to diagonal parity sets of a stripe are stored in the stripe; and computing and storing the diagonal parity for all of the diagonal parity sets except one on the diagonal parity device.