Source Hypervisor Packet Queuing for VM Migration Reliability
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
During virtual machine migration, packet drops occur due to network latency and misrouting, which can lead to network overload and failure to achieve zero packet loss, especially when the network takes time to update the new location of the migrated virtual machine.
Innovation Solution
Implementing a mechanism where the source hypervisor queues incoming data packets intended for the migrated virtual machine until the network has updated its routing tables, using a data structure like a FIFO buffer to manage these packets without modifying them, and only forwarding them once the target hypervisor has confirmed the new location, thus minimizing packet loss and system overhead.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the source hypervisor immediately forwards packets to the new location after VM migration, then the system responds quickly to network traffic, but packet drops occur due to network latency and misrouting
Solution Approach 1:
The source hypervisor performs preliminary actions by queuing packets at the source location before the network has fully updated routing tables. This preliminary queuing prevents packet drops during the transition period when routing information is inconsistent across the network.
Solution Approach 2:
A packet queue acts as an intermediary buffer between the source hypervisor and the network. This intermediary holds packets temporarily, allowing the system to bridge the time gap between VM migration initiation and network routing table updates, ensuring reliable packet delivery without immediate forwarding delays.
2Reliability
If the source hypervisor queues packets for migrated VMs, then packet loss is reduced, but system overhead increases due to buffering and management operations
Solution Approach 1:
The packet queue automatically manages itself through standard queueing data structures that handle insertion, storage, and retrieval operations. The system self-regulates by naturally dropping packets only when the queue reaches full capacity, eliminating the need for complex management logic while achieving zero packet loss under normal conditions.
Solution Approach 2:
The system changes the parameter of packet handling from immediate forwarding to buffered forwarding with a defined queue capacity. This parameter change simplifies the management complexity by establishing clear boundaries (queue full condition) that automatically trigger packet dropping behavior without requiring sophisticated decision-making algorithms.
3Reliability
If packets are buffered at the source hypervisor until network updates complete, then misrouting is prevented, but network latency increases due to waiting for routing updates
Solution Approach 1:
The system applies partial buffering by queuing packets only for the specific duration needed for network routing updates, rather than indefinite holding. This partial action maintains correct routing while minimizing latency by releasing packets as soon as routing tables are updated, avoiding excessive buffering delays.
Solution Approach 2:
The packet queue performs a preliminary anti-action by preventing premature forwarding of packets before routing updates are complete. This preliminary holding action counteracts the harmful effect of misrouting, ensuring packets are only forwarded when the network is ready to receive them at the correct destination.
Data Source
AI summary
Implementations of the disclosure provide for queuing portions of the network traffic directed to a migrated guest for both receiving and transmitting at a source of the migration. In one implementation, a method is provided. The method comprises receiving, by a processing device via a network interface card (NIC), a first data packet. The first data packet includes a network address associated with a virtual machine (VM) that migrates from a first host to a second host. The first data packet is queued in a memory buffer at the first host in view of the network address. An indication that the network address of the VM is associated with the second host is received. Thereupon, the method causes the NIC to transmit the first data packet from the memory buffer over a network associated with the VM at the second host.


