Patent ID: 7162587

Claim:
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.