Host-initiated data reconstruction for improved raid read operations
First Claim
1. A method for controlling a RAID subsystem, comprising:
- transmitting a first command to a RAID controller to read a block of data from an array of storage drives;
receiving the block of data from the RAID controller;
detecting errors in the block of data received from the RAID controller;
if an error is detected, transmitting a second command to the controller to perform a first reconstruct read of the block of data; and
receiving the reconstructed block of data.
8 Assignments
0 Petitions
Accused Products
Abstract
Method, system and computer program product are provided to improve the reliability of data transfers from RAID systems. Although some read errors may be detected by the RAID controller, other errors may not be; undetected errors may affect the integrity of the data. In accordance with the present invention, the host or client issues a first command to the RAID controller to read specified data. After the RAID controller obtains the data from the RAID drives and transmits it to the host, the host verifies the data to detect any errors. If an error is detected by the host, the host issues a second command to the RAID controller to reconstruct the specified data, rather than merely re-read the data. The reconstructed data is then transmitted to the host. Consequently, previously undetected and uncorrected errors may be detected and corrected by the host.
-
Citations
28 Claims
-
1. A method for controlling a RAID subsystem, comprising:
-
transmitting a first command to a RAID controller to read a block of data from an array of storage drives;
receiving the block of data from the RAID controller;
detecting errors in the block of data received from the RAID controller;
if an error is detected, transmitting a second command to the controller to perform a first reconstruct read of the block of data; and
receiving the reconstructed block of data. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A host computer system coupled to a RAID storage subsystem, comprising:
-
means for transmitting a first command to a RAID controller to read a block of data from an array of storage drives;
means for receiving the block of data from the RAID controller;
means for detecting errors in the block of data received from the RAID controller;
means for transmitting a second command to the controller to perform a first reconstruct read of the block of data if an error is detected; and
means for receiving the reconstructed block of data. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer program product of a computer readable medium usable with a programmable computer, the computer program product having computer-readable code embodied therein for reading data from a RAID subsystem, the computer-readable code comprising instructions for:
-
transmitting a first command to a RAID controller to read a block of data from an array of storage drives;
receiving the block of data from the RAID controller;
detecting errors in the block of data received from the RAID controller;
if an error is detected, transmitting a second command to the controller to perform a first reconstruct read of the block of data; and
receiving the reconstructed block of data. - View Dependent Claims (16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28)
-
-
22. A RAID subsystem, comprising:
-
a plurality of RAID storage drives;
a RAID controller coupled to the RAID storage drives and to a host device;
and a processor programmed with instructions for;
receiving a first command from the host device to read a block of data from an array of storage drives;
obtaining the block of data from the RAID drives;
transmitting the block of data to the host device;
if the host device detects an error in the transmitted block of data, receiving a second command from the host device to perform a first reconstruct read of the block of data;
obtaining the reconstructed block of data from the RAID drives; and
transmitting the reconstructed block of data to the host device.
-
Specification