摘要 |
A storage system is described including a two dimensional array of disk drives having multiple logical rows of drives and multiple logical columns of drives, and at least one drive array controller configured to store data in stripes (e.g., across the logical rows). A given drive array controller calculates and stores: row error correction data for each stripe of data across each one of the logical rows on one of the drives for each row, and column error correction data for column data grouped (i.e., striped) across each one of the logical columns on one of the drives for each column. The drive array controller may respond to a write transaction involving a particular row data stripe by calculating and storing row error correction data for the row data stripe before completing the write transaction. In this case, the drive array controller delays calculating and storing the column error correction data for each column data stripe modified by the write transaction until after completion of the write transaction. Methods for storing data within the disk drive array, and for repairing the disk drive array following failure of one or more of the disk drives, are also described. |