Caching in a virtualization system
First Claim
1. A virtualizer, comprising:
- a task manager for coordinating execution of primary data commands received from a host system;
a cache subsystem coupled to said task manager within the virtualizer for receiving data requests corresponding to said primary data commands and reconciling said data requests to determine if the cache subsystem can service said data requests; and
a command mapper coupled to said cache subsystem within the virtualizer for receiving data requests that cannot be serviced by the cache subsystem and parsing said data requests into at least one secondary data command to be sent to a downstream data storage element via a redundant array of independent disks (RAID) controller separate from the virtualizer.
5 Assignments
0 Petitions
Accused Products
Abstract
A virtualizer module/element and a networked storage controller architecture with a virtualization layer that includes virtualizer modules. The virtualizer modules contain storage controller functionality as well as a cache subsystem. The virtualizer module processes primary data commands received from a host processor to determine if the cache subsystem of the virtualizer can service the data request or if it should be sent to a command mapper to retrieve the data from a downstream storage element. The cache subsystem of the virtualizer module thus enables reduced latency in the networked storage system as well as better management of storage devices and resources. The virtualizer module also facilitates predictive reads and read-ahead operations as well as coalesced write requests to a given storage device in order to increase system performance and storage device longevity.
-
Citations
16 Claims
-
1. A virtualizer, comprising:
-
a task manager for coordinating execution of primary data commands received from a host system; a cache subsystem coupled to said task manager within the virtualizer for receiving data requests corresponding to said primary data commands and reconciling said data requests to determine if the cache subsystem can service said data requests; and a command mapper coupled to said cache subsystem within the virtualizer for receiving data requests that cannot be serviced by the cache subsystem and parsing said data requests into at least one secondary data command to be sent to a downstream data storage element via a redundant array of independent disks (RAID) controller separate from the virtualizer. - View Dependent Claims (2, 3, 4, 5, 6, 14, 15, 16)
-
-
7. A method of operating a virtualizer, said method comprising:
-
receiving a primary data command from an external host system; forwarding said primary data command to a task manager within the virtualizer; coordinating, in said task manager, execution of said primary data command; forwarding a data request corresponding to said primary data command from said task manager to a cache subsystem within the virtualizer said cache subsystem reconciling said data request to determine if the cache subsystem can service said data request; forwarding said data request from said task manager to a command mapper, if said cache subsystem does not have said requested data; parsing said data request in said command mapper into at least one secondary data command; and forwarding said secondary data command from said command mapper to a downstream data storage element via a redundant array of inexpensive disks (RAID) controller separate from the virtualizer.
-
-
8. A method of operating a virtualizer architecture, said method comprising:
-
issuing a write data command for data on a volume of a data storage element, said data storage element coupled to a first of plurality of redundant arrays of independent disk (RAID) controllers; receiving said write data command, and data corresponding to said write data command, in a first virtualizer; storing said write data in a cache subsystem within said first virtualizer; copying said write data into a cache within a second virtualizer; and forwarding the write data with a write command from one of said first virtualizer and said second virtualizer to said first RAID controller, wherein said first RAID controller is separate from the first virtualizer and the second virtualizer.
-
-
9. A method of operating a virtualizer architecture, said method comprising:
-
issuing a write data command from a host processor for data on a disk, said disk coupled to a first of a plurality of virtualizers; receiving said write data command, and write data corresponding to said write data command, in said first virtualizer; storing said write data in a cache subsystem within said first virtualizer; copying said write data into a cache within a second virtualizer; and forwarding the write data and a write command to said disk via a redundant array of inexpensive disks (RAID) controller separate from the first virtualizer and the second virtualizer. - View Dependent Claims (10)
-
-
11. A method of operating a virtualizer architecture, said method comprising:
-
issuing, from a host processor, a primary read data command for data on volumes of multiple data storage elements, each of said data storage elements coupled to one of a plurality of redundant arrays of independent (RAID) controllers; receiving, in one of a plurality of virtualizers, said primary read data command; generating multiple secondary read data commands for said data stored on volumes of multiple data storage elements; forwarding said multiple secondary read data commands to said volumes of said multiple data storage elements; receiving, in said RAID controllers, said requested data from said volumes of multiple data storage elements via a storage interconnect; forwarding, from said RAID controllers, said requested data to said one virtualizer; and storing said requested data in a cache subsystem within said one virtualizer; and forwarding, from said cache subsystem within said one virtualizer, said requested data to said host processor, wherein at least one of the plurality of redundant arrays of independent (RAID) controllers are separate from said one virtualizer.
-
-
12. A virtualizer architecture, comprising:
-
at least one host processor; a plurality of virtualizers for processing primary data commands from said at least one host processor, said plurality of virtualizers coupled to said at least one host processor via a host interconnect; a plurality of redundantly paired redundant arrays of independent disk (RAID) controllers separate from the plurality of virtualizers, the RAID controllers being coupled to said plurality of virtualizers via an interconnect fabric and a virtualization layer interconnect, each of said plurality of virtualizers including therein a cache memory subsystem for temporarily storing data associated with data access requests; and at least one data storage element coupled to one of said RAID controllers of each of said redundantly paired RAID controllers, each data storage element coupled to said one of said RAID controllers via a storage interconnect, each one of said pair of redundantly paired RAID controllers coupled to each other via an interconnect. - View Dependent Claims (13)
-
Specification