System and method for servicing requests to a storage array
First Claim
1. A method of servicing a request to a redundant storage array including a plurality of storage media containing data and related parity data, said method comprising:
- a storage adapter receiving, from an operating system of a data processing system, a command to place a selected storage medium among said plurality of storage media that is electrically coupled to said storage adapter in an off-line state to perform an update to control program for said selected storage medium;
said storage adapter receiving a data request for data stored by a selected storage medium among said plurality of storage media; and
while the selected storage medium is electrically coupled to the adapter and the update to the control program of said selected storage medium is being performed, servicing said data request by reference to said data and said related parity data of other storage media among said plurality of storage media.
1 Assignment
0 Petitions
Accused Products
Abstract
According to the method of the present invention, if a data read request to an unavailable particular storage medium is received from a system processor, a request servicing circuit of an adapter reconstructs the request data from data and parity data stored on other storage media in the array. However, if a data write request to an unavailable storage medium is received from the system processor, the actual data related to the data write request is stored in a temporary memory location, and the data write request is logged in a non-volatile memory. There is no built-in data redundancy in a first preferred embodiment of the present invention; thus, modified data is lost in the event of the failure of another storage medium during the update of the selected storage medium. However, a second preferred embodiment of the present invention incorporates a spare storage medium that preserves the modified data if another storage medium fails.
-
Citations
24 Claims
-
1. A method of servicing a request to a redundant storage array including a plurality of storage media containing data and related parity data, said method comprising:
-
a storage adapter receiving, from an operating system of a data processing system, a command to place a selected storage medium among said plurality of storage media that is electrically coupled to said storage adapter in an off-line state to perform an update to control program for said selected storage medium;
said storage adapter receiving a data request for data stored by a selected storage medium among said plurality of storage media; and
while the selected storage medium is electrically coupled to the adapter and the update to the control program of said selected storage medium is being performed, servicing said data request by reference to said data and said related parity data of other storage media among said plurality of storage media. - View Dependent Claims (2, 3, 4, 5)
automatically reconstructing requested data utilizing said data and related parity data from said other storage media; and
outputting said reconstructed requested data.
-
-
3. The method according to claim 2, said step of automatically reconstructing further including:
-
determining a type of said data request; and
automatically reconstructing requested data utilizing said data and said related parity data only in response to determining that said data request is a data read request.
-
-
4. The method according to claim 3, said step of determining further comprising:
-
in response to determining that said data request is a data write request, logging said data write request;
storing new data for said data write request;
setting said particular storage medium to a rebuild status;
rebuilding said particular storage medium utilizing said data and related parity data from said other storage media; and
setting said particular storage medium to online status.
-
-
5. The method according to claim 1, wherein said particular storage medium is a disk, and said redundant storage array is a redundant disk array and wherein:
receiving a data request for data stored by a particular storage medium comprises receiving a data request for data stored by a particular disk of said redundant disk array.
-
6. An adapter for use with a data processing system including a redundant storage array including a plurality of storage media containing data and related parity data, said adapter comprising:
-
an adapter processor including;
an updating circuit for receiving a data request for data stored by a selected storage medium among said plurality of storage media;
a command processing circuit for receiving, from an operating system of a data processing system, a command to place a selected storage medium among said plurality of storage media that is electrically coupled to said storage adapter in an off-line state to perform an update to control program for said selected storage medium; and
a request servicing circuit, while the selected storage medium is electrically coupled to the adapter and the update to said control program for said selected storage medium is being performed, for servicing said data request by reference to said data and said related parity data of other storage media among said plurality of storage media. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14)
a non-volatile random access memory (NVRAM) for logging data write requests.
-
-
10. The adapter according to claim 6, further comprising:
a storage location for temporarily storing write data for said selected storage media during said updating.
-
11. The adapter according to claim 10, wherein said storage location is an adapter cache.
-
12. The adapter according to claim 11, wherein said adapter cache further includes:
a battery-backup circuit, for preserving data stored on said adapter cache.
-
13. A disk system comprising:
-
an adapter according to claim 6; and
a redundant storage array.
-
-
14. The adapter according to claim 6, wherein said redundant storage array is a redundant array of inexpensive disks (RAID).
-
15. A data processing system, comprising:
-
a system processor;
a system memory coupled to said system processor;
a redundant storage array; and
an adapter including a redundant storage array including a plurality of storage media containing data and related parity data, said adapter further including;
an adapter processor including;
an updating circuit for receiving a data request for data stored by a selected storage medium among said plurality of storage media;
a command processing circuit for receiving, from an operating system of a data processing system, a command to place a selected storage medium among said plurality of storage media that is electrically coupled to said storage adapter in an off-line state to perform an update to control program for said selected storage medium; and
a request servicing circuit, in response to receiving said request while an update to said selected storage medium is being performed, for servicing said data request by reference to said data and said related parity data of other storage media among said plurality of storage media. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23)
a non-volatile random access memory (NVRAM) for logging all data write requests and data read-with-intent-to-write requests.
-
-
20. The data processing system according to claim 15, further including:
a storage location for temporarily storing all write data for said selected storage media during said updating.
-
21. The data processing system according to claim 20, wherein said storage location is a temporary space on other storage media of said redundant storage array.
-
22. The data processing system according to claim 20, wherein said storage location is an adapter cache.
-
23. The data processing system according to claim 22, wherein said adapter further includes a battery backup circuit.
-
24. A computer program product comprising:
-
a computer-readable medium;
command receiving code within said computer-readable medium for receiving, from an operating system of a data processing system, a command to place a selected storage medium among a plurality of storage media that is electrically coupled to a storage adapter in an off-line state to perform an update to control program for said selected storage medium;
updating code encoded within said computer-readable medium for receiving a data request for data stored by the selected storage medium among the plurality of storage media; and
request servicing code encoded within said computer-readable medium, while an update to said control program for said selected storage medium is being performed and the selected storage medium is electrically coupled to the adapter, for servicing said data request by reference to data and related parity data of other storage media among said plurality of storage media.
-
Specification