Patent ID: 7437511
Filing Date: 2008-10-14
Classification: G06F

Abstract:
1. For use in a storage area network (SAN), a method of transferring data, the method comprising: providing a host device in electronic communication with a virtualization layer, the virtualization layer having a plurality of virtual engines, each of the virtual engines logically embodying at least a controller and a respective local cache, wherein the respective local caches are in electronic communication such that the respective local caches comprise a secondary cache layer; receiving, at a controller logically embodied in a first virtual engine, a data transfer command from the host device; determining when a local cache logically embodied in the first virtual engine is responsible for caching a data block corresponding to the data transfer command; transferring the data block corresponding to the data transfer command to the host device when the local cache logically embodied in the first virtual engine is responsible for caching the data block and the data block is contained in the local cache logically embodied in the first virtual engine; identifying a second virtual engine logically embodying a local cache responsible for caching the data block corresponding to the data transfer command when the local cache logically embodied in the first virtual engine is not responsible for caching the data block, wherein the local cache logically embodied in the second virtual engine is a local cache of the secondary cache layer; multicasting the data transfer command to the second virtual engine and a physical device corresponding to the data block when the local cache logically embodied in the first virtual engine is not responsible for caching the data block; and determining which of at least one of the second virtual engine and the physical device responds first with the data block in response to multicasting the data transfer command.