Patent ID: 7644303

Claim:
A method for reading data from a storage-device array comprising three or more storage devices, wherein: the array has a plurality of sector levels, each sector level containing one sector on each storage device in the array at corresponding addresses across the storage devices; each sector level includes (i) parity data stored on a first storage device and (ii) information stored on the two or more remaining storage devices; the parity data for a current sector level is generated from the information stored at the current sector level on the remaining storage devices; and at least first and second profiles concurrently define two or more virtual arrays associated with at least a common subset of one or more of the storage devices, each profile defining (i) a different virtual array associated with a corresponding set of storage devices and (ii) a parameter set of one or more parameters used for accessing the virtual array, the method comprising: (a) generating an instruction for reading (i) the parity data from the first storage device at the current sector level and (ii) the information from the remaining storage devices at the current sector level; (b) receiving an indicator as a parameter from the first profile indicating whether one of the remaining storage devices is a degraded storage device; (c) if the indicator does not indicate a degraded storage device, then providing as output the information read from the remaining storage devices at the current sector level; and (d) if the indicator does indicate a degraded storage device, then: (d1) reconstructing information previously stored on the degraded storage device at the current sector level based on (i) the parity data read from the first storage device at the current sector level, and (ii) the information read from each remaining non-degraded storage device at the current sector level; (d2) providing as output (i) the information read from the one or more non-degraded storage devices at the current sector level and (ii) the reconstructed information; and (d3) storing another indicator indicating the degraded storage device as a parameter in the second profile associated with the degraded storage device.