Method, apparatus and program for migrating between striped storage and parity striped storage
First Claim
1. A method for migrating from a non-mirrored, striped storage array that does not use parity to a parity striped storage array, the method comprising:
- adding an additional new functioning drive to existing functioning drives of the non-mirrored, striped storage array to form the parity striped storage array;
for each row in the parity striped storage array, performing the following steps;
reading data from the existing drives;
calculating a parity stripe position for the row;
calculating a parity for the row;
determining whether the parity stripe position is in one of the existing drives;
responsive to determining that the parity stripe position is in one of the existing drives;
writing data from the one of the existing drives that includes the parity stripe position to the new drive; and
writing the parity to the one of the existing drives that includes the parity stripe position.
9 Assignments
0 Petitions
Accused Products
Abstract
A mechanism is provided for migration between stripe storage and redundant parity striped storage. When a disk is added to a disk array, the mechanism migrates from RAID 0 to RAID 5. For each row, the mechanism calculates parity for the row and, if the parity position is not the new drive, the mechanism writes the data from the parity position to the new drive and writes the parity to the parity stripe position. If a drive fails, the mechanism migrates back from RAID 5 to RAID 0. For each row, if the parity position is not the failed drive, reads the data from remaining drives, XORs the data stripes to get failed drive data, and writes the failed drive data to the parity position. If a read or write is received for the failed drive, the mechanism simply redirects the read or write to the parity position.
-
Citations
22 Claims
-
1. A method for migrating from a non-mirrored, striped storage array that does not use parity to a parity striped storage array, the method comprising:
-
adding an additional new functioning drive to existing functioning drives of the non-mirrored, striped storage array to form the parity striped storage array; for each row in the parity striped storage array, performing the following steps; reading data from the existing drives; calculating a parity stripe position for the row; calculating a parity for the row; determining whether the parity stripe position is in one of the existing drives; responsive to determining that the parity stripe position is in one of the existing drives; writing data from the one of the existing drives that includes the parity stripe position to the new drive; and writing the parity to the one of the existing drives that includes the parity stripe position. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for restoring a modified non-mirrored striped storage array that does not use parity from a degraded parity striped storage array by removing a failed drive from the degraded parity striped storage array to form the modified, non-mirrored striped storage array, the method comprising:
-
for each row in the degraded parity striped storage array, performing the following steps; calculating a parity stripe position for the row; determining whether the parity stripe position is in the failed drive; responsive to the parity stripe position not being in the failed drive, reading data from the row and using the data to determine failed drive data for the row; writing the failed drive data to a drive that includes the parity stripe position; and wherein the modified, non-mirrored striped storage array is formed after failed drive data is written into the parity stripe position for each row. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A data processing system, comprising:
-
a host; a storage adapter; and a non-mirrored striped storage array that does not use parity, wherein the host is connected to the non-mirrored striped storage array using the storage adapter, wherein the host migrates to a parity striped storage array from the non-mirrored striped storage array by performing the following; adding an additional new functioning drive to existing functioning drives of the non-mirrored, striped storage array to form the parity striped storage array; for each row in the parity striped storage array, performing the following steps; reading data from the existing drives; calculating a parity stripe position for the row; calculating a parity for the row; determining whether the parity stripe position is in one of the existing drives; responsive to determining that the parity stripe position is in one of the existing drives; writing data from the one of the existing drives that includes the parity stripe position to the new drive; and writing the parity to the one of the existing drives that includes the parity stripe position. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A data processing system, comprising:
-
a host; a storage adapter; and a degraded parity striped storage array, wherein the host is connected to the striped storage array using the storage adapter, wherein the host restores a modified non-mirrored striped storage array that does not use parity from the degraded parity striped storage array, by removing a failed drive from the degraded parity striped storage array to form the modified, non-mirrored striped storage array, by performing the following; for each row in the degraded parity striped storage array, performing the following steps; calculating a parity stripe position for the row; determining whether the parity stripe position is in the failed drive; response to the parity stripe position not being in the failed drive, reading data from the row and using the data to determine failed drive data for the row; writing the failed drive data to a drive that includes the parity stripe position; and wherein the modified, non-mirrored striped storage array is formed after failed drive data is written into the parity stripe position for each row. - View Dependent Claims (17, 18, 19, 20)
-
-
21. A computer readable medium having a computer program product for migrating from a non-mirrored striped storage array that does not use parity to a parity striped storage array, an additional new functioning drive being added to existing functioning drives of the non-mirrored striped storage array to form the parity striped storage array, the computer program product comprising:
instructions for performing the following steps for each row in the parity striped storage array; reading data from the existing drives; calculating a parity stripe position for the row; calculating a parity for the row; determining whether the parity stripe position is in one of the existing drives; responsive to determining that the parity stripe position is in one of the existing drives; writing data from the one of the existing drives that includes the parity stripe position to the new drive; and writing the parity to the one of the existing drives that includes the parity stripe position.
-
22. A computer readable medium having a computer program product for restoring a modified non-mirrored striped storage array that does not use parity from a degraded parity striped storage array by removing a failed drive from the degraded parity striped storage array to form the modified, non-mirrored striped storage array, the computer program product comprising:
-
instructions for performing the following steps for each row in the degraded parity striped storage array; calculating a parity stripe position for the row; determining whether the parity stripe position is in the failed drive; responsive to the parity stripe position not being in the failed drive, reading data from the row and using the data to determine failed drive data for the row; writing the failed drive data to a drive that included the parity stripe position; and wherein the modified, non-mirrored striped storage array is formed after failed drive data is written into the parity stripe position for each row.
-
Specification