RAID controller system utilizing front end and back end caching systems including communication path connecting two caching systems and synchronizing allocation of blocks in caching systems
First Claim
1. In a disk drive array control system having a host I/O port configured for connection to a host computer and at least one disk I/O port configured for connection to a plurality of disks forming a disk drive array, a controller comprising:
- a host I/O processor in communication with the host I/O port and configured to perform I/O transactions with the host computer through the host I/O port;
a cache memory;
a front end caching subsystem in communication with the host I/O processor and configured to cache blocks of data comprising host I/O transactions in the cache memory;
a disk array I/O processor configured to access host data in the cache memory and in communication with the plurality of disk drives, the disk array I/O processor processing host I/O transactions into disk I/O transactions;
a back end caching subsystem in communication with the disk array I/O processor, the back end caching subsystem configured to cache disk array meta-data in the cache memory; and
a communication path between the front end caching subsystem and the back end caching subsystem, whereby allocation of blocks in the caching subsystems are synchronized.
1 Assignment
0 Petitions
Accused Products
Abstract
A disk drive array controller generally has a host I/O port configured for connection to a host computer and a plurality of disk I/O ports configured for connection to a corresponding plurality of disks forming a disk drive array. A controller constructed in accordance with various aspects of the present invention may include a host I/O processor in communication with the host I/O port and configured to perform I/O transactions with the host computer through the host I/O port; a cache memory; a front end caching subsystem in communication with the host I/O processor and configured to cache blocks of data comprising host I/O transactions in the cache memory; a disk array I/O processor configured to access host data in the cache memory and in communication with the plurality of disk drives, the disk array I/O processor processing host I/O transactions into disk I/O transactions; and a back end caching subsystem in communication with the disk array I/O processor, the back end caching subsystem configured to cache disk array meta-data in the cache memory. Variations of this basic system are possible, and contemplated as within the scope of the present invention. The disk drive array controller may further include a communication path between the front end caching subsystem and the back end caching subsystem, whereby allocation of blocks in the caching subsystems are synchronized. The communication path may be, for example, a control store common to the front end caching subsystem and the back end caching subsystem, the control store holding a data structure through which caching and I/O transaction information are communicated between the front end caching subsystem and the back end caching subsystem.
355 Citations
19 Claims
-
1. In a disk drive array control system having a host I/O port configured for connection to a host computer and at least one disk I/O port configured for connection to a plurality of disks forming a disk drive array, a controller comprising:
-
a host I/O processor in communication with the host I/O port and configured to perform I/O transactions with the host computer through the host I/O port; a cache memory; a front end caching subsystem in communication with the host I/O processor and configured to cache blocks of data comprising host I/O transactions in the cache memory; a disk array I/O processor configured to access host data in the cache memory and in communication with the plurality of disk drives, the disk array I/O processor processing host I/O transactions into disk I/O transactions; a back end caching subsystem in communication with the disk array I/O processor, the back end caching subsystem configured to cache disk array meta-data in the cache memory; and a communication path between the front end caching subsystem and the back end caching subsystem, whereby allocation of blocks in the caching subsystems are synchronized. - View Dependent Claims (2, 3, 4, 5)
-
-
6. In a RAID Level 5 disk array controller having a host I/O port and at least one disk drive I/O port, the improvement comprising:
-
a cache memory; a front-end cache connected to cache in the cache memory host data transferred through the host I/O port; a back-end cache connected to cache in the cache memory disk drive meta-data transferred through the plurality of disk drive I/O ports; and a communication path between the front end caching subsystem and the back end caching subsystem, whereby allocation of blocks in the subsystems are synchronized. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A RAID compliant disk drive array controller having a host I/O port configured for connection to a host computer and at least one disk I/O port configured for connection to a plurality of disks forming a disk drive array, the RAID controller using blocks of meta-data in connection with controlling the disk drive array, the controller comprising:
-
a front end subsystem in communication with the host I/O port which transfers blocks of host data between the cache memory and the host I/O port, the front end subsystem including a caching system which stores and retrieves blocks of host data using the cache memory; a back end subsystem in communication with the disk I/O port which transfers blocks of host data between the cache memory and the disk I/O port, the back end subsystem including a caching system which stores and retrieves blocks of meta-data the cache memory; and a communication link between the front end subsystem and the back end subsystem, whereby allocation of blocks in the caching subsystems are synchronized. - View Dependent Claims (12, 13, 14)
-
-
15. In a RAID compliant disk drive array control system having a host I/O port configured for connection to a host computer and at least one disk I/O port configured for connection to a plurality of disks forming a disk drive array, the RAID controller using blocks of meta-data in connection with controlling the disk drive array, a controller comprising:
-
a cache memory; a front end subsystem in communication with the host I/O port which transfers blocks of host data between the cache memory and the host I/O port, the front end subsystem including a caching system which stores and retrieves blocks of host data using the cache memory; a back end subsystem in communication with the disk I/O port which transfers blocks of host data between the cache memory and the disk I/O port, the back end subsystem including a caching system which stores and retrieves the blocks of meta-data in the cache memory; and a communication link between the front end subsystem and the back end subsystem, whereby allocation of blocks in the caching subsystems are synchronized; and wherein the back end subsystem further comprises; a disk I/O processor which converts transfers of host data between a host I/O form and a RAID compliant physical disk I/O form. - View Dependent Claims (16)
-
-
17. In a disk drive array control system having a host I/O port configured for connection to a host computer and at least one disk I/O port configured for connection to a plurality of disk drives, a controller comprising:
-
a host I/O processor in communication with the host I/O port and through which I/O transactions with the host computer are performed; a disk array I/O system which receives host I/O transactions, processes host I/O transactions into disk I/O transactions and is connected in communication through the disk I/O port with the disk drives; and a cache system including a cache memory, the cache system in communication with the host I/O processor and in communication with the disk array I/O processor, and the cache system caching in the cache memory blocks of host I/O transaction data and blocks of disk array meta-data; and wherein the cache system further comprises; a front end cache subsystem receiving host I/O transaction data and storing the host I/O transaction data in the cache memory; a back end cache subsystem receiving disk array meta-data and storing the disk array meta-data in the cache memory; and a communication path between the front-end caching subsystem and the back-end caching subsystem whereby allocation of blocks in the cache memory are synchronized. - View Dependent Claims (18, 19)
-
Specification