System and method for symmetric triple parity for failing storage devices
First Claim
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.
2 Assignments
0 Petitions
Accused Products
Abstract
A symmetric triple parity (TP) technique in an array comprising a number p of storage devices, such as disks, with p being a prime number is provided. The p disks are organized as one row parity disk, two symmetric parity disks and p-3 data disks. Phantom diagonal and anti-diagonal parity disks assumed to be present are further assumed to contain a predetermined value, thereby enabling parity encoding/decoding utilizing the phantom (anti-) diagonal disks. Row parity and symmetric parity values are included within the computation of the diagonal and anti-diagonal parities; accordingly, the two symmetric parity and the row parity values may be computed using the same technique as used for a triple parity erasure, i.e., in a symmetric fashion.
99 Citations
30 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system configured to enable recovery from three or fewer concurrent failures of storage devices, the system comprising:
-
an array having 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 is p and p is a prime number; a storage operating system including a device storage layer configured to implement a symmetric triple parity (TP) technique configured to, detect that three storage devices have concurrently failed; computes a diagonal parity along diagonal parity sets that span the first devices, computes an anti-diagonal parity along anti-diagonal parity sets that span the first devices, the diagonal and anti-diagonal parity are assigned a predetermined value, computes a total of p 4-tuple sums along an intermediate storage device of the failed storage devices; and generates the computed 4-tuple sums using a number of crosses, the computed sums enabling recovery from three concurrent failures of storage devices in a storage array; and a processing element configured to execute the storage operating system to thereby invoke storage access operations to and from the array in accordance with the TP parity technique. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer readable medium containing executable program instructions executed by a processor, comprising
program instructions that provide 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 is p and p is a prime number; -
program instructions that divide each device into blocks; program instructions that organize the blocks into stripes that contain a same number of blocks in each device, each stripe having p-1 rows of blocks; program instructions that define a diagonal parity along diagonal parity sets that span the first devices, the diagonal parity sets wrapping 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; program instructions that define an anti-diagonal parity along anti-diagonal parity sets that span the first devices, the anti-diagonal parity set wrapping 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; program instructions that assign a predetermined value to the diagonal parity and anti-diagonal parity; and program instructions that compute parity for a plurality of devices configured to store row parity and symmetric parity 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, the computed parity enabling recovery from three concurrent failures of storage devices in a storage array.
-
-
17. A method comprising:
-
detecting that three storage devices have concurrently failed computing an algebraic operation on missing blocks on each of a set of failed storage devices along a row, a diagonal and an anti-diagonal, and a diagonal parity value and an anti-diagonal parity value are set to a predetermined value; and computing a set of 4-tuple sums on a middle failed storage device, the computed parity-sum enabling recovery from three concurrent failures of storage devices in a storage array. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
-
24. A method for recovering from three concurrent disk failures in a computer data storage system, comprising:
-
computing row parity for a set of data disks; computing a first diagonal parity for the set of data disks and disks on which the row parity was stored; computing a second diagonal parity for the set of data disks and disks on which the row parity was stored; detecting a failure on each of three different disks of the set of disks, referred to hereinafter as the three failed disks; choosing an intermediate disk of the three failed disks; performing sums using the row parity and the first diagonal parity and the second diagonal parity to generate an equation having one unknown, the computed sums enabling recovery from three concurrent failures of storage devices in a storage array; and solving the equation to reconstruct a data block on a disk of the three failed disks. - View Dependent Claims (25, 26, 27, 28)
-
-
29. A computer readable medium containing executable program instructions for recovering from three concurrent disk failures in a computer data storage system, the executable program instructions comprising program instructions for:
-
computing row parity for a set of data disks; computing a first diagonal parity for the set of data disks and disks on which the row parity was stored; computing a second diagonal parity for the set of data disks and disks on which the row parity was stored; detecting a failure on each of three different disks of the set of disks, referred to hereinafter as the three failed disks; choosing an intermediate disk of the three failed disks; performing sums using the row parity and the first diagonal parity and the second diagonal parity to generate an equation having one unknown, the computed sums enabling recovery from three concurrent failures of storage devices in a storage array; and solving the equation to reconstruct a data block on a disk of the three failed disks.
-
-
30. A system configured to enable recovery from three concurrent disk failures in a computer data storage system, the system comprising:
-
an array having 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 is p and p is a prime number; a storage operating system including a device storage layer configured to implement a symmetric triple parity technique configured to, compute row parity for a set of data disks; compute a first diagonal parity for the set of data disks and disks on which the row parity was stored; compute a second diagonal parity for the set of data disks and disks on which the row parity was stored; detect a failure on each of three different disks of the set of disks, referred to hereinafter as the three failed disks; choose an intermediate disk of the three failed disks; perform sums using the row parity and the first diagonal parity and the second diagonal parity to generate an equation having one unknown, the computed sums enabling recovery from three concurrent failures of storage devices in a storage array; and solve the equation to reconstruct a data block on a disk of the three failed disks.
-
Specification