System for changing the parity structure of a raid array
First Claim
1. A method for altering a parity structure of parity groups, wherein a parity group consists of a set of data blocks and parity data for the data blocks, wherein the data and parity data are stored in at least two storage devices, comprising the steps of:
- for each N, wherein N is an integer value greater than or equal to zero, performing the steps of;
(i) altering with a first processing unit the parity structure of the Nth set of parity groups, wherein a set of parity groups includes at least one parity group;
(ii) determining with the second processing unit an Nth range of parity groups including the Nth set of parity groups;
(iii) detecting whether the first processing unit fails while altering the parity structure of the parity groups in the Nth range; and
(iv) after determining that the first processing unit failed, processing with the second processing the parity groups in the determined Nth range to determine a parity group whose parity structure was being altered when the first processing unit failed.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed is a system for altering the structure of parity groups, e.g., altering the RAID level or number of storage devices included in the RAID array. A parity group consists of a set of data blocks and parity data for the data blocks. The data and parity data are stored in at least two storage devices. The first processing unit alters the parity structure of an Nth set of parity groups, wherein N is an integer value greater than or equal to zero. A set of parity groups includes at least one parity group. The second processing unit determines an Nth range of parity groups including the Nth set of parity groups. After detecting the failure of the first processing unit while altering the parity structure of the parity groups in the Nth set, the second processing unit processes the parity groups in the determined Nth range to determine a parity group whose parity structure was being altered when the first processing unit failed.
121 Citations
25 Claims
-
1. A method for altering a parity structure of parity groups, wherein a parity group consists of a set of data blocks and parity data for the data blocks, wherein the data and parity data are stored in at least two storage devices, comprising the steps of:
-
for each N, wherein N is an integer value greater than or equal to zero, performing the steps of;
(i) altering with a first processing unit the parity structure of the Nth set of parity groups, wherein a set of parity groups includes at least one parity group;
(ii) determining with the second processing unit an Nth range of parity groups including the Nth set of parity groups;
(iii) detecting whether the first processing unit fails while altering the parity structure of the parity groups in the Nth range; and
(iv) after determining that the first processing unit failed, processing with the second processing the parity groups in the determined Nth range to determine a parity group whose parity structure was being altered when the first processing unit failed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
receiving with the second processing unit a request for a data block;
determining with the second processing unit whether the requested data block is in the determined Nth range of parity groups; and
accessing the requested data block, with the second processing unit, to process the request after determining that the requested data block is in the determined Nth range of parity groups, wherein the second processing unit sends the second message to the first processing unit after accessing the requested data blocks.
-
-
8. The method of claim 6, further including the steps of:
-
maintaining with the second processing unit information on a first parity structure comprised of the parity structure before the first processing unit alters the parity structure and a second parity structure comprising the parity structure as altered by the first processing unit;
receiving with the second processing unit a request for a data block after sending the second message to the first processing unit;
determining with the second processing unit whether the requested data block is in the determined Nth range of parity groups being altered by the first processing unit;
accessing the requested data block with the second processing unit according to the information on the second parity structure after determining that the requested data block precedes the determined Nth range of parity groups;
accessing the requested data block with the second processing unit according to the information on the first parity structure after determining that the requested data block succeeds the determined Nth range of parity groups; and
delaying accessing the requested data block after determining that the requested data block is within the determined range of parity groups until the parity structure of the parity group for the requested data block is altered to the second parity structure.
-
-
9. The method of claim 1, wherein the N sets of parity groups include a fixed number of parity groups, wherein prior to altering the structure of the Nth set of parity groups for N greater than zero, the second processing unit determines the Nth range of parity groups by incrementing a first limit number and a second limit number by the fixed number, wherein the Nth set of parity groups to be altered are included in the range defined by the incremented first and second limit numbers.
-
10. A system for altering the structure of parity groups, wherein a parity group consists of a set of data blocks and parity data for the data blocks;
-
a storage system storing the data and parity data;
a first processing unit;
a second processing unit;
a network providing communication among the storage system, the first processing unit, and the second processing unit;
a first memory device associated with the first processing unit, wherein the first memory device stores progress information indicating a parity group in an Nth set of parity groups, wherein N is an integer value greater than or equal to zero, wherein for each N, the first processing unit alters the parity structure of the Nth parity group indicated in the progress information; and
a second memory device associated with the second processing unit, wherein the second memory device stores information on an Nth range of parity groups including the Nth set of parity groups, and wherein after detecting the failure of the first processing unit while altering the structure of a parity group in the Nth range of parity groups, the second processing unit processes the parity groups in the Nth range to determine the parity group whose structure was being altered when the first processing unit failed. - View Dependent Claims (11, 12, 13, 14, 15, 16)
receive a request for a data block;
determine whether the requested data block is in the determined Nth range of parity groups; and
access the requested data block from the storage system to process the request after determining that the requested data block is in the determined Nth range of parity groups, wherein the second processing unit sends the second message to the first processing unit after accessing the requested data blocks.
-
-
17. An article of manufacture for use in programming a first and second processing units to alter a parity structure of parity groups, wherein a parity group consists of a set of data blocks and parity data for the data blocks, wherein the data and parity data are stored in at least two storage devices, the article of manufacture comprising at least one computer readable storage device including at least one computer program embedded therein that causes the first and second processing units to perform the steps of:
-
for each N, wherein N is an integer value greater than or equal to zero, performing the steps of;
(i) altering with a first processing unit the parity structure of an Nth set of parity groups, wherein a set of parity groups includes at least one parity group;
(ii) determining with the second processing unit an Nth range of parity groups including the Nth set of parity groups;
(iii) detecting whether the first processing unit fails while altering the parity structure of the parity groups in the Nth range; and
(iv) after determining that the first processing unit failed, processing with the second processing the parity groups in the determined Nth range to determine a parity group whose parity structure was being altered when the first processing unit failed. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25)
receiving with the second processing unit a request for a data block;
determining with the second processing unit whether the requested data block is in the determined Nth range of parity groups; and
accessing the requested data block, with the second processing unit, to process the request after determining that the requested data block is in the determined Nth range of parity groups, wherein the second processing unit sends the second message to the first processing unit after accessing the requested data blocks.
-
-
24. The article of manufacture of claim 22, further including the steps of:
-
maintaining with the second processing unit information on a first parity structure comprised of the parity structure before the first processing unit alters the parity structure and a second parity structure comprising the parity structure as altered by the first processing unit;
receiving with the second processing unit a request for a data block after sending the second message to the first processing unit;
determining with the second processing unit whether the requested data block is in the determined Nth range of parity groups being altered by the first processing unit;
accessing the requested data block with the second processing unit according to the information on the second parity structure after determining that the requested data block precedes the determined Nth range of parity groups;
accessing the requested data block with the second processing unit according to the information on the first parity structure after determining that the requested data block succeeds the determined Nth range of parity groups; and
delaying accessing the requested data block after determining that the requested data block is within the determined range of parity groups until the parity structure of the parity group for the requested data block is altered to the second parity structure.
-
-
25. The article of manufacture of claim 17, wherein the N sets of parity groups include a fixed number of parity groups, wherein prior to altering the structure of the Nth set of parity groups for N greater than zero, the second processing unit determines the Nth range of parity groups by incrementing a first limit number and a second limit number by the fixed number, wherein the Nth set of parity groups to be altered are included in the range defined by the incremented first and second limit numbers.
Specification