← Back to Patent Explorer
EP0492808A2 Expired / Lapsed EP ⏱️ 0.0 years remaining

On-line restoration of redundancy information in a redundant array system

Assignee: EMC Corp
•
Filing: 1991-11-27
•
Granted: —
•
Expires: 2011-11-27
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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 re-computed 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 entrie method is done on-line, with insignificant interuption of normal operation of the redundant array system, and without requiring added processing during normal operation.

Inventors

  • 👤 David Charles Stallmo
  • 👤 William Alexander Brant
  • 👤 David Gordon

Bibliographic Details

Application Number —
Jurisdiction EP
Data Source google_patents
Last Synchronized 2026-11-01 18:49
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/08; G06F11/10; G06F11/1076; G06F11/14; G06F11/1402; G06F11/1415; G06F11/1435

Claims Analysis

Total Claims: 38
Claim 1
Independent Claim 173 words
In a redundant array of storage units coupled to a controller, the data storage units having a plurality of stripes each 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. 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.
Claim 2
Dependent Claim 173 words
In a redundant array of storage units coupled to a controller, the data storage units having a plurality of stripes each 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. 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.
Claim 3
Dependent Claim 31 words
The method of claim 1, wherein at least one redundancy block in each stripe contains parity information, and the step of computing the parity redundancy block comprises exclusively-OR'ing the accessed blocks.
Claim 4
Dependent Claim 62 words
The method of claim 1, wherein at least one saved computed redundancy block contains parity information, and the step of updating that parity redundancy block comprises the steps of: a. accessing the potentially corrupted data block; and b. exclusively-OR'ing the accessed data block with the saved parity redundancy block and the resubmitted valid data block to generate a new parity redundancy block.
Claim 5
Dependent Claim 18 words
The method of claim 1, wherein the steps are performed as a task concurrently with other input/output tasks.
Claim 6
Dependent Claim 18 words
The method of claim 4, wherein each block being read or modified is locked during the restoration process.
Claim 7
Dependent Claim 32 words
The method of claim 1, further including the step of storing each data modification operation submitted to the redundant array in a non-volatile storage device until the data modification operation is completed.
Claim 8
Dependent Claim 154 words
In redundant array of storage units coupled to a controller, the data storage units having a plurality of stripes each 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.
Claim 9
Dependent Claim 154 words
In redundant array of storage units coupled to a controller, the data storage units having a plurality of stripes each 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.
Claim 10
Dependent Claim 37 words
The method of claim 7, wherein at least one redundancy block in each stripe contains parity information, and the step of computing the parity redundancy block comprises exclusively-OR'ing the accessed blocks with the resubmitted valid data block.
Claim 11
Dependent Claim 18 words
The method of claim 7, wherein the steps are performed as a task concurrently with other input/output tasks.
Claim 12
Dependent Claim 18 words
The method of claim 9, wherein each block being read or modified is locked during the restoration process.
Claim 13
Dependent Claim 32 words
The method of claim 7, further including the step of storing each data modification operation submitted to the redundant array in a non-volatile storage device until the data modification operation is completed.
Claim 14
Dependent Claim 130 words
In a redundant array of storage units coupled to a controller, the data storage units having a plurality of stripes each containing a plurality of data blocks and at least one associated redundancy block, a method for on-line restoration of at least one valid redundancy block to each data storage unit stripe after a potential corruption in 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.
Claim 15
Dependent Claim 130 words
In a redundant array of storage units coupled to a controller, the data storage units having a plurality of stripes each containing a plurality of data blocks and at least one associated redundancy block, a method for on-line restoration of at least one valid redundancy block to each data storage unit stripe after a potential corruption in 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.
Claim 16
Dependent Claim 31 words
The method of claim 12, wherein at least one redundancy block in each stripe contains parity information, and the step of computing the parity redundancy block comprises exclusively-OR'ing the accessed blocks.
Claim 17
Dependent Claim 18 words
The method of claim 12, wherein the steps are performed as a task concurrently with other input/output tasks.
Claim 18
Dependent Claim 18 words
The method of claim 14, wherein each block being read or modified is locked during the restoration process.
Claim 19
Dependent Claim 32 words
The method of claim 12, further including the step of storing each data modification operation submitted to the redundant array in a non-volatile storage device until the data modification operation is completed.
Claim 20
Dependent Claim 190 words
In a redundant array of storage units, the data storage units having a plurality of stripes each containing a plurality of data blocks and at least one associated redundancy block, control means 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 means being coupled to the array of storage units and including: a. means for accessing all of the data blocks, including the potentially corrupted data block, in each stripe containing the potentially corrupted block; b. means for computing at least one redundancy block from the accessed blocks; c. means for saving the at least one computed redundancy block; d. means for resubmitting the valid data block from the data modification operation to the redundant array of storage units for storage; e. means for updating the at least one saved computed redundancy block; f. means for storing the updated at least one redundancy block and the valid data block in the stripe.
Claim 21
Dependent Claim 190 words
In a redundant array of storage units, the data storage units having a plurality of stripes each containing a plurality of data blocks and at least one associated redundancy block, control means 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 means being coupled to the array of storage units and including: a. means for accessing all of the data blocks, including the potentially corrupted data block, in each stripe containing the potentially corrupted block; b. means for computing at least one redundancy block from the accessed blocks; c. means for saving the at least one computed redundancy block; d. means for resubmitting the valid data block from the data modification operation to the redundant array of storage units for storage; e. means for updating the at least one saved computed redundancy block; f. means for storing the updated at least one redundancy block and the valid data block in the stripe.
Claim 22
Dependent Claim 30 words
The control means of claim 17, wherein at least one redundancy block in each stripe contains parity information, and the parity redundancy block is computed by exclusively-OR's the accessed blocks.
Claim 23
Dependent Claim 62 words
The control means of claim 17, wherein at least one saved computed redundancy block contains parity information, and the means for updating that parity redundancy block includes means for: a. accessing the potentially corrupted data block; and b. exclusively-OR'ing the accessed data block with the saved parity redundancy block and the resubmitted valid data block to generate a new parity redundancy block.
Claim 24
Dependent Claim 22 words
The control means of claim 17, wherein the control means performs the restoration function as a task concurrently with other input/output tasks.
Claim 25
Dependent Claim 21 words
The control means of claim 20, wherein the control means locks each block being read or modified during the restoration operation.
Claim 26
Dependent Claim 30 words
The control means of claim 17, further including a non-volatile storage device for storing each data modification operation submitted to the redundant array until the data modification operation is completed.
Claim 27
Dependent Claim 168 words
In a redundant array of storage units, the data storage units having a plurality of stripes each containing a plurality of data blocks and at least one associated redundancy block, control means 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 means being coupled to the array of storage units and including: a. means for resubmitting the valid data block from the data modification operation to the redundant array of storage units for storage; b. means for accessing all of the uncorrupted data blocks in the stripe containing the potentially corrupted blocks; c. means for computing at least one redundancy block from the accessed blocks and the resubmitted valid data block; d. means for storing the computed at least one redundancy block and the valid data block in the stripe.
Claim 28
Dependent Claim 168 words
In a redundant array of storage units, the data storage units having a plurality of stripes each containing a plurality of data blocks and at least one associated redundancy block, control means 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 means being coupled to the array of storage units and including: a. means for resubmitting the valid data block from the data modification operation to the redundant array of storage units for storage; b. means for accessing all of the uncorrupted data blocks in the stripe containing the potentially corrupted blocks; c. means for computing at least one redundancy block from the accessed blocks and the resubmitted valid data block; d. means for storing the computed at least one redundancy block and the valid data block in the stripe.
Claim 29
Dependent Claim 36 words
The control means of claim 23, wherein at least one redundancy block in each stripe contains parity information, and the parity redundancy block is computed by exclusively-OR'ing the accessed blocks with the resubmitted valid data block.
Claim 30
Dependent Claim 23 words
The control means of claim 23, wherein the control means performs the restoration function as a task concurrently with other input/ output tasks.
Claim 31
Dependent Claim 21 words
The control means of claim 23, wherein the control means locks each block being read or modified during the restoration operation.
Claim 32
Dependent Claim 30 words
The control means of claim 26, further including a non-volatile storage device for storing each data modification operation submitted to the redundant array until the data modification operation is completed.
Claim 33
Dependent Claim 142 words
In a redundant array of storage units, the data storage units having a plurality of stripes each containing a plurality of data blocks and at least one associated redundancy block, control means for on-line 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 means being coupled to the array of storage units and including: a. means for accessing all of the data blocks, including the potentially corrupted data block, in each stripe containing the potentially corrupted blocks; b. means for computing at least one redundancy block from the accessed blocks; c. means for saving the at least one computed redundancy block in the stripe.
Claim 34
Dependent Claim 142 words
In a redundant array of storage units, the data storage units having a plurality of stripes each containing a plurality of data blocks and at least one associated redundancy block, control means for on-line 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 means being coupled to the array of storage units and including: a. means for accessing all of the data blocks, including the potentially corrupted data block, in each stripe containing the potentially corrupted blocks; b. means for computing at least one redundancy block from the accessed blocks; c. means for saving the at least one computed redundancy block in the stripe.
Claim 35
Dependent Claim 30 words
The control means of claim 28, wherein at least one redundancy block in each stripe contains parity information, and the parity redundancy block is computed by exclusively-OR's the accessed blocks.
Claim 36
Dependent Claim 23 words
The control means for claim 28, wherein the control means performs the restoration function as a task concurrently with other input/ output tasks.
Claim 37
Dependent Claim 21 words
The control means of claim 26, wherein the control means locks each block being read or modified during the restoration operation.
Claim 38
Dependent Claim 30 words
The control means of claim 31, further including a non-volatile storage device for storing each data modification operation submitted to the redundant array until the data modification operation is completed.

References Cited (Backward Citations)

No citation records indexed.

USPTO Annuity & Maintenance Windows

Maintenance schedule is calculated for granted US utility patents.

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag