Virtual machine communication
AssigneeNetApp, Inc.
InventorsPrashanth Radhakrishnan, Kiran Nenmeli Srinivasan
Life of this patent
Estimating the term…
Abstract
Two or more virtual machines may be co-located on a same physical machine, and the virtual machines may communicate with each other. To establish efficient communication, memory mapping information for respective virtual machines can be exchanged between the respective virtual machines. An instance of a virtualized network interface can be established, and a direct communications channel can be mapped between respective virtualized network interfaces. Data packet routing information can be updated, such that data packets transferred between two of more co-located virtual machines can be transferred using the virtualized network interface communications channel.
Claims36
A method for facilitating communication between a first virtual machine and a second virtual machine located on a physical host, comprising:
- establishing a communication channel between the first virtual machine and the second virtual machine utilizing a shared metadata segment;
- transferring, utilizing the shared metadata segment, a first physical memory map of the first virtual machine to a second physical memory of the second virtual machine, the first physical memory map comprising at least one memory pointer to a first physical memory of the first virtual machine;
- transferring, utilizing the shared metadata segment, a second physical memory map of the second virtual machine to the first physical memory of the first virtual machine, the second physical memory map comprising at least one memory pointer to the second physical memory of the second virtual machine, the second physical memory different than the first physical memory;
- and
- facilitating communication between the first virtual machine and the second virtual machine over the communication channel based upon at least one of the first physical memory map or the second physical memory map.
A non-transitory computer-readable medium comprising processor-executable instructions that when executed perform a method for facilitating communication between a first virtual machine and a second virtual machine located on a physical host, comprising:
- establishing a communication channel between the first virtual machine and the second virtual machine utilizing a shared metadata segment;
- transferring, utilizing the shared metadata segment, a first physical memory map of the first virtual machine to a second physical memory of the second virtual machine, the first physical memory map comprising at least one memory pointer to a first physical memory of the first virtual machine;
- transferring, utilizing the shared metadata segment, a second physical memory map of the second virtual machine to the first physical memory of the first virtual machine, the second physical memory map comprising at least one memory pointer to the second physical memory of the second virtual machine, the second physical memory different than the first physical memory;
- and
- facilitating communication between the first virtual machine and the second virtual machine over the communication channel based upon at least one of the first physical memory map or the second physical memory map.
A system for facilitating communication between a first virtual machine and a second virtual machine located on a physical host, comprising:
- a communication component configured to:
- establish a communication channel between the first virtual machine and the second virtual machine utilizing a shared metadata segment;
- transfer, utilizing the shared metadata segment, a first physical memory map of the first virtual machine to a second physical memory of the second virtual machine, the first physical memory map comprising at least one memory pointer to a first physical memory of the first virtual machine;
- transfer, utilizing the shared metadata segment, a second physical memory map of the second virtual machine to the first physical memory of the first virtual machine, the second physical memory map comprising at least one memory pointer to the second physical memory of the second virtual machine, the second physical memory different than the first physical memory;
- and
- facilitate communication between the first virtual machine and the second virtual machine over the communication channel based upon at least one of the first physical memory map or the second physical memory map.
A system for facilitating communication between a first virtual machine and a second virtual machine located on a physical host, comprising:
- one or more processors;
- and
- memory comprising instructions that when executed by at least some of the one or more processors perform acts, comprising:
- establishing a communication channel between the first virtual machine and the second virtual machine utilizing a shared metadata segment;
- transferring, utilizing the shared metadata segment, a first physical memory map of the first virtual machine to a second physical memory of the second virtual machine, the first physical memory map comprising at least one memory pointer to a first physical memory of the first virtual machine;
- transferring, utilizing the shared metadata segment, a second physical memory map of the second virtual machine to the first physical memory of the first virtual machine, the second physical memory map comprising at least one memory pointer to the second physical memory of the second virtual machine, the second physical memory different than the first physical memory;
- and
- facilitating communication between the first virtual machine and the second virtual machine over the communication channel based upon at least one of the first physical memory map or the second physical memory map.
Dependencies are inferred from the claim text.