Disc array apparatus checking and restructuring data read from attached disc drives
First Claim
1. A disc array apparatus of RAID level 3 comprising:
- a plurality of disc drives; and
a disc array controlling device controlling data read and write operations by operating in parallel said disc drives, dividing host data input to said disc array controlling device, generating first parity data from the divided data, writing the divided data into disc drives of the plurality of disc drives storing data, and writing said first parity data into one of the plurality of disc drives storing parity of said plurality of disc drives, said disc array controlling device comprising;
data write controlling means for adding cyclic redundancy check information to said host data, for dividing the host data including cyclic redundancy check information, and for generating the first parity data from the divided data to control the write operation to each disc drive;
parity checking means for generating second parity data from the divided data read from said disc drive, and for performing a parity check by comparing said first parity data with the second parity data read from said disc drive storing parity;
host data restructuring means for making a first assumption that, when contradiction is found in comparing of the first parity data with the second parity data during the parity check by said parity checking means, that erroneous data is stored in one of said plurality of disc drives, and for sequentially restructuring, in accordance with the first assumption, the host data from the data stored by the disc drives other than said disc drive assumed to be storing said erroneous data; and
cyclic redundancy check information checking means for executing a cyclic redundancy check check on the restructured host data, for, when mismatching is found by the cyclic redundancy check on the restructured host data, changing the assumption of which disc drive is storing erroneous data and repeating the cyclic redundancy check on host data restructured in accordance with the changed assumption, and defining, when matching is attained, host data corresponding to the matching as the correct host data.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention relates to a disc array apparatus assuring that even if contradiction is detected in matching of parity data during a read parity check, correct host data is Restructured and can always be transferred to the host. The disc array apparatus of the present invention is particularly applicable to disc drives in the RAID configuration. For example, in a disc array apparatus of the present invention implementing RAID level 3, the disc array apparatus adds CRC data to data transferred from a host computer, divides the data, generates parity from the divided data, and stores the data and the parity data into the disc drives. During a read operation, the disc array apparatus of the present invention executes a read parity check. If contradiction is detected between the parity data stored in the disc drives and the parity data generated during the read parity check, the disc array controller sequentially assumes, one disc drive at a time, that one of the disc drives is storing erroneous data, restructures the host data from the divided data and parity data of the disc drives other than the disc drive storing erroneous data for each assumption, and executes a CRC check on the restructured host data for each assumption. Restructured host data is determined to be correct host data when the CRC check detects no error. The principle of the present invention is also implemented in other RAID levels, and using data such as time or counter value, to determine and restructure erroneous data.
82 Citations
20 Claims
-
1. A disc array apparatus of RAID level 3 comprising:
-
a plurality of disc drives; and a disc array controlling device controlling data read and write operations by operating in parallel said disc drives, dividing host data input to said disc array controlling device, generating first parity data from the divided data, writing the divided data into disc drives of the plurality of disc drives storing data, and writing said first parity data into one of the plurality of disc drives storing parity of said plurality of disc drives, said disc array controlling device comprising; data write controlling means for adding cyclic redundancy check information to said host data, for dividing the host data including cyclic redundancy check information, and for generating the first parity data from the divided data to control the write operation to each disc drive; parity checking means for generating second parity data from the divided data read from said disc drive, and for performing a parity check by comparing said first parity data with the second parity data read from said disc drive storing parity; host data restructuring means for making a first assumption that, when contradiction is found in comparing of the first parity data with the second parity data during the parity check by said parity checking means, that erroneous data is stored in one of said plurality of disc drives, and for sequentially restructuring, in accordance with the first assumption, the host data from the data stored by the disc drives other than said disc drive assumed to be storing said erroneous data; and cyclic redundancy check information checking means for executing a cyclic redundancy check check on the restructured host data, for, when mismatching is found by the cyclic redundancy check on the restructured host data, changing the assumption of which disc drive is storing erroneous data and repeating the cyclic redundancy check on host data restructured in accordance with the changed assumption, and defining, when matching is attained, host data corresponding to the matching as the correct host data.
-
-
2. A disc array apparatus of RAID level 3 comprising:
-
a plurality of disc drives; and a disc array controlling device controlling data read and write operations by operating in parallel said disc drives, dividing host data input to said disc array controlling device, generating parity data from the divided data, writing the divided data into a plurality of disc drives for parity of the plurality of disc drives, said disc array controlling device comprising; data write controlling means for dividing said host data, generating first parity data from said divided data, and adding time data to said divided data and parity data to control a write operation to said disc drives; parity checking means for generating second parity data from the divided data read from said disc drives and executing a parity check by comparing said first parity data with the second parity data read from said disc drive for parity; and host data restructuring means for comparing, when contradiction is found in comparing during the parity check executed by said parity checking means, each time data stored in said plurality of disc drives to define the data corresponding to an oldest time as erroneous data, and restructuring the host data from the data of the plurality of disc drives other than the disc drive storing said erroneous data.
-
-
3. A disc array apparatus of RAID level 5 comprising:
-
a plurality of disc drives; and a disc array controlling device controlling data read and write operations by operating in parallel said disc drives, dividing input host data into units of sectors by said disc array controlling device, generating first parity data from the divided data in order to write said first parity data to one disc drive cyclically selected from said plurality of disc drives, and cyclically selected from said plurality of disc drives, and distributingly writing said divided data to said plurality of disc drives other than the one disc drive to which said first parity data is written, said disc array controlling device comprising; data write controlling means for dividing said host data into units of sectors, generating said first parity data from this divided data and adding time data to said divided data and parity data to control the data writing operation to said plurality of disc drives; parity checking means for generating second parity data from the divided data read from said disc drives and comparing the second parity data with the first parity data read from said plurality of disc drives to execute a parity check; and host data restructuring means for comparing, when contradiction is found in comparing during the parity check by said parity checking means, the time data stored in said plurality of disc drives to define data having an oldest time as erroneous data, and restructuring host data from the data of the plurality of disc drives other than the disc drive storing said erroneous data.
-
-
4. A disc array apparatus of RAID level 1 comprising:
-
two disc drives; and a disc array controlling device controlling data write/read operations by operating in parallel the disc drives to write the input host data into said two disc drives, said disc array controlling device comprising; data write controlling means for controllably writing said host data with an addition of time data to said disc drives; and data read controlling means for comparing the data read from said two disc drives and searching, when the data are mismatched, the time data stored in said two disc drives to define the data having a latest time as correct data.
-
-
5. A disc array apparatus of RAID level 3 comprising:
-
a plurality of disc drives; and a disc array controlling device controlling data read and write operations by operating in parallel said plurality of disc drives, dividing host data input to said disc array controlling device, generating parity data from the divided data, writing the divided data into a plurality of disc drives for data, and writing said parity data into one disc drive for parity of the plurality of disc drives, said disc array controlling device comprising; an update counter sequentially updating and outputting a counter value; data write controlling means for dividing said host data, generating first parity data from said divided data, and adding said counter value to said divided data and parity data to control a write operation to said disc drives; parity checking means for generating second parity data from the divided data read from said disc drives and executing a parity check by comparing said first parity data with the second parity data read from said disc drive for parity; and host data restructuring means for comparing, when contradiction is found in comparing during the parity check executed by said parity checking means, each counter value stored in said plurality of disc drives to define the data corresponding to an oldest counter value as erroneous data, and restructuring the host data from the data of the plurality of disc drives other than the disc drive storing said erroneous data.
-
-
6. A disc array apparatus of RAID level 5 comprising:
-
a plurality of disc drives; and a disc array controlling device controlling data read and write operations by operating in parallel said disc drives, dividing input host data into units of sectors by said disc array controlling device, generating first parity data from the divided data in order to write said first parity data to one disc drive cyclically selected from said plurality of disc drives, and distributingly writing said divided data to said plurality of disc drives other than the one disc drive to which said first parity data is written, said disc array controlling device comprising; an update counter sequentially updating and outputting a counter value; data write controlling means for dividing said host data into units of sectors, generating said first parity data from this divided data and adding the counter value to said divided data and parity data to control the data writing operation to said plurality of disc drives; parity checking means for generating second parity data parity check from the divided data read from said disc drives and comparing the second parity data with the first parity data read from said plurality of disc drives to execute a parity check; and host data restructuring means for comparing, when contradiction is found in comparing during the parity check by said parity checking means, the counter values stored in said plurality of disc drives to define data having an oldest counter value as erroneous data, and restructuring host data from the data of the plurality of disc drives other than the disc drive storing said erroneous data.
-
-
7. A disc array apparatus of RAID level 1 comprising:
-
two disc drives; and a disc array controlling device controlling data write/read operations by operating in parallel the disc drives to write the input host data into said two disc drives, said disc array controlling device comprising; an update counter sequentially updating and outputting a counter value; data write controlling means for controllably writing said host data with an addition of the counter value to said disc drives; and data read controlling means for comparing the data read from said two disc drives and searching, when the data are mismatched, the counter value data stored in said two disc drives to define the data having a latest counter value as correct data.
-
-
8. A disc array controlling device connected to a plurality of data memory devices storing data, a first redundancy information memory device storing first redundancy information of a plurality of data stored in said plurality of data memory devices, and a second redundancy information memory device storing second redundancy information generated based on said plurality of data and said first redundancy information, said disc array controlling device comprising:
-
means for generating, when data is stored into said data memory devices and first redundancy information is stored into said first redundancy information memory device, relevant data including second redundancy information corresponding to the first redundancy information to be stored into said second redundancy information memory device; first means for judging, when reading the data from said plurality of data memory devices, normality of said data based on in second redundancy information stored in said second redundancy information memory device; restructuring means for designating, when said data is judged abnormal, only one memory device among the plurality of memory devices and restructuring data stored in said designated memory device based the information stored in remaining memory devices other than the designated memory device; and second means for judging matching of said restructured data based on the first redundancy information stored in said first redundancy information memory device. - View Dependent Claims (9)
-
-
10. A disc array apparatus coupled to a host computer transmitting a command and comprising:
-
disc drives storing data; and a disc array controlling device, coupled to the host computer and to the disc drives, receiving the command, determining whether the command is one of a write command and a read command, storing data and first parity in the disc drives based on the command if the command is the write command, and if the command is the read command, reading data and the first parity from the disc drives based on the command, determining second parity based on the data read from the disc drives, comparing the first parity and the second parity, transferring the data to the host computer if the second parity is equal to the first parity, and if the second parity is not equal to the first parity, determining which part of the data is erroneous and which other part of the data is valid, restructuring the data based on the first parity and the valid part of the data, verifying the correctness of the restructured data, and transferring the restructured data to the host computer if the result of said verification indicates that the restructured data is correct. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A method for restructuring data stored in a disc array apparatus coupled to a host computer transmitting a command, said method comprising the steps of:
-
storing data in disc drives; and receiving, by a disc array controlling device, the command, determining whether the command is one of a write command and a read command, storing data and first parity in the disc drives based on the command if the command is the write command, and if the command is the read command, reading data and the first parity from the disc drives based on the command, determining second parity based on the data read from the disc drives, comparing the first parity and the second parity, transferring the data to the host computer if the second parity is equal to the first parity, and if the second parity is not equal to the first parity, determining which part of the data is erroneous and which other part of the data is valid, restructuring the data based on the first parity and the valid part of the data, verifying the correctness of the restructured data, and transferring the restructured data to the host computer if the result of said verification indicates that the restructured data is correct. - View Dependent Claims (16, 17)
-
-
18. A disc array apparatus comprising disc drives, said disc array apparatus coupled to and receiving data from a host computer, determining first parity based on the data, and storing the data and the first parity in the disc drives, said disc array apparatus comprising:
a disc array controlling device, coupled to the disc drives and to the host computer, reading the data and the first parity from the disc drives, determining second parity based on the data read from the disc drives, comparing the second parity to the first parity, determining erroneous data of the data read from the disc drives based on a cyclic redundancy check of the data read from the disc drives, and restructuring the data read from the disc drives based upon the first parity and valid data of the data. - View Dependent Claims (19)
-
20. A disc array apparatus coupled to a host computer transmitting a command and comprising:
-
means for storing data; and means for controlling the disc array apparatus for receiving the command, determining whether the command is one of a write command and a read command, storing data and first parity in the means for storing data based on the command if the command is the weather command, and if the command is the read command, reading data and the first parity from the means for storing data based on the command, determining second parity based on the data read from the means for storing data, comparing the first parity and the second parity, transferring the data to the host computer if the second parity is equal to the first parity, and if the second parity is not equal to the first parity, determining which part of the data is erroneous and which other part of the data is valid, restructuring the data based on the first parity and the valid part of the data, verifying the correctness of the restructured data, and transferring the restructured data to the host computer if the result of said verification indicates that the restructured data is correct.
-
Specification