Method and system for maintaining information about modified data in cache in a storage system for use during a system failure
First Claim
1. A system for handling a partial failure, wherein the storage controller is capable of processing read/write operations from a host system and reading and writing to a first storage device including data tracks, comprising:
- a processor;
a cache in communication with the processor;
a second storage device for backing-up data stored in the cache; and
control logic executed by the processor, comprising;
(i) storing modified random data to both the cache and the second storage device;
(ii) storing modified sequential data to the cache but not the second storage device;
(iii) means for detecting a partial failure within the storage controller;
(iv) means for scanning the cache to determine tracks for which there is modified data stored in the cache after detecting the partial failure;
(v) means for storing in the second storage device information indicating tracks having modified sequential data in cache;
(vi) means for scheduling a destaging of the modified sequential data from the cache to the first storage device during the failure, wherein the modified random data is recovered from the second storage device; and
(vii) means for receiving and processing read/write requests directed to the first storage device before all modified sequential data is destaged from cache during the failure.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed is a system and method for caching data. A processor receives data from a host to modify a track in a first storage device. The processor stores a copy of the modified data in a cache and indicates in a second storage device the tracks for which there is modified data in cache. During data recovery operations, the processor processes the second storage device and data therein to determine the tracks for which there was modified data in cache. The processor then marks the determined tracks as failed to prevent data at the determined tracks in the first storage device from being returned in response to a read request until the failure is resolved. In further embodiments, in response to detecting a partial failure within the storage system, the processor would scan the cache to determine tracks for which there is modified data stored in the cache. The processor then stores in the second storage device information indicating the tracks having modified data in cache and schedules the destaging of the modified data from the cache to the first storage device. The processor is further capable of receiving and processing read/write requests directed to the first storage device before all the modified data is destaged from cache.
117 Citations
26 Claims
-
1. A system for handling a partial failure, wherein the storage controller is capable of processing read/write operations from a host system and reading and writing to a first storage device including data tracks, comprising:
-
a processor;
a cache in communication with the processor;
a second storage device for backing-up data stored in the cache; and
control logic executed by the processor, comprising;
(i) storing modified random data to both the cache and the second storage device;
(ii) storing modified sequential data to the cache but not the second storage device;
(iii) means for detecting a partial failure within the storage controller;
(iv) means for scanning the cache to determine tracks for which there is modified data stored in the cache after detecting the partial failure;
(v) means for storing in the second storage device information indicating tracks having modified sequential data in cache;
(vi) means for scheduling a destaging of the modified sequential data from the cache to the first storage device during the failure, wherein the modified random data is recovered from the second storage device; and
(vii) means for receiving and processing read/write requests directed to the first storage device before all modified sequential data is destaged from cache during the failure. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
means for placing an indicator of modified data tracks on a destage list, wherein the tracks on the destage list are scheduled for destage; and
determining whether a received read/write request is directed to a track in the first storage device having modified data in cache scheduled for destage, wherein the step of processing the read/write request to the track is delayed after determining that the request is directed toward a track scheduled for destage until the modified data for the track is destaged from cache.
-
-
4. The system of claim 1, wherein the control logic further comprises:
-
means for shutting the storage system down after detecting a second failure;
means for restarting the storage system after correcting the failure;
means for processing the second storage device, after restarting the storage system, to determine the tracks for which there was modified data in cache; and
means for marking the determined tracks as failed to prevent data at the determined tracks in the first storage device from being returned in response to a read request until the failure of the tracks is resolved.
-
-
5. The system of claim 1, wherein the processor and cache are a first processor and first cache, wherein a first cluster includes the first processor, the first cache and the second storage device, comprising:
-
a second cluster, comprising;
(i) a second processor;
(ii) a second cache, wherein the second storage device provides backup for data in the second cache; and
(iii) a third storage device for providing backup for data in the first cache.
-
-
6. The system of claim 5, wherein the second storage device is closer in physical proximity to the second processor and the second cache than to the first processor and the first cache, respectively, and wherein the third storage device closer in physical proximity to the first processor and the first cache than to the second processor and the second cache, respectively.
-
7. The system of claim 5, wherein the control logic further comprises:
-
means for detecting a partial failure within the second cluster;
means for indicating that the third storage device does not contain valid data after detecting a partial failure within the second cluster; and
means for indicating that the second storage device has valid data after storing in the second storage device information indicating tracks having modified data in cache.
-
-
8. The system of claim 7, wherein the control logic further comprises means for:
-
shutting down the system after detecting an additional failure;
restarting the system after correcting the cause of the failure; and
determining whether the second and third storage devices include valid data, wherein the control logic processes the second storage device to determine the tracks for which there was modified data in cache after determining that the second storage device includes valid data.
-
-
9. A storage system for handling a partial failure, wherein the storage controller is capable of processing read/write operations from a host system, comprising:
-
a processor;
a cache in communication with the processor;
a first storage device storing data tracks, wherein the processor is capable of reading and writing to data tracks in the first storage device;
a second storage device for backing-up data stored in the cache; and
control logic executed by the processor, comprising;
(i) means for storing modified random data to both the cache and the second storage device;
(ii) means for storing modified sequential data to the cache but not the second storage device;
(iii) means for detecting a partial failure within the storage controller;
(iv) means for scanning the cache to determine tracks for which there is modified data stored in the cache after detecting the partial failure;
(v) means for storing in the second storage device information indicating tracks having modified sequential data in cache;
(iv) means for scheduling a destaging of the modified sequential data from the cache to the first storage device during the failure, wherein the modified random data is recovered from the second storage device; and
(v) means for receiving and processing read/write requests directed to the first storage device before all modified sequential data is destaged from cache during failure. - View Dependent Claims (10, 11)
means for placing an indicator of modified data tracks on a destage list, wherein the tracks on the destage list are scheduled for destage; and
means for determining whether a received read/write request is directed to a track in the first storage device having modified data in cache scheduled for destage, wherein the step of processing the read/write request to the track is delayed after determining that the request is directed toward a track scheduled for destage until the modified data for the track is destaged from cache.
-
-
11. The storage system of claim 9, wherein the processor and cache are a first processor and first cache, wherein a first cluster includes the first processor, the first cache and the second storage device, comprising:
-
a second cluster, comprising;
(i) a second processor;
(ii) a second cache, wherein the second storage device provides backup for data in the second cache; and
(iii) a third storage device for providing backup for data in the first cache.
-
-
12. A data processing system for handling a partial failure, comprising:
-
a processor;
a host system, wherein the processor is capable of processing read/write operations from the host system;
a cache in communication with the processor;
a first storage device storing data tracks, wherein the processor is capable of reading and writing to data tracks in the first storage device;
a second storage device for backing-up data stored in the cache; and
control logic executed by the processor, comprising;
(i) means for storing modified random data to both the cache and the second storage device;
(ii) means for storing modified sequential data to the cache but not the second storage device;
(iii) means for detecting a partial failure within the storage controller;
(iv) means for scanning the cache to determine tracks for which there is modified data stored in the cache after detecting the partial failure;
(v) means for storing in the second storage device information indicating tracks having modified sequential data in cache;
(vi) means for scheduling a destaging of the modified sequential data from the cache to the first storage device during the failure, wherein the modified random data is recovered from the second storage device; and
(vii) means for receiving and processing read/write requests directed to the first storage device before all modified sequential data is destaged from cache during the failure. - View Dependent Claims (13, 14)
means for placing an indicator of modified data tracks on a destage list, wherein the tracks on the destage list are scheduled for destage; and
means for determining whether a received read/write request is directed to a track in the first storage device having modified data in cache scheduled for destage, wherein the step of processing the read/write request to the track is delayed after determining that the request is directed toward a track scheduled for destage until the modified data for the track is destaged from cache.
-
-
14. The data processing system of claim 12, wherein the processor and cache are a first processor and first cache, wherein a first cluster includes the first processor, the first cache and the second storage device, comprising:
-
a second cluster, comprising;
(i) a second processor;
(ii) a second cache, wherein the second storage device provides backup for data in the second cache; and
(iii) a third storage device for providing backup for data in the first cache.
-
-
15. A storage system for caching data received from a host system, wherein the storage system is capable of processing read/write operations from a host system and reading and writing to a first storage device including data tracks, comprising:
-
a processor;
a cache in communication with the processor;
a second storage device for backing-up data stored in the cache; and
control logic executed by the processor, comprising;
(i) means for receiving data to modify a track in the first storage device, wherein the received data to modify the track can comprise modified random data or modified sequential data;
(ii) means for indicating in the second storage device the tracks for which there is modified data in cache;
(iii) means for storing a copy of the modified random data in the second storage device in addition to the cache, wherein a copy of the modified sequential data is not stored in the second storage device;
(iv) means for processing the second storage device and data therein in response to detecting a failure to determine the tracks for which there was modified data in cache; and
(v) means for marking the determined tracks as failed to prevent data at the determined tracks in the first storage device from being returned in response to a read request until the failure is resolved.
-
-
16. A storage system for caching data received from a host system, wherein the storage system is capable of processing read/write operations from a host system, comprising:
-
a processor;
a cache in communication with the processor;
a first storage device storing data tracks, wherein the processor is capable of reading and writing to data tracks in the first storage device;
a second storage device for backing-up data stored in the cache; and
control logic executed by the processor, comprising;
(i) means for receiving data to modify a track in the first storage device, wherein the received data to modify the track can comprise modified random data or modified sequential data;
(ii) means for indicating in the second storage device the tracks for which there is modified data in cache;
(iii) means for storing a copy of the modified random data in the second storage device in addition to the cache, wherein a copy of the modified sequential data is not stored in the second storage device;
(iv) means for processing the second storage device and data therein in response to detecting a failure to determine the tracks for which there was modified data in cache; and
(v) means for marking the determined tracks as failed to prevent data at the determined tracks in the first storage device from being returned in response to a read request until the failure is resolved.
-
-
17. A data processing system for caching data, comprising:
-
a processor;
a host system, wherein the processor is capable of processing read/write operations from the host system;
a cache in communication with the processor;
a first storage device storing data tracks, wherein the processor is capable of reading and writing to data tracks in the first storage device;
a second storage device for backing-up data stored in the cache; and
control logic executed by the processor, comprising;
(i) means for receiving data to modify a track in the first storage device, wherein the received data to modify the track can comprise modified random data or modified sequential data;
(ii) means for indicating in the second storage device the tracks for which there is modified data in cache;
(iii) means for storing a copy of the modified random data in the second storage device in addition to the cache, wherein a copy of the modified sequential data is not stored in the second storage device;
(iv) means for processing the second storage device and data therein in response to detecting a failure to determine the tracks for which there was modified data in cache; and
(v) means for marking the determined tracks as failed to prevent data at the determined tracks in the first storage device from being returned in response to a read request until the failure is resolved.
-
-
18. A method for handling a partial failure in a storage system, wherein the storage system processes read/write operations directed to data tracks stored in a first storage device, comprising the steps of:
-
storing modified random data to both a cache and a second storage device;
storing modified sequential data to cache but not the second storage device;
detecting a partial failure within the storage system;
scanning the cache to determine tracks for which there is modified data stored in the cache after detecting the partial failure;
storing in the second storage device information indicating the tracks having modified sequential data in cache;
scheduling a destaging of the modified sequential data from the cache to the first storage device during the failure, wherein the modified random data is recovered from the second storage device; and
receiving and processing read/write requests directed to the first storage device before all modified sequential data is destaged from cache during the failure. - View Dependent Claims (19, 20, 21)
placing an indicator of modified data tracks on a destage list, wherein the tracks on the destage list are scheduled for destage; and
determining whether a received read/write request is directed to a track in the first storage device having modified data in cache scheduled for destage, wherein the step of processing the read/write request to the track is delayed after determining that the request is directed toward a track scheduled for destage until the modified data for the track is destaged from cache.
-
-
21. The method of claim 18, further comprising the steps of:
-
shutting the storage system down after detecting a second failure;
restarting the storage system after correcting the failure;
processing the second storage device, after restarting the storage system, to determine the tracks having modified data in cache before the second failure; and
marking the determined tracks as failed to prevent data at the determined tracks in the first storage device from being returned in response to a read request until the failure of the tracks is resolved.
-
-
22. A method for caching data, comprising the steps of:
-
receiving data to modify a track in a first storage device, wherein the received data to modify the track can comprise random writes or sequential writes;
storing a copy of the modified data in a cache;
indicating in a second storage device the tracks for which there is modified data in cache;
storing a copy of modified random data in the second storage device in addition to the cache, wherein a copy of modified sequential data is not stored in the second storage device;
processing the second storage device and data therein in response to detecting a failure to determine the tracks for which there was modified data in cache; and
marking the determined tracks as failed to prevent data at the determined tracks in the first storage device from being returned in response to a read request until the failure is resolved.
-
-
23. An article of manufacture for use in programming a processor to handle a partial failure in a storage system, wherein the processor is capable of receiving read/write requests from a host system to a first storage device, and wherein the processor is capable of writing data to the first storage device, a cache, and a second storage device, the article of manufacture comprising a computer usable medium including at least one computer program embedded therein that is capable of causing the processor to perform the steps of:
-
detecting a partial failure within the storage system;
storing modified random data to both the cache and the second storage device;
storing modified sequential data to the cache but not the second storage device;
scanning the cache to determine tracks for which there is modified data stored in the cache after detecting the partial failure;
storing in the second storage device information indicating the sequential tracks having modified data in cache;
scheduling a destaging of the modified sequential data from the cache to the first storage device during the failure, wherein the modified random data is recovered from the second storage device; and
receiving and processing read/write requests directed to the first storage device before all the modified sequential data is destaged from cache during the failure. - View Dependent Claims (24, 25)
shutting the storage system down after detecting a second failure;
restarting the storage system after correcting the failure;
processing the second storage device, after restarting the storage system, to determine the tracks for which there was modified data in cache; and
marking the determined tracks as failed to prevent data at the determined tracks in the first storage device from being returned in response to a read request until the failure of the tracks is resolved.
-
-
26. An article of manufacture for use in programming a processor to cache data, wherein the processor is capable of receiving read/write requests from a host system to a first storage device, and wherein the processor is capable of writing data to the first storage device, a cache, and a second storage device, the article of manufacture comprising a computer usable medium including at least one computer program embedded therein that is capable of causing the processor to perform:
-
receiving data to modify a track in a first storage device, wherein the received data to modify the track can comprise modified random data or modified sequential data;
storing a copy of the modified data in a cache;
indicating in a second storage device tracks for which there is modified data in cache;
storing a copy of modified random data writes in the second storage device in addition to the cache, wherein a copy of modified sequential data is not stored in the second storage device;
processing the second storage device and data therein in response to detecting a failure to determine the tracks for which there was modified data in cache; and
marking the determined tracks as failed to prevent data at the determined tracks in the first storage device from being returned in response to a read request until the failure is resolved.
-
Specification