Method and apparatus for providing centralized intelligent cache between multiple data controlling elements
First Claim
1. In a data storage subsystem having a plurality of data storage elements, an apparatus comprising:
- a plurality of storage controllers which receive and process I/O requests generated by a host computer;
an intelligent central cache dedicated to use by the data storage subsystem, said central cache being cooperatively engaged with said plurality of storage controllers to provide management of said plurality of data storage elements, wherein said intelligent central cache contains more cache memory than any of said plurality of storage controllers and wherein said intelligent central cache does not receive or process I/O requests generated by said host computer; and
a controller communication medium operable for exchange of information among said plurality of storage controllers and said intelligent central cache and said data storage elements, wherein said intelligent central cache and said plurality of storage controllers exchange cache control information to coordinate cache management among said plurality of storage controllers and wherein said intelligent central cache includes a general purpose processor to process said exchange of said cache control information within said intelligent central cache.
3 Assignments
0 Petitions
Accused Products
Abstract
Apparatus and methods which allow multiple storage controllers sharing access to common data storage devices in a data storage subsystem to access a centralized intelligent cache. The intelligent central cache provides substantial processing for storage management functions. In particular, the central cache of the present invention performs RAID management functions on behalf of the plurality of storage controllers including, for example, redundancy information (parity) generation and checking as well as RAID geometry (striping) management. The plurality of storage controllers (also referred to herein as RAID controllers) transmit cache requests to the central cache controller. The central cache controller performs all operations related to storing supplied data in cache memory as well as posting such cached data to the storage array as required. The storage controllers are significantly simplified because the present invention obviates the need for duplicative local cache memory on each of the plurality of storage controllers. The storage subsystem of the present invention obviates the need for inter-controller communication for purposes of synchronizing local cache contents of the storage controllers. The storage subsystem of the present invention offers improved scalability in that the storage controllers are simplified as compared to those of prior designs. Addition of storage controllers to enhance subsystem performance is less costly than prior designs. The central cache controller may include a mirrored cache controller to enhance redundancy of the central cache controller. Communication between the cache controller and its mirror are performed over a dedicated communication link.
119 Citations
28 Claims
-
1. In a data storage subsystem having a plurality of data storage elements, an apparatus comprising:
-
a plurality of storage controllers which receive and process I/O requests generated by a host computer;
an intelligent central cache dedicated to use by the data storage subsystem, said central cache being cooperatively engaged with said plurality of storage controllers to provide management of said plurality of data storage elements, wherein said intelligent central cache contains more cache memory than any of said plurality of storage controllers and wherein said intelligent central cache does not receive or process I/O requests generated by said host computer; and
a controller communication medium operable for exchange of information among said plurality of storage controllers and said intelligent central cache and said data storage elements, wherein said intelligent central cache and said plurality of storage controllers exchange cache control information to coordinate cache management among said plurality of storage controllers and wherein said intelligent central cache includes a general purpose processor to process said exchange of said cache control information within said intelligent central cache. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
at least one additional intelligent central cache, wherein said controller communication medium being further operable for exchange of information among said at least one additional intelligent central cache and said plurality of storage controllers and said intelligent central cache and said data storage elements.
-
-
6. The apparatus of claim 5 wherein said at least one additional intelligent central cache is operable to mirror data in said intelligent central cache.
-
7. The apparatus of claim 1 wherein said controller communication medium includes:
a serial communication medium.
-
8. The apparatus of claim 7 wherein said serial communication medium includes:
a Fibre Channel Arbitrated Loop.
-
9. The apparatus of claim 7 wherein said serial communication medium includes:
a plurality of redundant Fibre Channel Arbitrated Loops.
-
10. The apparatus of claim 1 wherein said plurality of storage controllers provide RAID management of said plurality of data storage elements.
-
11. The apparatus of claim 10 wherein said intelligent central cache provides RAID management of said plurality of data storage elements in cooperation with said storage controllers.
-
12. In a storage subsystem having a plurality of storage controllers, an intelligent central cache comprising:
-
a central cache memory; and
an intelligent cache controller coupled to said central cache memory and coupled to said plurality of storage controllers wherein said plurality of storage controllers receive and process I/O requests generated by a host computer, wherein said intelligent cache controller does not receive I/O requests from said host computer, wherein said central cache memory is larger than any cache memory in any of said plurality of storage controllers, wherein said intelligent cache controller is adapted to process cache requests received from said plurality of storage controllers, wherein said intelligent cache controller includes a general purpose processor to process said cache requests and wherein said cache requests include;
requests to insert data into said central cache memory in accordance with cache meta-data associated with said data supplied by a requesting one of said plurality of storage controllers, requests to delete previously inserted data from said central cache memory, and requests to retrieve previously inserted data from said cache memory. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
indicia of a clean status associated with said data, and indicia of a dirty status associated with said data.
-
-
14. The intelligent cache controller of claim 13 wherein said cache requests further include:
request to return information identifying particular portions of said data previously inserted in said central cache memory having a dirty status associated therewith.
-
15. The intelligent cache controller of claim 13 wherein said cache requests further include:
requests to flush to disk drives associated with said storage subsystem particular portions of said data previously inserted in said central cache memory having a dirty status associated therewith.
-
16. The intelligent cache controller of claim 12 wherein said cache meta-data includes:
-
indicia of a new status associated with said data, and indicia of a old status associated with said data.
-
-
17. The intelligent cache controller of claim 12 wherein said cache meta-data includes:
-
indicia of a parity type associated with said data, and indicia of a non-parity type associated with said data.
-
-
18. The intelligent cache controller of claim 12 wherein said cache requests further include:
-
requests to lock for exclusive access particular portions of said data previously inserted in said central cache memory, and requests to unlock previously locked particular portions of said data previously inserted in said central cache memory.
-
-
19. The intelligent cache controller of claim 12 wherein said cache requests further include:
requests to compute the bitwise XOR of particular portions of said data previously inserted in said central cache memory.
-
20. A RAID data storage subsystem for storing data received from and providing stored data to a host computer, said storage subsystem comprising:
-
a disk array including a plurality of disk drives;
a plurality of storage controllers that receive and process I/O requests generated by said host computer;
a cache controller that includes a large central cache memory, wherein said cache controller controls said central cache memory on behalf of said storage controllers, wherein said cache controller does not receive I/O requests from said host computer, wherein said central cache memory is shared by said storage controllers, wherein said central cache memory is larger than any cache memory in any of said storage controllers, wherein said cache controller includes a general purpose processor for controlling the content of said large central cache memory and wherein said central cache memory stores user data that is transferred between said storage controllers and said disk array, wherein said cache controller provides logical to physical mapping for logical addresses from said host computer to physical addresses on said disk array, wherein said cache controller receives said logical addresses from said storage controllers, and wherein said storage controllers do not provide said logical to physical mapping; and
a communication medium that provides communication between said storage controllers, said cache controller and said disk array. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28)
-
Specification