Disk array device
First Claim
1. A disk array device for executing a read operation for reading data recorded therein in response to a first read request from a host device, said disk array device having recorded therein data blocks generated by dividing the data and redundant data generated from the data blocks, said disk array device comprising:
- m disk drives across which the data blocks and the redundant data are distributed, wherein m≧
2;
a parity calculation part operable to calculate parity from (m−
2) of the data blocks and the redundant data to recover a remaining data block; and
a control part operable to control the read operation, wherein said control part is operable to;
calculate a timeout period for at least one of said m disk drives based on previously required reading times of said at least one of said m disk drives;
issue second read requests to read the data blocks and the redundant data from said m disk drives in response to the first read request sent thereto;
when (m−
1) of said m disk drives complete reading, detect whether a partial set of the data blocks and the redundant data has been read from said (m−
1) disk drives;
when detected that the partial set of the data blocks and the redundant data has been read, issue a recovery instruction to said parity calculation part to recover the remaining data block not read from one remaining disk drive of said m disk drives after the timeout period corresponding to said one remaining disk drive has elapsed; and
when the remaining data block is recovered by the calculation of parity in said parity calculation part, execute an operation for transmitting the data to the host device.
1 Assignment
0 Petitions
Accused Products
Abstract
Data blocks and redundant data are distributed across disk drives. In response to a first read request transmitted from a host device, a controller issues second read requests to read the data blocks and the redundant data from the disk drives. Further, the controller detects the disk drive which is no longer required to read the data block or redundant data from among the disk drives, and issues a read termination command to the detected disk drive to terminate reading therefrom. In a disk array device with such structure, even reading of one parity data with much time required does not affect other reading.
-
Citations
19 Claims
-
1. A disk array device for executing a read operation for reading data recorded therein in response to a first read request from a host device, said disk array device having recorded therein data blocks generated by dividing the data and redundant data generated from the data blocks, said disk array device comprising:
-
m disk drives across which the data blocks and the redundant data are distributed, wherein m≧
2;
a parity calculation part operable to calculate parity from (m−
2) of the data blocks and the redundant data to recover a remaining data block; and
a control part operable to control the read operation, wherein said control part is operable to;
calculate a timeout period for at least one of said m disk drives based on previously required reading times of said at least one of said m disk drives;
issue second read requests to read the data blocks and the redundant data from said m disk drives in response to the first read request sent thereto;
when (m−
1) of said m disk drives complete reading, detect whether a partial set of the data blocks and the redundant data has been read from said (m−
1) disk drives;
when detected that the partial set of the data blocks and the redundant data has been read, issue a recovery instruction to said parity calculation part to recover the remaining data block not read from one remaining disk drive of said m disk drives after the timeout period corresponding to said one remaining disk drive has elapsed; and
when the remaining data block is recovered by the calculation of parity in said parity calculation part, execute an operation for transmitting the data to the host device. - View Dependent Claims (2, 3, 4)
-
-
5. A disk array device for executing a read operation for reading data recorded therein in response to a first read request from a host device, said disk array device having recorded therein data blocks generated by dividing the data and redundant data generated from the data blocks, said disk array device comprising:
-
m disk drives across which the data blocks and the redundant data are distributed, wherein m≧
2;
a parity calculation part operable to calculate parity from (m−
2) of the data blocks and the redundant data to recover one remaining data block; and
a control part operable to control the read operation, wherein said control part is operable to;
calculate a variable timeout period based on a completion time of a (m−
2)th read operation and a completion time of a previous recovery instruction by said parity calculation part;
issue second read requests to read the data blocks and the redundant data from said m disk drives in response to the first read request sent thereto;
when (m−
1) of said m disk drives complete reading, detect whether a partial set of the data blocks and the redundant data has been read from said (m−
1) disk drives;
when it is detected that the partial set of the data blocks and the redundant data has been read, issue a recovery instruction to said parity calculation part to recover the one remaining data block not read from one remaining disk drive of said m disk drives after the variable timeout period has elapsed; and
when the one remaining block is recovered by the calculation of parity in said parity calculation part, execute an operation for transmitting the data to the host device. - View Dependent Claims (6, 7)
a table including a time period during which said parity calculation part is able to calculate parity, wherein said control part is further operable to issue the recovery instruction when said parity calculation part does not operate to calculate parity by referring to the time period included in said table.
-
-
7. The disk array device according to claim 5, wherein said disk array device further comprises m SCSI interfaces corresponding to said m disk drives, and wherein said control part is operable to notify each of said m SCSI interfaces of a storage location selected from a storage area in each of said m disk drives, respectively.
-
8. A disk array device for reassigning an alternate recording area to a defective recording area of data, said disk array device comprising:
-
a plurality of disk drives across which data blocks generated by dividing the data and redundant data generated from the data blocks are distributed;
a reassignment part; and
a read/write control part operable to specify recording areas of the data blocks and the redundant data on said plurality of disk drives, and produce an I/O request to request a read operation or a write operation, wherein said plurality of disk drives are operable to access the recording areas specified by the I/O request to read or write the data blocks and the redundant data when receiving the I/O request transmitted from said read/write control part, wherein said reassignment part is operable to, when receiving the I/O request transmitted from said read/write control part, calculate an elapsed time from a time when the I/O request transmitted from said read/write control part is started to be processed in said plurality of disk drives as a delay time, and determine whether or not any of the recording areas specified by the I/O request are defective based on the delay time, and wherein when the I/O request requests the read operation;
said read/write control part is further operable to produce the I/O request including the specified recording areas to read the data blocks and the redundant data from said plurality of disk drives, transmit the I/O request to said plurality of disk drives, detect, from among said plurality of disk drives, a disk drive from which reading of one of the data blocks or the redundant data is no longer required, produce a reading termination command for termination of the reading of the one of the data blocks or the redundant data from said detected disk drive, and transmit the reading termination command to said reassignment part, and said reassignment part is further operable to determine, based on the reading termination command transmitted from said read/write control part, whether the reading of the one of the data blocks or the redundant data from said detected disk drive has started, and when the reading from said detected disk drive has not started, produce and transmit a message for termination of the reading to said detected disk drive. - View Dependent Claims (9, 10, 11)
-
-
12. A disk array device which reassigns an alternate recording area to a defective recording area of data, said disk array device comprising:
-
a read/write control part operable to specify a recording area of the data, and produce an I/O request to request a read operation or a write operation;
a disk drive operable to access the recording area specified by the I/O request to read or write the data when receiving the I/O request from said read/write control part; and
a reassignment part operable to, when the recording area specified by the I/O request from said read/write control part is defective, instruct said disk drive to reassign an alternate recording area to the defective recording area, wherein when instructed to reassign by said reassignment part, said disk drive is operable to assign a recording area in which time required for the read or write operation is within a predetermined range, as the alternate recording area, the predetermined range being selected based on overhead in said disk array device. - View Dependent Claims (13, 14, 15, 16, 17)
said reassignment part is operable to transmit a reassign block specifying a logical address block of the defective recording area to said disk drive for reassignment; and
said disk drive is operable to assign a physical address with which the time required for the read or write operation is within the predetermined range to a logical address specified by the reassign block transmitted from said reassignment part as the alternate recording area.
-
-
15. The disk array device according to claim 12, wherein when said read/write control part requests said disk drive to read the data, and the recording area of the data is defective,
said read/write control part is operable to recover the data recorded in the defective recording area based on predetermined parity and other data, specify the assigned alternate recording area, and request said disk drive to write the recovered data to the assigned alternate recording area. -
16. The disk array device according to claim 12, wherein when said read/write control part requests said disk drive to write data and the recording area of the data is defective, said read/write control part is operable to specify the assigned alternate recording area, and request disk drive to write the data to the assigned alternate recording area.
-
17. The disk array device according to claim 12, wherein said disk array device further comprises an SCSI interface corresponding to said disk drive, and wherein said read/write control part is operable to notify said SCSI interface of a storage location selected from a storage area in said disk drive.
-
18. A reassignment method of assigning an alternate area to a defective recording area of data in a disk array device including a plurality of disk drives, said reassignment method comprising:
-
transmitting an I/O request operable to request the plurality of disk drives to perform a read operation or a write operation by specifying recording areas of data blocks and redundant data according to a request from outside;
when the I/O request is transmitted in said transmitting operation, calculating an elapsed time from a time when the transmitted I/O request is started to be processed in the plurality of disk drives as a delay time and determining whether the recording areas specified by the I/O request are defective or not based on the delay time;
when one of the recording areas is determined to be defective, instructing a corresponding disk drive of the plurality of disk drives to assign an alternate recording area to the defective recording area; and
wherein when the I/O request requests that the plurality of disk drives perform the read operation;
detecting, from among the plurality of disk drives, a disk drive from which reading of one of the data blocks or the redundant data is no longer required;
producing a reading termination command for termination of the reading from the detected disk drive, and transmitting the reading termination command;
determining, based on the transmitted reading termination command, whether the reading of the one of the data blocks or the redundant data from the detected disk drive has been started; and
when the reading from the detected disk drive has not been started, producing a message for termination of the reading, and transmitting the message to the detected disk drive.
-
-
19. A reassignment method of assigning an alternate recording area to a defective recording area of data, said reassignment method comprising:
-
transmitting an I/O request for requesting a disk drive to read or write by specifying a recording area of the data according to a request from outside; and
when the recording area specified by the I/O request transmitted in said transmitting operation is defective, instructing the disk drive to assign an alternate recording area to the defective recording area, wherein in said instructing operation, the disk drive is instructed to assign the recording area with which a time required for the reading or writing is within a predetermined range as the alternate recording area, the predetermined range being selected based on overhead in a disk array device to which the disk drive belongs.
-
Specification