Virtual Bond for VM Communication via Shared Memory
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional virtualization systems face inefficiencies in packet transmission between virtual machines (VMs) due to reliance on network device pass-through, which leads to packet loss and suboptimal performance during VM migration, as VMs cannot access shared memory devices across different host systems.
Innovation Solution
Implementing a virtual bond mechanism that allows VMs to determine if they are hosted on the same system by checking packet reception via shared memory and network device pass-through, enabling efficient communication by switching to shared memory transmission when possible, thus conserving network bandwidth.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If network device pass-through is used for packet transmission between VMs, then communication can occur across different host systems, but packet loss increases and performance deteriorates during VM migration
Solution Approach 1:
The system dynamically switches between two transmission paths (shared memory device and network device pass-through) based on the migration state of VMs. When VMs are stationary and co-hosted, shared memory provides low-latency communication. When VMs migrate to different hosts, the system transitions to network device pass-through to maintain communication capability, thus adapting to changing conditions while maintaining reliability.
Solution Approach 2:
The hypervisor acts as an intermediary that monitors VM migration states and manages the selection of transmission paths. It detects when VMs are co-hosted and routes traffic through shared memory devices, and when VMs are migrated to different hosts, it switches to network device pass-through, thereby mediating between the two communication modes to ensure continuous reliable communication.
2Adaptability or versatility
If network device pass-through is used for all packet transmissions, then VMs can communicate regardless of host system, but network bandwidth is wasted when VMs are co-hosted on the same system
Solution Approach 1:
The system applies different transmission qualities to different communication scenarios: when VMs are co-hosted on the same system, it uses shared memory devices for high-speed local communication; when VMs are on different hosts, it uses network device pass-through for remote communication. This local quality differentiation optimizes bandwidth usage by matching the transmission medium to the spatial relationship between VMs.
Solution Approach 2:
The system dynamically adjusts the transmission path based on real-time migration status. The hypervisor continuously monitors whether source and destination VMs are co-hosted, and switches between shared memory and network device pass-through accordingly, thereby dynamically optimizing network bandwidth consumption while maintaining communication versatility.
3Speed
If shared memory device is used for packet transmission between VMs, then transmission speed improves when VMs are co-hosted, but communication fails when VMs are on different host systems
Solution Approach 1:
The system implements a universal communication framework that supports both shared memory transmission and network device pass-through transmission. The hypervisor manages multiple transmission paths and selects the appropriate one based on VM migration state, making the communication system universal enough to handle both co-hosted and migrated VM scenarios while maintaining high speed when possible.
Data Source
AI summary
A packet is received by a first virtual machine supported by a host system from a second virtual machine via a shared memory device that is accessible to a plurality of virtual machines supported by the host system. The first virtual machine determines that the second virtual machine is supported by the host system in view of receiving the packet via the shared memory device. Identification information associated with the second virtual machine is stored in a virtual bond data structure, wherein the identification information associated with the second virtual machine being present in the virtual bond data structure causes the first virtual machine to transmit a subsequent packet to the second virtual machine via the shared memory device.


