US 7,478,221 B1
System and method for using consistent virtual addresses to communicate in cooperative multi-layer virtualization environments
Ronald S. Karr, Palo Alto, Calif. (US); Ramana Jonnala, Sunnyvale, Calif. (US); Dhanesh V. Joshi, Santa Clara, Calif. (US); and Narasimha R. Valiveti, San Jose, Calif. (US)
Assigned to Symantec Operating Corporation, Cupertino, Calif. (US)
Filed on May 03, 2005, as Appl. No. 11/121,229.
Int. Cl. G06F 12/08 (2006.01)
U.S. Cl. 711—203 21 Claims
OG exemplary drawing
 
8. A method comprising:
aggregating storage in one or more physical storage devices, including a first physical storage device, into a logical volume;
providing configuration information for the logical volume to a front-end virtualization participant at a front-end layer of virtualization participants and to a first back-end virtualization participant at a back-end layer of virtualization participants, wherein the configuration information includes a generation identifier indicative of a version of the configuration information;
each of said front-end layer of virtualization participants interacting directly with one or more storage consumers to receive external storage requests from said one or more storage consumers, wherein said one or more storage consumers are external to said front-end layer and said back-end layer of virtualization participants;
each of said back-end layer of virtualization participants providing said volume server and other ones of said front-end and said back-end layers of virtualization participants with access to one or more of said physical storage devices without being directly accessible by said one or more storage consumers;
sending a first internal storage request including a target virtual address identifying a target block of the logical volume from the front-end virtualization participant to the first back-end virtualization participant wherein the first internal storage request includes a front-end generation identifier corresponding to a latest version of the configuration information available at the front-end virtualization participant;
using the configuration information at the first back-end virtualization participant to translate the target virtual address to a corresponding physical block address of the first physical storage device; and
performing a first physical I/O operation on a first physical data block stored at the physical block address corresponding to the target virtual address.