On-line restoration of redundancy information in a redundant array system
First Claim
1. In a redundant array of data storage units coupled to a controller, the data storage units having at least one stripe containing a plurality of data blocks and at least one associated redundancy block, a method for restoration of a valid data block and at least one associated redundancy block to each data storage unit stripe after a potential corruption in either of such blocks caused by a temporary fault in a data storage unit during a data modification operation, comprising the steps of:
- a. accessing all of the data blocks, including the potentially corrupted data block, in each stripe containing the potentially corrupted blocks;
b. computing at least one redundancy block from the accessed blocks;
c. saving the at least one computed redundancy block;
d. resubmitting the valid data block from the data modification operation to the redundant array of storage units for storage;
e. updating the at least one saved computed redundancy block;
f. storing the updated at least one redundancy block and the valid data block in the stripe.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for on-line restoration of redundancy information in a redundant array storage system. The invention provides alternative methods of restoring valid data to a storage unit after a Write failure caused by a temporary storage unit fault. In the first preferred method, a valid redundancy block is generated for the corresponding data blocks on all storage units. Resubmitting the interrupted Write operation causes the old (and potentially corrupted) data block to be "subtracted" out of the re-computed redundancy block. The uncorrupted new data block is written over the old data block, and is "added" into the recomputed redundancy block to create a new, corrected redundancy block. The new, corrected redundancy block is written to the appropriate storage unit. In the second preferred method, a new redundancy block is generated from all valid data blocks and the new data block. The new redundancy block and the new data block are then written to the appropriate storage units. In both cases, the entire method is done on-line, with insignificant interruption of normal operation of the redundant array system, and without requiring added processing during normal operation.
-
Citations
30 Claims
-
1. In a redundant array of data storage units coupled to a controller, the data storage units having at least one stripe containing a plurality of data blocks and at least one associated redundancy block, a method for restoration of a valid data block and at least one associated redundancy block to each data storage unit stripe after a potential corruption in either of such blocks caused by a temporary fault in a data storage unit during a data modification operation, comprising the steps of:
-
a. accessing all of the data blocks, including the potentially corrupted data block, in each stripe containing the potentially corrupted blocks; b. computing at least one redundancy block from the accessed blocks; c. saving the at least one computed redundancy block; d. resubmitting the valid data block from the data modification operation to the redundant array of storage units for storage; e. updating the at least one saved computed redundancy block; f. storing the updated at least one redundancy block and the valid data block in the stripe. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. In a redundant array of data storage units coupled to a controller, the data storage units having at least one stripe containing a plurality of data blocks and at least one associated redundancy block, a method for on-line restoration of a valid data block and at least one associated redundancy block to each data storage unit stripe after a potential corruption in either of such blocks caused by a temporary fault in a data storage unit during a data modification operation, comprising the steps of:
-
a. resubmitting the valid data block from the data modification operation to the redundant array of storage units for storage; b. accessing all of the uncorrupted data blocks in the stripe containing the potentially corrupted blocks; c. computing at least one redundancy block from the accessed blocks and the resubmitted valid data block; d. storing the computed at least one redundancy block and the valid data block in the stripe; e. performing restoration as a task concurrently with other input/output tasks. - View Dependent Claims (8, 9, 10)
-
-
11. In a redundant array of data storage units coupled to a controller, the data storage units having at least one stripe containing a plurality of data blocks and at least one associated redundancy block, a method for restoration of at least one valid redundancy block to each data storage unit strip after a potential corruption in a data block and/or in such redundancy block in such stripe caused by a temporary fault in a data storage unit during a data modification operation, comprising the steps of:
-
a. accessing all of the data blocks, including the potentially corrupted data block, in each stripe containing the potentially corrupted blocks; b. computing at least one redundancy block from the accessed blocks; c. saving the at least one computed redundancy block in the stripe. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A control system for use in conjunction with a redundant array of data storage units, the data storage units having at least one stripe containing a plurality of data blocks and at least one associated redundancy block, the control system for restoration of a valid data block and at least one associated redundancy block to each data storage unit stripe after a potential corruption in either of such blocks caused by a temporary fault in a data storage unit during a data modification operation, the control system including:
-
a. coupling means for coupling the control system to the array of storage units; b. restoration means, coupled to the coupling means, for; (1) accessing all of the data blocks, including the potentially corrupted data block, in each stripe containing the potentially corrupted blocks; (2) computing at least one redundancy block from the accessed blocks; (3) saving the at least one computed redundancy block; (4) resubmitting the valid data block from the data modification operation to the redundant array of storage units for storage; (5) updating the at least one saved computed redundancy block; (6) storing the updated at least one redundancy block and the valid data block in the stripe. - View Dependent Claims (17, 18, 19, 20, 21)
-
-
22. A control system for use in conjunction with a redundant array of data storage units, the data storage units having at least one stripe containing a plurality of data blocks and at least one associated redundancy block, the control system for on-line restoration of a valid data block and at least one associated redundancy block to each data storage unit stripe after a potential corruption in either of such blocks caused by a temporary fault in a data storage unit during a data modification operation, the control system including:
-
a. coupling means for coupling the control system to the array of storage units; b. restoration means, coupled to the coupling means, for; (1) resubmitting the valid data block from the data modification operation to the redundant array of storage units for storage; (2) accessing all of the uncorrupted data blocks in the stripe containing the potentially corrupted blocks; (3) computing at least one redundancy block from the accessed blocks and the resubmitted valid data block; (4) storing the computed at least one redundancy block and the valid data block in the stripe; (5) performing restoration as a task concurrently with other input/output tasks. - View Dependent Claims (23, 24, 25)
-
-
26. A control system for use in conjunction with a redundant array of data storage units, the data storage units having at least one stripe containing a plurality of data blocks and at least one associated redundancy block, the control system for restoration of at least one valid redundancy block to each data storage unit stripe after a potential corruption in a data block and/or in such redundancy block in such stripe caused by a temporary fault in a data storage unit during a data modification operation, the control system including:
-
a. coupling means for coupling the control system to the array of storage units; b. restoration means, coupled to the coupling means, for; (1) accessing all of the data blocks, including the potentially corrupted data block, in each stripe containing the potentially corrupted blocks; (2) computing at least one redundancy block from the accessed blocks; (3) saving the at least one computed redundancy block in the stripe. - View Dependent Claims (27, 28, 29)
-
-
30. The control system of claim 30, further including a non-volatile storage device, coupled to the control system, for storing each data modification operation submitted to the redundant array until the data modification operation is completed.
Specification