Patent ID: 7613984
Filing Date: 2009-11-03
Classification: G06F

Abstract:
1. A method comprising: providing an array with a predetermined number of storage devices, including a plurality of first devices configured to store data and symmetric parity, the predetermined number of storage devices are p and 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, each stripe comprising p-1 rows of blocks; defining a diagonal parity along diagonal parity sets that span the first devices, the diagonal parity sets wrap around within a group of p-1 rows allowing all blocks belonging to diagonal parity sets of a stripe to be stored in the stripe; defining an anti-diagonal parity along anti-diagonal parity sets that span the first devices, the anti-diagonal parity sets wrap around within a group of p-1 rows allowing all blocks belonging to the anti-diagonal parity sets of a stripe to be stored in the stripe; assigning a predetermined value to the diagonal parity and anti-diagonal parity; and computing parity for a plurality of devices configured to store three parity values using values written to a plurality of devices configured to store data and the predetermined value assigned to the diagonal parity and anti-diagonal parity sets, the computed parity enabling recovery from three concurrent failures of storage devices in a storage array.