Stored data can be recovered from a disk array having at least 2n+1
physical disks that are capable of storing n physical disks worth of data
when any two disks fail, or when more than two dependent disks fail. Data
is stored in data stripes that are divided into n substantially
equal-sized strips and are distributed across the n disks. Each data
stripe has a corresponding parity strip that is generated by including
the data strips in the data stripe only once when the parity strip is
generated. The data strips of each data stripe, the copy of each such
data strip and the corresponding parity strip are distributed across the
disks in such a manner that the data strips of each data stripe, the copy
of each such data strip and the corresponding parity strip are each on a
respectively different disk of the disk array.