Method for on-line reorganization of the data on a RAID-4 or RAID-5 array in the absence of one disk and the on-line restoration of a replacement disk
DCFirst Claim
1. A method of on-line reorganization of data in a storage system having n+1 disks arranged in a RAID array when one of said disks falls while preserving concurrent access to said array by a user application, each of said disks in said storage system having a plurality of data blocks, a plurality of parity blocks, each parity block associated with n data blocks, a plurality of groups of parity block state bits, each group of parity block state bits indicating that said associated parity block contains parity information or data or the contents are undefined, and a group of array state bits indicating the condition of the array as "normal," "folding," "fully folded" or "unfolding," said method comprising the steps of:
- (a) receiving a read request from said user application to read a targeted data block;
(b) interrogating said array state bits to determine the condition of said array;
(c) if said array state bits indicate said array is in said "normal" state, then proceeding with a read operation;
(d) if said array state bits indicate said array is in said "folding" state, then proceeding with a "folding" read operation;
(e) if said array state bits indicate said array is in said "fully folded" state, then proceeding with a "fully folded" read operation; and
(f) if said array state bits indicate said array is in said "folding" state, then also proceeding with a deliberate process to complete said reorganization concurrently with user application access to said array.
3 Assignments
Litigations
0 Petitions
Accused Products
Abstract
In a storage system having a plurality of disks arranged in a RAID-4 or RAID-5 array, a method of improving the performance and reliability of the array in the absence of a member. The method re-organizes the array into the equivalent of a higher performance and reliability RAID-0 organization while allowing concurrent high performance application access to the array and includes a deliberate reorganization activity concurrent with application access. The method also restores the RAID-4 or RAID-5 organization subsequent to the failure of a member using a replacement member while continuing to allow concurrent high performance application access to the array. In order to perform this reorganization on-line state information is maintained for each parity block, each data block and the array itself. A recently removed disk may be reinserted using an expedited replacement process.
-
Citations
13 Claims
-
1. A method of on-line reorganization of data in a storage system having n+1 disks arranged in a RAID array when one of said disks falls while preserving concurrent access to said array by a user application, each of said disks in said storage system having a plurality of data blocks, a plurality of parity blocks, each parity block associated with n data blocks, a plurality of groups of parity block state bits, each group of parity block state bits indicating that said associated parity block contains parity information or data or the contents are undefined, and a group of array state bits indicating the condition of the array as "normal," "folding," "fully folded" or "unfolding," said method comprising the steps of:
-
(a) receiving a read request from said user application to read a targeted data block; (b) interrogating said array state bits to determine the condition of said array; (c) if said array state bits indicate said array is in said "normal" state, then proceeding with a read operation; (d) if said array state bits indicate said array is in said "folding" state, then proceeding with a "folding" read operation; (e) if said array state bits indicate said array is in said "fully folded" state, then proceeding with a "fully folded" read operation; and (f) if said array state bits indicate said array is in said "folding" state, then also proceeding with a deliberate process to complete said reorganization concurrently with user application access to said array. - View Dependent Claims (2, 3)
-
-
4. A method of on-line reorganization of data in a storage system having n+1 disks arranged in a RAID array when one of said disks fails while preserving concurrent access to said array by a user application, each of said disks in said storage system having a plurality of data blocks, a plurality of data block state bits, each data block state bit associated with one of said data blocks, and having a first state indicating that said associated data block may contain invalid information and a second state indicating that said associated data block contains valid information, a plurality of parity blocks, each parity block associated with n data blocks, a plurality of groups of parity block state bits, each group of parity block state bits indicating that said associated parity block contains parity information or data or the contents are undefined, and a group of array state bits indicating the condition of the array as "normal," "folding," "fully folded" or "unfolding," said method comprising the steps of:
-
(a) receiving a read request from said user application to read a targeted data block; (b) inserting a replacement disk; (c) interrogating said array state bits to determine the state of said array; (d) if said array state bits indicate said array is in said "unfolding" state, then proceeding with an "unfolding" read operation and proceeding with a deliberate process to complete said reorganization concurrently with user application access to said array. - View Dependent Claims (5, 6)
-
-
7. A method of on-line reorganization of data in a storage system having n+1 disks arranged in a RAID array when one of said disks fails while preserving concurrent access to said array by a user application, each of said disks in said storage system having a plurality of data blocks, a plurality of parity blocks, each parity block associated with n data blocks, a plurality of groups of parity block state bits, each group of parity block state bits indicating that said associated parity block contains parity information or data or the contents are undefined, and a group of array state bits indicating the condition of the array as "normal," "folding," "fully folded" or "unfolding," said method comprising the steps of:
-
(a) receiving a write request from said user application to write to a targeted data block; (b) interrogating said array state bits to determine the condition of said array; (c) if said array state bits indicate said array is in said "normal" state, then proceeding with a write operation; (d) if said array state bits indicate said array is in said "folding" state, then proceeding with a "folding" write operation; (e) if said array state bits indicate said array is in said "fully folded" state, then proceeding with a "fully folded" write operation; and (f) if said array state bits indicate said array is in said "folding" state, then also proceeding with a deliberate process to complete said reorganization concurrently with user application access to said array. - View Dependent Claims (8, 9)
-
-
10. A method of on-line reorganization of data in a storage system having n+1 disks arranged in a RAID array when one of said disks fails while preserving concurrent access to said array by a user application, each of said disks in said storage system having a plurality of data blocks, a plurality of data block state bits, each data block state bit associated with one of said data blocks, each data block state bit having a first state indicating that said associated data block may contain invalid information and a second state indicating that said associated data block contains valid information, a plurality of parity blocks, each parity block associated with n data blocks, a plurality of groups of parity block state bits, each group of parity block state bits indicating that said associated parity block contains parity information or data or the contents are undefined, and a group of array state bits indicating the condition of the array as "normal," "folding," "fully folded" or "unfolding," said method comprising the steps of:
-
(a) receiving a write request from said user application to write to a targeted data block; (b) inserting a replacement disk; (c) interrogating said array state bits to determine the state of said array; (d) if said array state bits indicate said array is in said "unfolding" state, then proceeding with an "unfolding" write operation and proceeding with a deliberate process to complete said reorganization concurrently with user application access to said array. - View Dependent Claims (11, 12)
-
-
13. A method for the replacement of a recently failed disk in a storage system having n+1 disks arranged in a RAID array, each of said disks in said storage system having a plurality of data blocks, a plurality of data block state bits, each data block state bit associated with one of said data blocks, and having a first state indicating that said associated data block may contain invalid information and a second state indicating that said associated data block contains valid information, a plurality of parity blocks, each parity block associated with n data block, a plurality of groups of parity block state bits, each group of parity block state bits indicating that said associated parity block contains parity information or data or the contents are undefined, and a group of array state bits indicating the condition of the array as "normal," "folding," "fully folded" or "unfolding," said method comprising the steps of:
-
(a) detecting a failed disk; (b) removing said failed disk from the array; (c) setting all parity block status bits to said undefined state on said failed disk; (d) setting to said invalid state all status bits of data blocks having associated parity block status bits in said data or undefined state on said failed disk; (e) inserting said failed disk into said array; and (f) setting said array state bits from folding to unfolding state.
-
Specification