← Back to Patent Explorer
US5613059A Expired / Lapsed US ⏱️ 0.0 years remaining

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

Assignee: EMC Corp
•
Filing: 1994-12-01
•
Granted: 1997-03-18
•
Expires: 2014-12-01
📄 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 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.

Inventors

  • 👤 David C. Stallmo
  • 👤 William A. Brant
  • 👤 David Gordon

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 13:44
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: 70
Claim 1
Independent Claim 239 words
A storage device readable by a programmable control device when coupled to the storage device, the storage device containing a control program tangibly stored thereon, such that the control device is operated by the control program when the storage device is read by the control device, the control device being operated to control a coupled 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 program being configured to operate the control device to perform restoration of a valid data block and at least one associated redundancy block to at least each affected data storage unit stripe after a potential corruption in either type of block during a data modification operation, such restoration being performed by the combination of the control program and the control device to perform the function 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 239 words
A storage device readable by a programmable control device when coupled to the storage device, the storage device containing a control program tangibly stored thereon, such that the control device is operated by the control program when the storage device is read by the control device, the control device being operated to control a coupled 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 program being configured to operate the control device to perform restoration of a valid data block and at least one associated redundancy block to at least each affected data storage unit stripe after a potential corruption in either type of block during a data modification operation, such restoration being performed by the combination of the control program and the control device to perform the function 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 42 words
A storage device as set forth in claim 1, wherein at least one redundancy block in each stripe contains parity information, the control program being further configured to perform the function of computing the parity redundancy block by exclusively-OR'ing the accessed blocks.
Claim 4
Dependent Claim 71 words
A storage device as set forth in claim 1, wherein at least one redundancy block contains parity information, the control program being further configured to perform the step of updating that parity redundancy block by performing the function of: (a) accessing the potentially corrupted data block; (b) generating a new parity redundancy block by exclusively-OR'ing the accessed data block with the saved parity redundancy block and the resubmitted valid data block.
Claim 5
Dependent Claim 31 words
A storage device as set forth in claim 1, the control program being further configured to operate the control device to perform restoration as a task concurrently with other input/output tasks.
Claim 6
Dependent Claim 29 words
A storage device as set forth in claim 4, the control program being further configured to perform the function of locking each block being read or modified during restoration.
Claim 7
Dependent Claim 49 words
A storage device as set forth in claim 1, the control program being further configured to perform the function of storing each data modification operation submitted to the redundant array to a non-volatile storage device coupled to the control device at least until the data modification operation is completed.
Claim 8
Dependent Claim 74 words
A storage device as set forth in claim 1, the control program being further configured to operate the control device to perform restoration as a task concurrently with other read operations during which data is read from data storage units by the control device, and write operations during which data is written to the data storage units by the control device, such other read and write operations being essentially unrelated to the restoration operation.
Claim 9
Dependent Claim 232 words
A storage device readable by a programmable control device when coupled to the storage device, the storage device containing a control program tangibly stored thereon, such that the control device is operated by the control program when the storage device is read by the control device, the control device being operated to control a coupled 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 program being configured to operate the control device to perform restoration of a valid data block and at least one associated redundancy block to at least each affected data storage unit stripe after a potential corruption in either type of block during a data modification operation, such restoration being performed by the combination of the control program and the control device to perform the function 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.
Claim 10
Dependent Claim 232 words
A storage device readable by a programmable control device when coupled to the storage device, the storage device containing a control program tangibly stored thereon, such that the control device is operated by the control program when the storage device is read by the control device, the control device being operated to control a coupled 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 program being configured to operate the control device to perform restoration of a valid data block and at least one associated redundancy block to at least each affected data storage unit stripe after a potential corruption in either type of block during a data modification operation, such restoration being performed by the combination of the control program and the control device to perform the function 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.
Claim 11
Dependent Claim 48 words
A storage device as set forth in claim 8, wherein at least one redundancy block in each stripe contains parity information, the control program being further configured to perform the function of computing the parity redundancy block by exclusively-OR'ing the accessed blocks with the resubmitted valid data block.
Claim 12
Dependent Claim 29 words
A storage device as set forth in claim 8, the control program being further configured to perform the function of locking each block being read or modified during restoration.
Claim 13
Dependent Claim 49 words
A storage device as set forth in claim 8, the control program being further configured to perform the function of storing each data modification operation submitted to the redundant array in a non-volatile storage device coupled to the control system at least until the data modification operation is completed.
Claim 14
Dependent Claim 197 words
A storage device readable by a programmable control device when coupled to the storage device, the storage device containing a control program tangibly stored thereon, such that the control device is operated by the control program when the storage device is read by the control device, the control device being operated to control a coupled 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 program being configured to operate the control device to perform restoration of at least one valid redundancy block to at least each affected data storage unit stripe after a potential corruption in a data block and/or in such redundancy blocks in such stripes during a data modification operation, such restoration being performed by the combination of the control program and the control device to perform the function 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 197 words
A storage device readable by a programmable control device when coupled to the storage device, the storage device containing a control program tangibly stored thereon, such that the control device is operated by the control program when the storage device is read by the control device, the control device being operated to control a coupled 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 program being configured to operate the control device to perform restoration of at least one valid redundancy block to at least each affected data storage unit stripe after a potential corruption in a data block and/or in such redundancy blocks in such stripes during a data modification operation, such restoration being performed by the combination of the control program and the control device to perform the function 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 43 words
A storage device as set forth in claim 12, wherein at least one redundancy block in each stripe contains parity information, the control program being further configured to perform the function of computing the parity redundancy block by exclusively OR'ing the accessed blocks.
Claim 17
Dependent Claim 31 words
A storage device as set forth in claim 12, the control program being further configured to operate the control device to perform restoration as a task concurrently with other input/output tasks.
Claim 18
Dependent Claim 29 words
A storage device as set forth in claim 12, the control program being further configured to perform the function of locking each block being read or modified during restoration.
Claim 19
Dependent Claim 49 words
A storage device as set forth in claim 12, the control program being further configured to perform the function of storing each data modification operation submitted to the redundant array in a non-volatile storage device coupled to the control system at least until the data modification operation is completed.
Claim 20
Dependent Claim 74 words
A storage device as set forth in claim 12, the control program being further configured to operate the control device to perform restoration as a task concurrently with other read operations during which data is read from data storage units by the control device, and write operations during which data is written to the data storage units by the control device, such other read and write operations being essentially unrelated to the restoration operation.
Claim 21
Dependent Claim 229 words
A control program tangibly stored on a storage device readable by a programmable control device, such that the control device is operated by the control program when the storage device is read by the control device, the control device being operated to control a coupled 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 program being configured to operate the control device to perform restoration of a valid data block and at least one associated redundancy block to at least each affected data storage unit stripe after a potential corruption in either type of block during a data modification operation, such restoration being performed by the combination of the control program and the control device to perform the function 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 22
Dependent Claim 229 words
A control program tangibly stored on a storage device readable by a programmable control device, such that the control device is operated by the control program when the storage device is read by the control device, the control device being operated to control a coupled 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 program being configured to operate the control device to perform restoration of a valid data block and at least one associated redundancy block to at least each affected data storage unit stripe after a potential corruption in either type of block during a data modification operation, such restoration being performed by the combination of the control program and the control device to perform the function 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 23
Dependent Claim 42 words
A control program as set forth in claim 18, wherein at least one redundancy block in each stripe contains parity information, the control program being further configured to perform the function of computing the parity redundancy block by exclusively-OR'ing the accessed blocks.
Claim 24
Dependent Claim 71 words
A control program as set forth in claim 18, wherein at least one redundancy block contains parity information, the control program being further configured to perform the step of updating that parity redundancy block by performing the function of: (a) accessing the potentially corrupted data block; (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 25
Dependent Claim 31 words
A control program as set forth in claim 18, the control program being further configured to operate the control device to perform restoration as a task concurrently with other input/output tasks.
Claim 26
Dependent Claim 28 words
A control program as set forth in claim 21, the control program being further configured to perform the function locking each block being read or modified during restoration.
Claim 27
Dependent Claim 54 words
A control program as set forth in claim 18, the data storage system further comprising a non-volatile storage device, the control program being further configured to perform the function of storing each data modification operation submitted to the redundant array in the non-volatile storage device at least until the data modification operation is completed.
Claim 28
Dependent Claim 74 words
A storage device as set forth in claim 18, the control program being further configured to operate the control device to perform restoration as a task concurrently with other read operations during which data is read from data storage units by the control device, and write operations during which data is written to the data storage units by the control device, such other read and write operations being essentially unrelated to the restoration operation.
Claim 29
Dependent Claim 222 words
A control program tangibly stored on a storage device readable by a programmable control device, such that the control device is operated by the control program when the storage device is read by the control device, the control device being operated to control a coupled 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 program being configured to operate the control device to perform restoration of a valid data block and at least one associated redundancy block to at least each affected data storage unit stripe after a potential corruption in either type of block during a data modification operation, such restoration being performed by the combination of the control program and the control device to perform the function 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.
Claim 30
Dependent Claim 222 words
A control program tangibly stored on a storage device readable by a programmable control device, such that the control device is operated by the control program when the storage device is read by the control device, the control device being operated to control a coupled 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 program being configured to operate the control device to perform restoration of a valid data block and at least one associated redundancy block to at least each affected data storage unit stripe after a potential corruption in either type of block during a data modification operation, such restoration being performed by the combination of the control program and the control device to perform the function 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.
Claim 31
Dependent Claim 48 words
A control program as set forth in claim 25, wherein at least one redundancy block in each stripe contains parity information, the control program being further configured to perform the function of computing the parity redundancy block by exclusively-OR'ing the accessed blocks with the resubmitted valid data block.
Claim 32
Dependent Claim 29 words
A control program as set forth in claim 25, the control program being further configured to perform the function of locking each block being read or modified during restoration.
Claim 33
Dependent Claim 54 words
A control program as set forth in claim 25, the data storage system further comprising a non-volatile storage device, the control program being further configured to perform the function of storing each data modification operation submitted to the redundant array in the non-volatile storage device at least until the data modification operation is completed.
Claim 34
Dependent Claim 187 words
A control program tangibly stored on a storage device readable by a programmable control device, such that the control device is operated by the control program when the storage device is read by the control device, the control device being operated to control a coupled 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 program being configured to operate the control device to perform restoration of at least one valid redundancy block to at least each affected data storage unit stripe after a potential corruption in a data block and/or in such redundancy blocks in such stripes during a data modification operation, such restoration being performed by the combination of the control program and the control device to perform the function 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 35
Dependent Claim 187 words
A control program tangibly stored on a storage device readable by a programmable control device, such that the control device is operated by the control program when the storage device is read by the control device, the control device being operated to control a coupled 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 program being configured to operate the control device to perform restoration of at least one valid redundancy block to at least each affected data storage unit stripe after a potential corruption in a data block and/or in such redundancy blocks in such stripes during a data modification operation, such restoration being performed by the combination of the control program and the control device to perform the function 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 36
Dependent Claim 43 words
A control program as set forth in claim 29, wherein at least one redundancy block in each stripe contains parity information, the control program being further configured to perform the function of computing the parity redundancy block by exclusively OR'ing the accessed blocks.
Claim 37
Dependent Claim 31 words
A control program as set forth in claim 29, the control program being further configured to operate the control device to perform restoration as a task concurrently with other input/output tasks.
Claim 38
Dependent Claim 29 words
A control program as set forth in claim 29, the control program being further configured to perform the function of locking each block being read or modified during restoration.
Claim 39
Dependent Claim 54 words
A control program as set forth in claim 29, the data storage system further including a non-volatile storage device, the control program being further configured to perform the function of storing each data modification operation submitted to the redundant array in the non-volatile storage device at least until the data modification operation is completed.
Claim 40
Dependent Claim 74 words
A storage device as set forth in claim 29, the control program being further configured to operate the control device to perform restoration as a task concurrently with other read operations during which data is read from data storage units by the control device, and write operations during which data is written to the data storage units by the control device, such other read and write operations being essentially unrelated to the restoration operation.
Claim 41
Independent Claim 249 words
A method for on-line restoration of potentially invalid data stored in one or more physical blocks of storage comprising a portion of a plurality of physical blocks of storage and wherein at least one of said physical blocks of storage in said plurality of physical blocks of storage contains redundancy information associated with data stored in said plurality of physical blocks of storage in a computer system including a computer storage subsystem comprising an array of data storage units and wherein said plurality of physical blocks of storage containing data and redundancy information are arranged at a first set of predetermined positions in at least one first storage stripe across a subset of said data storage units in said array, said method comprising the steps of: accessing data corresponding to data stored in said plurality of physical blocks of storage in said at least one first storage stripe; computing an interim value for said associated redundancy information for said accessed data; resubmitting valid data corresponding to said potentially invalid data; recomputing an updated value for said associated redundancy information from said potentially invalid data, said interim value for said associated redundancy information, and said valid data; and storing data corresponding to said valid data and data corresponding to said updated value for said associated redundancy information to storage locations in said computer system corresponding to a second set of predetermined positions in at least one second storage stripe across a subset of said data storage units in said array.
Claim 42
Independent Claim 249 words
A method for on-line restoration of potentially invalid data stored in one or more physical blocks of storage comprising a portion of a plurality of physical blocks of storage and wherein at least one of said physical blocks of storage in said plurality of physical blocks of storage contains redundancy information associated with data stored in said plurality of physical blocks of storage in a computer system including a computer storage subsystem comprising an array of data storage units and wherein said plurality of physical blocks of storage containing data and redundancy information are arranged at a first set of predetermined positions in at least one first storage stripe across a subset of said data storage units in said array, said method comprising the steps of: accessing data corresponding to data stored in said plurality of physical blocks of storage in said at least one first storage stripe; computing an interim value for said associated redundancy information for said accessed data; resubmitting valid data corresponding to said potentially invalid data; recomputing an updated value for said associated redundancy information from said potentially invalid data, said interim value for said associated redundancy information, and said valid data; and storing data corresponding to said valid data and data corresponding to said updated value for said associated redundancy information to storage locations in said computer system corresponding to a second set of predetermined positions in at least one second storage stripe across a subset of said data storage units in said array.
Claim 43
Dependent Claim 34 words
The method of claim 35 wherein said step of accessing is carried out by the step of: reading said data from the plurality of storage blocks in said data storage units in said array.
Claim 44
Dependent Claim 70 words
The method of claim 35 wherein said step of accessing comprises the step of: determining at least one alternative non-volatile storage location within said computer system wherein a portion of said data corresponding to data stored in said plurality of physical blocks of storage in said at least one first storage stripe is maintained; and reading said portion of said data from said at least one alternative non-volatile storage location.
Claim 45
Dependent Claim 70 words
The method of claim 35 wherein said step of accessing comprises the step of: determining at least one alternative volatile storage location within said computer system wherein a portion of said data corresponding to data stored in said plurality of physical blocks of storage in said at least one first storage stripe is maintained; and reading said portion of said data from said at least one alternative volatile storage location.
Claim 46
Dependent Claim 40 words
The method of claim 35 wherein said step of computing is carried out by the step of: XORing blocks of data corresponding to data stored in said first storage stripe to provide said interim value for said associated redundancy information.
Claim 47
Dependent Claim 42 words
The method of claim 35 wherein said step of resubmitting is carried out by the step of: reattempting a previous data modification operation which resulted in said potentially invalid data; and completing said previous data modification operation to provide said valid data.
Claim 48
Dependent Claim 22 words
The method of claim 40 further comprising the step of: storing data indicative of said previous data modification operation in non-volatile storage.
Claim 49
Dependent Claim 44 words
The method of claim 35 wherein said step of recomputing is carried out by the step of: XORing said potentially invalid data, said interim value for said associated redundancy information, and said valid data, to provide said updated value for said associated redundancy information.
Claim 50
Dependent Claim 22 words
The method of claim 42 further comprising the step of: storing said updated value for said associated redundancy information in non-volatile storage.
Claim 51
Dependent Claim 50 words
The method of claim 35 wherein said step of storing is carried out by the step of: writing said valid data and said updated value for said associated redundancy information to said data storage units at said second set of predetermined positions in said at least one second storage stripe.
Claim 52
Dependent Claim 39 words
The method of claim 35 wherein said steps of computing and recomputing are carried out by a computer mass storage device controller operatively coupling said array of data storage units to a central processor unit of said computer system.
Claim 53
Dependent Claim 30 words
The method of claim 45 wherein said steps of accessing and storing are further carried out by said computer mass storage device controller and said array of data storage units.
Claim 54
Dependent Claim 31 words
The method of claim 35 wherein said steps of accessing, computing, resubmitting, recomputing and storing are carried out substantially concurrently with other input/output tasks of said computer mass storage device subsystem.
Claim 55
Dependent Claim 27 words
The method of claim 35 further comprising the step of: preventing access by other input/output processes to each storage block being accessed during said on-line restoration process.
Claim 56
Dependent Claim 53 words
The method of claim 35 wherein said first set of predetermined positions in said at least one first storage stripe across a subset of said data storage units is identical to said second set of predetermined positions in said at least one second storage stripe across a subset of said data storage units.
Claim 57
Independent Claim 227 words
A method for on-line restoration of potentially invalid data stored in one or more physical blocks of storage comprising a portion of a plurality of physical blocks of storage and wherein at least one physical block of storage in said plurality of physical blocks of storage contains redundancy information associated with the data stored in said plurality of physical blocks of storage in a computer mass storage subsystem comprising an array of data storage units and wherein said plurality of physical blocks of storage containing data and redundancy information are arranged at a first set of predetermined positions in at least one first storage stripe across a subset of said data storage units in said array, said method comprising the steps of: accessing data corresponding to known valid data stored in said plurality of physical blocks of storage in said at least one first storage stripe; resubmitting valid data corresponding to said potentially invalid data; computing an updated value for said associated redundancy information from said accessed data and said valid data; and storing data corresponding to said valid data and data corresponding to said updated value for said associated redundancy information to storage locations in said computer mass storage subsystem corresponding to a second set of predetermined positions in at least one second storage stripe across a subset of said data storage units in said array.
Claim 58
Independent Claim 227 words
A method for on-line restoration of potentially invalid data stored in one or more physical blocks of storage comprising a portion of a plurality of physical blocks of storage and wherein at least one physical block of storage in said plurality of physical blocks of storage contains redundancy information associated with the data stored in said plurality of physical blocks of storage in a computer mass storage subsystem comprising an array of data storage units and wherein said plurality of physical blocks of storage containing data and redundancy information are arranged at a first set of predetermined positions in at least one first storage stripe across a subset of said data storage units in said array, said method comprising the steps of: accessing data corresponding to known valid data stored in said plurality of physical blocks of storage in said at least one first storage stripe; resubmitting valid data corresponding to said potentially invalid data; computing an updated value for said associated redundancy information from said accessed data and said valid data; and storing data corresponding to said valid data and data corresponding to said updated value for said associated redundancy information to storage locations in said computer mass storage subsystem corresponding to a second set of predetermined positions in at least one second storage stripe across a subset of said data storage units in said array.
Claim 59
Dependent Claim 34 words
The method of claim 50 wherein said step of accessing is carried out by the step of: reading said data from the plurality of storage blocks in said data storage units in said array.
Claim 60
Dependent Claim 74 words
The method of claim 50 wherein said step of accessing includes the step of: determining at least one alternative non-volatile storage location within said computer mass storage subsystem wherein a portion of said data corresponding to said known valid data stored in said plurality of physical storage blocks in said at least one first storage stripe is maintained; and reading said portion of said data from said at least one alternative non-volatile storage location.
Claim 61
Dependent Claim 74 words
The method of claim 50 wherein said step of accessing includes the step of: determining at least one alternative volatile storage location within said computer mass storage subsystem wherein a portion of said data corresponding to said known Valid data stored in said plurality of physical storage blocks in said at least one first storage stripe is maintained; and reading said portion of said data from said at least one alternative volatile storage location.
Claim 62
Dependent Claim 44 words
The method of claim 50 wherein said step of computing is carried out by the step of: XORing blocks of data corresponding to said accessed data and data corresponding to said resubmitted valid data to provide said updated value for said associated redundancy information.
Claim 63
Dependent Claim 42 words
The method of claim 50 wherein said step of resubmitting is carried out by the step of: reattempting a previous data modification operation which resulted in said potentially invalid data; and completing said previous data modification operation to provide said valid data.
Claim 64
Dependent Claim 22 words
The method of claim 55 further comprising the step of: storing data indicative of said previous data modification operation in non-volatile storage.
Claim 65
Dependent Claim 51 words
The method of claim 50 wherein said step of storing is carried out by the step of: writing said valid resubmitted data and said updated value for said associated redundancy information to said data storage units at said second set of predetermined positions in said at least one second storage stripe.
Claim 66
Dependent Claim 33 words
The method of claim 50 wherein said step of computing is carried out by a computer mass storage device controller operatively coupling said array of data storage units to a central processor unit.
Claim 67
Dependent Claim 30 words
The method of claim 58 wherein said steps of accessing and storing are further carried out by said computer mass storage device controller and said array of data storage units.
Claim 68
Dependent Claim 30 words
The method of claim 50 wherein said steps of accessing, resubmitting, computing and storing are carried out substantially concurrently with other input/output tasks of said computer mass storage device subsystem.
Claim 69
Dependent Claim 27 words
The method of claim 50 further comprising the step of: preventing access by other input/output processes to each storage block being accessed during said on-line restoration process.
Claim 70
Dependent Claim 53 words
The method of claim 50 wherein said first set of predetermined positions in said at least one first storage stripe across a subset of said data storage units is identical to said second set of predetermined positions in said at least one second storage stripe across a subset of said data storage units.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-03-17 2000-09-16 2001-03-18 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-03-17 2004-09-16 2005-03-18 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-03-17 2008-09-16 2009-03-18 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag