EP1960883A2

Triple parity technique for enabling efficient recovery from triple failures in a storage array

Abstract

This record has no abstract on file.

Term

Projected expiry 14 December 2026.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

35 claims: 6 independent, 29 dependent

  1. 1
    Claims of equivalent WO 2007078803 A2 CLAIMS 1. A method for enabling recovery from three 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, one diagonal parity de- vice 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 isp+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 «-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 so that all blocks belonging to diagonal parity sets of a stripe are stored in the stripe;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 so that all blocks belonging to the anti-diagonal parity sets of a stripe are stored in the stripe;and computing and storing the anti-diagonal parity for all the diagonal parity sets ex- cept one on the anti-diagonal parity device.
  2. 6
    A system configured to enable recovery from three or fewer concurrent failures of two 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 row parity, one diagonal parity device con- figured to store diagonal parity and one anti-diagonal parity device configured to store anti-diagonal parity, wherein the predetermined number of storage devices n isp+2 and wherein p is a prime number;a storage operating system including a device storage layer configured to imple- ment a triple parity (TP) technique that (i) computes the diagonal parity along diagonal parity sets that span the first devices, (ii) stores the diagonal parity for all of the diagonal parity sets except one on the diagonal parity device, (iii) computes the anti-diagonal par- iry along anti-diagonal parity sets that span the first devices, and (iv) stores the anti- diagonal parity for all of the anti-diagonal parity sets except one on the anti-diagonal par- ity device;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.
  3. 14
    An apparatus for enabling recovery from three or fewer concurrent failures of two storage devices in a storage array, the apparatus comprising:means for providing the array 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 con- figured to store anti-diagonal parity, wherein the predetermined number of storage de- vices n isp+2 and wherein/? is a prime number;means for dividing each device into blocks;means for organizing the blocks into stripes that contain a same number of blocks in each device, wherein each stripe comprises «-3 rows of blocks;means for 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 so that all blocks belonging to diagonal parity sets of a stripe are stored in the stripe;means for computing and storing the diagonal parity for all of the diagonal parity sets except one on the diagonal parity device;means for 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 so that all blocks belonging to the anti-diagonal parity sets of a stripe are stored in the stripe;and means for computing and storing the anti-diagonal parity for all the anti-diagonal parity sets except one on the anti-diagonal parity device.
  4. 22
    A computer readable medium containing executable program instructions for ena- bling recovery from two or fewer concurrent failures of two storage devices in a storage array, the executable program instructions comprising program instructions for:providing the array with a predetermined number of storage devices, including a plurality of first devices configured to store data and row parity, one diagonal parity de- vice 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 isp+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 «-3 rows so that all blocks belonging to diagonal parity sets of a stripe are stored in the stripe;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 so that all blocks belonging to the anti-diagonal parity sets of a stripe are stored in the stripe;and computing and storing the anti-diagonal parity for all the diagonal parity sets ex- cept one on the anti-diagonal parity device.
  5. 24
    A method for enabling recovery from three or fewer concurrent failures of three 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, one diagonal parity de- vice configured to store diagonal parity and one anti-diagonal parity device configured to store anti-diagonal parity;computing the diagonal parity along diagonal parity sets that span the first de- vices;storing the diagonal parity for all of the diagonal parity sets except one on the di- agonal parity device;computing the anti-diagonal parity along anti-diagonal parity sets that span the first devices;and storing the anti-diagonal parity for all of the anti-diagonal parity sets except one on the anti-diagonal parity device.
  6. 28
    A method for enabling recovery from three concurrent failures of storage devices in a storage array, the method comprising the steps of:computing a dropped diagonal parity and anti-diagonal parity;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 computing a set of 4-tuple sums on a middle failed storage device.