Method and apparatus for recovering redundant cache data of a failed controller and reestablishing redundancy
First Claim
1. In a cache-redundant data storage system having at least two storage controllers, each of the storage controllers comprising a primary cache memory and a secondary cache memory, a method for recovering cache data of a failed redundant storage controller and reestablishing redundancy, comprising:
- arranging said at least two storage controllers into respective pairs, such that cache data of the primary cache memory of each of the storage controllers in each respective pair is mirrored in the secondary cache memory of the other storage controller in each respective pair;
upon a failure of one of the storage controllers in a particular one of the respective pairs, detecting the failure and, in response, creating a structured list of cache tags in the non-failed storage controller in the particular one of the respective pairs, flushing the primary cache memory and the secondary cache memory of the non-failed storage controller in a particular one of the respective pairs, and configuring an available secondary cache memory to function as a redundant cache memory for the primary cache memory of the non-failed storage controller in the particular one of the respective pairs, such that cache data in the primary cache memory of the non-failed storage controller in the particular one of the respective pairs is mirrored in the available secondary cache memory; and
wherein if said at least two storage controllers comprise an odd number of storage controllers, the cache data of the primary cache memory of an unpaired storage controller is mirrored in the secondary cache memory of the unpaired storage controller.
4 Assignments
0 Petitions
Accused Products
Abstract
A method, and apparatus for recovering cache data of a failed redundant storage controller and reestablishing redundancy by mirroring cache data of a primary cache memory of a first storage controller in a secondary cache memory of another storage controller. Upon a failure occurring in a storage controller, the failure is detected and, in response, a structured list of cache tags is created in the controller where having the secondary cache that is the mirror of the primary cache of the failed controller. The primary cache memory of the non-failed storage controller that was mirrored in the secondary cache of the failed controller and the secondary cache memory of the non-failed storage controller that was linked to the primary cache of the failed controller are flushed, and an available secondary cache memory, which may be the secondary cache memory just flushed, is configured to function as a redundant cache memory for the primary cache memory of the non-failed storage controller that was mirrored in the secondary cache of the failed controller, such that cache data in the primary cache memory of the non-failed storage controller is mirrored in the available secondary cache memory.
70 Citations
11 Claims
-
1. In a cache-redundant data storage system having at least two storage controllers, each of the storage controllers comprising a primary cache memory and a secondary cache memory, a method for recovering cache data of a failed redundant storage controller and reestablishing redundancy, comprising:
-
arranging said at least two storage controllers into respective pairs, such that cache data of the primary cache memory of each of the storage controllers in each respective pair is mirrored in the secondary cache memory of the other storage controller in each respective pair; upon a failure of one of the storage controllers in a particular one of the respective pairs, detecting the failure and, in response, creating a structured list of cache tags in the non-failed storage controller in the particular one of the respective pairs, flushing the primary cache memory and the secondary cache memory of the non-failed storage controller in a particular one of the respective pairs, and configuring an available secondary cache memory to function as a redundant cache memory for the primary cache memory of the non-failed storage controller in the particular one of the respective pairs, such that cache data in the primary cache memory of the non-failed storage controller in the particular one of the respective pairs is mirrored in the available secondary cache memory; and wherein if said at least two storage controllers comprise an odd number of storage controllers, the cache data of the primary cache memory of an unpaired storage controller is mirrored in the secondary cache memory of the unpaired storage controller. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. In a cache-redundant data storage system having at least two controllers, each of the storage controllers comprising a primary cache memory and a secondary cache memory, a method for recovering cache data of a failed redundant storage controller and reestablishing redundancy, comprising:
-
arranging said at least two storage controllers into respective pairs, such that cache data of the primary cache memory of the storage controllers in each respective pair is mirrored in the secondary cache memory of the other storage controller in the each respective pair; upon a failure of one of the storage controllers in a particular one of the respective pairs, detecting the failure and in response creating a structure list of cache tags in the non-failed storage controller in the particular one of the respective pairs, flushing the primary cache memory and the secondary cache memory of the non-failed storage controller in the particular one of the respective pairs, and configuring an available secondary cache memory to function as a redundant cache memory for the primary cache memory of the non-failed storage controller in the particular one of the respective pairs, such that cache data in the primary cache memory of the non-failed storage controller in the particular one of the respective pairs is mirror in the available secondary cache memory; and wherein the available secondary cache memory is the secondary cache memory of the non-failed storage controller in the particular one of the respective pairs. - View Dependent Claims (8)
-
-
9. An apparatus for storing data, comprising:
-
a program memory, for storing program instructions; a processor for executing said program instructions; a primary cache memory, for storing cache data; a secondary cache memory, for storing redundant cache data; and a tag memory, for storing a structured list of cache tags associated with the cache data of the secondary cache memory; wherein said processor executes said program instruction to configure the apparatus to perform the steps of; pairing itself with another substantially similar available apparatus, such that cache data of the primary cache memory of each of the apparatuses in the pair as mirrored in the secondary cache memory of the other apparatus in the pair; and upon a failure of either apparatus in the pair, detecting the failure and, in response, creating a structured list of cache tags in the non-failed apparatus, flushing the primary cache memory and the secondary cache memory of the non-failed apparatus, and configuring an available secondary cache memory to function as a redundant cache memory for the primary cache memory of the non-failed apparatus such that cache data in the primary cache memory of the non-failed apparatus is mirrored in the available secondary cache memory; and wherein the available secondary cache memory is the secondary cache memory of the non-failed apparatus. - View Dependent Claims (10)
-
-
11. A storage controller in a cache-redundant data storage system having at least two storage controllers, each of the at least two storage controllers in the cache-redundant storage system comprising a respective primary cache memory and a respective secondary cache memory, said storage controller comprising:
-
a means for arranging said storage controller into a pair with another storage controller of said at least two storage controllers, such that cache data of the primary cache memory of each of the storage controllers in the pair is mirrored in the secondary cache memory of the other storage controller in the pair; and a means for detecting a failure of said primary cache memory of one of either said storage controller and said another storage controller, and upon a detection of said failure, creating a structured list of cache tags in the other of said storage controller and said another storage controller, flushing the primary cache memory and the secondary cache memory of the non-failed storage controller, and said another storage controller, and configuring an available secondary cache memory to function as a redundant cache memory for the primary cache memory of the other of said storage controller and said another storage controller, such that cache data in the primary cache memory of the other of said storage controller and said another storage controller is mirrored in the available secondary cache memory; and wherein if said at least two storage controllers comprise an odd number of storage controller, the cache data of the primary cache memory of an unpaired storage controller is mirrored in the secondary cache memory of the unpaired storage controller.
-
Specification