Method and apparatus for transparent, real time reconstruction of corrupted data in a redundant array data storage system
First Claim
1. A computer-implemented method for providing real time reconstruction of corrupted data from a redundant array storage system containing "N+1" data storage units, comprising the steps of:
- storing a first stripe of data comprising "N" blocks of data and one block of redundancy information on said "N+1" data storage units such that one of each of said "N" blocks of data is stored on each of "N" of said "N+1" data storage units and said block of redundancy information is stored on a remaining one of said data storage units;
issuing simultaneous read requests during normal system operation for all "N+1" blocks of said first stripe when any of said data stored in said first stripe is retrieved; and
reconstructing an "N+1st" block of said first stripe from contents of a first "N" blocks received in response to said simultaneous read requests, said reconstructing step being performed only if after a predetermined amount of time, said "N+1st" block has not yet been received and one of said first "N" blocks received comprises said block of redundancy information.
14 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for providing transparent, real time reconstruction of corrupted data from a redundant array of storage units in a manner that imposes no performance degradation for reconstruction of such corrupted data and that does not tie up system resources. The present invention is particularly suited to applications in which data is retrieved from storage equipment in approximately equally sized parcels. Each parcel is divided into "N" blocks of data. An "N+1st" parity block for each parcel is derived based on the content of the "N" blocks of data. The "N" blocks of data and the parity block for each parcel are stored in stripes of blocks in a redundancy group consisting of "N+1" data storage units. Data is read from the storage units an entire stripe at a time. To read a stripe, a read request is concurrently sent to each storage unit in the redundancy group, requesting the block of data in that storage unit that corresponds to the stripe being read. Each storage unit independently processes the read request it has received and sends back the requested block as soon as it has been read. As soon as the first "N" blocks are received, they are XOR'"'"'d together to reconstruct the outstanding "N+1st" block. The "N" received blocks and the XOR'"'"'d sum, representing a reconstruction of the outstanding "N+1st" block, are delivered to the requesting device or process. The same procedure is used each time data is read. The present invention thus delivers data at a consistent rate regardless of whether a storage unit failure occurs.
-
Citations
32 Claims
-
1. A computer-implemented method for providing real time reconstruction of corrupted data from a redundant array storage system containing "N+1" data storage units, comprising the steps of:
-
storing a first stripe of data comprising "N" blocks of data and one block of redundancy information on said "N+1" data storage units such that one of each of said "N" blocks of data is stored on each of "N" of said "N+1" data storage units and said block of redundancy information is stored on a remaining one of said data storage units; issuing simultaneous read requests during normal system operation for all "N+1" blocks of said first stripe when any of said data stored in said first stripe is retrieved; and reconstructing an "N+1st" block of said first stripe from contents of a first "N" blocks received in response to said simultaneous read requests, said reconstructing step being performed only if after a predetermined amount of time, said "N+1st" block has not yet been received and one of said first "N" blocks received comprises said block of redundancy information. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A redundant array of data storage system comprising:
-
"N+1" data storage units; a first stripe of data comprising "N" blocks of data and one block of redundancy information stored on said "N+1" data storage units such that one of each of said "N" blocks of data is stored on each of "N" of said "N+1" data storage units and said block of redundancy information is stored on a remaining one of said data storage units; means for issuing simultaneous read requests for all of said "N+1" blocks in said first stripe when any data stored in said stripe is retrieved; and means for reconstructing an "N+1st" block of said first stripe from a contents of a first "N" blocks received in response to said read requests only if after a predetermined amount of time, said "N+1st" block has not yet been received and one of said first "N" blocks received comprises said block of redundancy information. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
-
21. An article of manufacture comprising a computer usable mass storage medium having computer readable program code means embodied therein for causing a processing means to provide real time reconstruction of corrupted data from a redundant array storage system containing "N+1" data storage units, said computer readable program code means in said article of manufacture comprising:
-
a means for storing a first stripe of data comprising "N" blocks of data and one block of redundancy information on said "N+1" data storage units such that one of each of said "N" blocks of data is stored on each of "N" of said "N+1" data storage units and said block of redundancy information is stored on a remaining one of said data storage units; a means for issuing simultaneous read requests during normal system operation for all "N+1" blocks of said first stripe when any of said data stored in said first stripe is retrieved; and a means for reconstructing an "N+1st" block of said first stripe from contents of a first "N" blocks received in response to said simultaneous read requests only if after a predetermined amount of time, said "N+1st" block has not yet been received and one of said first "N" blocks received comprises said block of redundancy information. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
Specification