Method, apparatus, and system for preserving cache data of redundant storage controllers
First Claim
1. In a cache-redundant storage system comprising at least two redundant storage controllers, each of the storage controllers comprising a primary cache memory and a secondary cache memory, a method for preserving cache data of the two redundant storage controllers, comprising:
- receiving a storage request from a host into one of the redundant storage controllers;
recording a data block in response to the storage request in the primary cache memory of the receiving storage controller;
creating a cache tag for said recorded data block and recording said cache tag in said primary cache memory of the receiving storage controller;
copying the recorded data block and the recorded cache tag to the secondary cache memory of another of the redundant storage controllers; and
upon a failure of the primary cache memory of a redundant storage controller, detecting the failure and processing subsequent storage requests from the host, previously intended for processing by the failed storage controller, through the secondary cache memory of said another of the redundant storage controllers.
4 Assignments
0 Petitions
Accused Products
Abstract
A method, apparatus, and system for preserving the cache data of redundant storage controllers, by copying the recorded data blocks and the associated cache tags in the primary cache memory of a storage controller to a secondary cache memory of an alternate, redundant storage controller, wherein upon a failure occurring in the primary cache memory of any of the storage controllers, subsequent storage requests from a host, previously intended for processing by the failed storage controller, are processed through the secondary cache memory of a non-failed, redundant storage controller that contains the failed storage'"'"'s controller cache data and cache tags.
65 Citations
11 Claims
-
1. In a cache-redundant storage system comprising at least two redundant storage controllers, each of the storage controllers comprising a primary cache memory and a secondary cache memory, a method for preserving cache data of the two redundant storage controllers, comprising:
- receiving a storage request from a host into one of the redundant storage controllers;
recording a data block in response to the storage request in the primary cache memory of the receiving storage controller;
creating a cache tag for said recorded data block and recording said cache tag in said primary cache memory of the receiving storage controller;
copying the recorded data block and the recorded cache tag to the secondary cache memory of another of the redundant storage controllers; and
upon a failure of the primary cache memory of a redundant storage controller, detecting the failure and processing subsequent storage requests from the host, previously intended for processing by the failed storage controller, through the secondary cache memory of said another of the redundant storage controllers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
- receiving a storage request from a host into one of the redundant storage controllers;
-
9. A storage controller for preserving cache data of a redundant storage controller, comprising:
- a program memory, for storing program instructions;
a processor for executing said program instructions;
a primary cache memory, for recording cache data and cache tags;
a secondary cache memory, for recording a copy of cache data and cache tags of said redundant storage controller;
a local bus shared by the processor, the program memory, the primary cache memory, and the secondary cache memory; and
a shared bus, shared by said storage controller and said second storage controller;
said processor executing said program instructions to configure said storage controller, upon a failure of the primary cache memory of said redundant storage controller, to perform the steps of;
detecting the failure of the primary cache memory of said redundant storage controller; and
processing subsequent storage requests from the host, previously intended for processing by the failed redundant storage controller, through the secondary cache memory of the storage controller.
- a program memory, for storing program instructions;
-
10. A system, comprising:
- an array of storage units; and
at least two storage controllers;
each storage controller, comprising;
means for controlling a predetermined subsection of the array of storage units, a primary cache memory for storing cache data and cache tags; and
a secondary cache memory for storing a copy of cache data and cache tags of a the primary cache memory of another of said storage controllers; and
means for recording a data block and a cache tag in its primary cache memory and for copying said recorded data block and cache tag into the secondary cache memory of another of said storage controller;
means for detecting a failure of the primary cache memory of the storage controller for which the secondary cache contains a copy of the failed primary cache memory'"'"'s cache data and cache tags, and means for processing subsequent storage requests from the host, previously intended for processing by the failed storage controller, through its secondary cache memory.
- an array of storage units; and
-
11. A storage controller for preserving cache data of a redundant second storage controller, comprising:
- a means for receiving a storage request from a host;
a means for recording a data block in response to said storage request in a primary cache memory of the storage controller;
a means for creating a cache tag for said recorded data block and recording said cache tag in said primary cache memory;
a means for copying the recorded data block and the cache tag of said primary cache memory to a secondary cache memory of the redundant second storage controller; and
a means for detecting a failure of said primary cache memory of the redundant second storage controller, and upon detection of said failure, processing subsequent storage requests from the host, previously intended for processing by the failed redundant second storage controller, through a secondary cache memory of the storage controller.
- a means for receiving a storage request from a host;
Specification