System, apparatus, and method providing cache data mirroring to a data storage system
First Claim
1. A method of providing cache data mirroring for a first controller and an alternate controller, the first controller and the alternate controller being operatively coupled to a host computer and to disk storage devices, the first controller including and being operatively coupled to a first semiconductor memory, and the alternate controller including and being operatively coupled to a second semiconductor memory, the method comprising:
- receiving, by the first controller, a write data request from the host computer, the write data request including a first data to be written to a disk storage device;
caching, by the first controller, the first data into the first semiconductor memory;
mirroring, by the first controller, the first data to the alternate controller such that the alternate controller copies the first data into the second semiconductor memory;
maintaining a first and second mirror sets for representing cache data stored by the first controller or the alternate controller, each of said mirror sets comprising a mirror valid flag, a mirror sequence, and a mirror map; and
detecting, by the alternate controller, a failure of the first controller; and
in response to the step of detecting, writing, by the alternate controller, the first data coupled with the mirrored data in the second semiconductor memory to a disk storage device.
3 Assignments
0 Petitions
Accused Products
Abstract
The invention provides a system structure, method and computer program product for mirroring cache data from a first controller to an alternate controller in a data storage system, where the data storage system is being managed by the controllers in dual active configuration and the first and alternate controllers are also connected to a system drive that includes one or more disk storage devices and the first controller is connected to a first memory, and the alternate controller is connected to a second memory where each controller has an identical memory layout, and a cache line descriptor data structure defined therein and the cache line descriptor data structure is used by each respective controller to track data mirrored by the controller to a memory connected to an alternate controller and the cache line descriptor data structure includes information for reducing the amount of data mirrored to an alternate controller for secondary cache data mirror operations on same originating cache data with respect to a particular cache line and additionally, the cache line descriptor data structure includes information for coalescing multiple cache data mirror operations corresponding to a particular cache line into a single cache mirror operation to the alternate controller.
173 Citations
34 Claims
-
1. A method of providing cache data mirroring for a first controller and an alternate controller, the first controller and the alternate controller being operatively coupled to a host computer and to disk storage devices, the first controller including and being operatively coupled to a first semiconductor memory, and the alternate controller including and being operatively coupled to a second semiconductor memory, the method comprising:
-
receiving, by the first controller, a write data request from the host computer, the write data request including a first data to be written to a disk storage device;
caching, by the first controller, the first data into the first semiconductor memory;
mirroring, by the first controller, the first data to the alternate controller such that the alternate controller copies the first data into the second semiconductor memory;
maintaining a first and second mirror sets for representing cache data stored by the first controller or the alternate controller, each of said mirror sets comprising a mirror valid flag, a mirror sequence, and a mirror map; and
detecting, by the alternate controller, a failure of the first controller; and
in response to the step of detecting, writing, by the alternate controller, the first data coupled with the mirrored data in the second semiconductor memory to a disk storage device.- View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
posting, by the first controller, a mirror data request to the alternate controller, the request including the first data and an address identifying where in the second semiconductor memory the alternate controller shall store the first data;
receiving, by the alternate controller, the mirror data request; and
in response to the step of receiving, storing, by the alternate controller, the first data into the address.
-
-
3. The method of claim 1 wherein said first controller and said alternate controller operate in dual active configuration.
-
4. The method of claim 1, wherein, in the mirroring, the fist data in the first semiconductor memory is explicitly linked to the first data in the second semiconductor memory.
-
5. The method of claim 1, wherein, the mirroring further comprises coalescing multiple cache data mirror operations to a particular cache line, into a single cache data mirror operation.
-
6. The method of claim 1, wherein, in the mirroring, in response to a secondary cache data mirror operation with respect to a particular cache line, only those data that have changed in the particular cache line are mirrored to the alternate controller.
-
7. The method of claim 1, further comprising sending, by the first controller, after the step of minoring, a status corresponding to the write data request to the host computer.
-
8. The method of claim 1, wherein the caching is only performed if the system drive has a policy of write-back.
-
9. A computer program product for use in conjunction with a first controller and an alternate controller, the first controller being operatively coupled to a first cache memory, and the alternate controller being operatively coupled to a second cache memory, the computer program product comprising a computer readable storage medium and a computer program stored thereon, the computer program comprising program instructions for:
-
receiving, by the first controller, a write data request from the host computer, the write data request including a first data to be written to a disk storage device;
caching, by the first controller, the first data into the first memory;
mirroring, by the first controller, the first data to the alternate controller, such that the alternate controller copies the first data into the second memory;
maintaining a first and second mirror sets for representing cache data stored by the first controller or the alternate controller, each of said mirror sets comprising a mirror valid flag, a mirror sequence, and a mirror map; and
detecting, by the alternate controller, a failure of the first controller; and
in response to the instructions for detecting, writing, by the alternate controller, the first data coupled with the mirrored data in the second memory to a disk storage device. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
posting, by the first controller, a mirror data request to the alternate controller, the request including the first data and an address identifying where in the second memory the alternate controller shall store the first data;
receiving, by the alternate controller, the mirror data request; and
in response to the instructions for receiving, storing, by the alternate controller, the first data into the address.
-
-
11. The computer program product of claim 9 wherein the first controller and the alternate controller operate in dual active configuration.
-
12. The computer program product of claim 9, wherein, the instructions for mirroring, the first data in the first memory is explicitly linked to the first data in the second memory.
-
13. The computer program product of claim 9, wherein, the instructions for mirroring farther comprises at least one instruction for coalescing multiple cache data mirror operations to a particular cache line, into a single cache data mirror operation.
-
14. The computer program product of claim 9, wherein the instructions for mirroring in response to a secondary cache data mirror operation with respect to a particular cache line, mirroring only those first data that have changed in the particular cache line are mirrored to the alternate controller.
-
15. The computer program product of claim 9, further comprising an instruction for sending, by the first controller, after the instruction for mirroring, a status corresponding to the write data request to the host computer.
-
16. The computer program product of claim 9, wherein the instruction for caching is only performed if the system drive has a policy of write-back.
-
17. A method for tracking data mirrored by a first storage controller to a second storage controller, said method comprising:
-
receiving by said first storage controller a write request, said write request including a first data to be written;
caching by said first storage controller said first data into one or more cache lines operatively coupled to said first storage controller;
mirroring by said first storage controller said first data to one or more cache lines operatively coupled to said second storage controller before writing said data to be written to a disk storage device; and
maintaining information in a memory location operatively coupled to said first storage controller, said information tracking the first data mirrored by said first storage controller to said one or more cache lines operatively coupled to said second storage controller, said information comprising a mirror valid flag, a mirror sequence, and a mirror map. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
-
24. A method for tracking data mirrored by a first storage controller to a second storage controller, said method comprising the steps of:
-
receiving by said first storage controller a write request, said write request including data to be written;
caching by said first storage controller said data into one or more cache lines operatively coupled to said first storage controller;
mirroring by said first storage controller said data to one or more cache lines operatively coupled to said second storage controller; and
maintaining information in a memory location operatively coupled to said first storage controller, said information tracking data mirrored by said first storage controller to said one or more cache lines operatively coupled to said second storage controller, wherein said information identifies multiple instances of data mirroring corresponding to a particular cache line.
-
-
25. A controller comprising:
-
a memory;
means for maintaining a data structure stored in the memory, said data structure comprising;
first and second mirror sets for representing cache data stored by a controller or an alternate controller, each of said mirror sets comprising a mirror valid flag for tracking whether the respective mirror set is valid, a mirror sequence for storing a sequence indicating a time-order in which cache data is mirrored to an alternate controller, and a mirror map for representing which cache data blocks were mirrored. - View Dependent Claims (26, 27, 28, 29, 30)
a map of valid blocks for representing each of a set of data blocks that are valid in a data cache;
a map of blocks for representing blocks of data that are in the data cache but not yet written to storage; and
a change map for representing those memory blocks in cache memory that are being altered.
-
-
29. A controller as set forth in claim 25 wherein the mirror valid flag identifies whether an entire mirror set data structure and the cached data have been transferred to a partner controller without error.
-
30. A controller as set forth in claim 25 wherein the data structure further comprises:
another data structure for use by one of said storage controllers to (a) manage writing data to an alternate controller on a disk channel;
(b) keep track of multiple write data requests from a host computer that have been coalesced into one cache mirror operation; and
(c) manage queues of multiple I/O processes managing respective write data requests, while waiting for a cache mirror operation to complete.
-
31. A method for tracking data mirroring, said method comprising the steps of:
-
maintaining a data structure stored defined in a memory;
the data structure comprising first and second mirror sets for representing cache data stored by a controller or an alternate controller, each of said mirror sets comprising a mirror valid flag for tracking whether the mirror set is valid, a mirror sequence for storing a sequence indicating a time-order in which cache data is mirrored to an alternate controller, and a mirror map for representing which cache data blocks were mirrored.
-
-
32. A method for operating first and second storage controllers, said method comprising:
-
receiving, by the first storage controller, a write data request from a computer, the write data request including a first data to be written to a disk storage;
caching, by said first storage controller, the first data into a first semiconductor cache memory within said first storage controller;
mirroring, by said first storage controller, the first data to a second cache memory within said second storage controller;
maintaining a first and second mirror sets for representing cache data stored by the first controller or the alternate controller, each of said mirror sets comprising a mirror valid flag, a mirror sequence, and a mirror map; and
detecting, by said second storage controller, a failure of said first storage controller, and in response, second storage controller writing the first data to be written to the disk storage coupled with the mirrored first data from said second cache memory to a disk storage. - View Dependent Claims (33)
-
-
34. A method for operating first and second storage controllers, said method comprising:
-
receiving, by the first storage controller, a plurality of separate write data requests from a computer, each of the write data requests including first data to be written to a disk storage;
caching, by said first storage controller, the first data of said plurality of write data requests into a first semiconductor cache memory within said first storage controller;
mirroring, by said first storage controller, the data of said plurality of write data requests to a second cache memory within said second storage controller;
maintaining a plurality of mirror sets for representing cache data, each of said mirror sets comprising a mirror valid flag, a mirror sequence, and a mirror map; and
whereinsaid mirroring of said data of said plurality of write data requests occurs as a single mirror operation to reduce overhead associated with said mirroring step.
-
Specification