Patent ID: 7321905

Claim:
A method of reliably storing data on a plurality of storage devices, comprising: forming a stripe by: logically partitioning a portion of each of the storage devices into one strip; organizing strips on the storage devices into a stripe; designating a plurality of strips as data strips and a remainder of the strips in the stripe as parity strips; partitioning each data strip into a plurality of data elements; partitioning each parity strip into a plurality of parity elements; ordering the data strips containing data from a first data strip to a last data strip; defining a set of parity slopes as a plurality of parity slope values, wherein each parity slope labels one parity strip; designating at least some of the data elements as a plurality of preset data elements by assigning a predetermined value to each of the preset data elements; identifying at least two data strips that contain a different number of presets; associating with each parity element, a set of data elements defined by selecting a data element from the first data strip, following a sloped line having a parity slope corresponding to a parity strip of the parity element through the data elements from one data strip to a next data strip, with wrap-around from a top of one data strip to a bottom of the next data strip, until all the data strips have been touched by the sloped line; and for each parity element, computing a parity value from data values stored in the data elements associated to the parity element and storing that parity value in the parity element.