Hypervisor Load Balancing via Virtual Switch MAC Modification
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Distributed Load Balancing (DLB) at the guest OS level in virtualization environments is inefficient due to the need to deliver each inbound network packet to every guest, leading to time and resource bottlenecks, and limits scalability, with no transparency to the guest OS and potential performance bottlenecks and single points of failure.
Innovation Solution
Implementing hypervisor-level distributed load-balancing by determining packet distribution based on an algorithm, modifying destination MAC addresses, and using a supervisor filter module to direct packets to specific guests, thereby reducing load and managing resource allocation efficiently without a central load balancer.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of information
If DLB is implemented at guest OS level, then transparency to guest OS is achieved, but performance bottleneck and resource clogging occur due to delivering each packet to every guest
Solution Approach 1:
The patent introduces a network tap device as an intermediary component that sits between the physical network interface and the virtual switch. This tap device intercepts inbound packets before they reach the virtual switch and guests, performs load balancing decisions at the hypervisor level, and directs packets to appropriate guests. This intermediary approach maintains transparency to guests while preventing the performance bottleneck that would occur if every guest processed every packet.
Solution Approach 2:
The patent moves the load balancing function from the guest OS level (software dimension) to the hypervisor level (virtualization layer dimension). By implementing the load balancer as a virtual device in the hypervisor layer rather than within individual guest OSes, the system achieves both transparency to guests and improved performance, as the hypervisor can make centralized load balancing decisions without affecting guest operations.
2Reliability
If DLB is implemented at guest OS level, then distributed architecture is achieved, but scalability is limited due to time and resource clogging in decision-making
Solution Approach 1:
The patent segments the load balancing function into a separate virtual network device that operates independently from individual guests. This segmentation allows the system to maintain the distributed architecture benefits (no single point of failure) while improving scalability, as the hypervisor-level implementation can efficiently manage larger numbers of guests without the resource clogging that would occur at the guest OS level.
3Ease of operation
If centralized load balancer is used, then simplified management is achieved, but single point of failure and performance bottleneck occur
Solution Approach 1:
The patent creates a virtual copy of the load balancer functionality within the hypervisor layer as a virtual network device. This virtual instance provides centralized management simplicity while avoiding the single point of failure problem of physical hardware load balancers. The virtual device can be replicated across virtualization environments and integrated seamlessly with the virtualized infrastructure.
4Reliability
If physical hardware is used for load balancing, then reliability is improved, but cost increases
Solution Approach 1:
The patent replaces physical hardware load balancers with a software-based virtual network device implemented in the hypervisor layer. This substitution maintains the reliability benefits of dedicated load balancing functionality while eliminating the high cost of physical hardware devices. The virtual implementation leverages existing virtualization infrastructure to provide comparable or superior performance at lower cost.
Data Source
AI summary
A method and an apparatus of hypervisor level distributed load-balancing are disclosed. In one aspect, a method includes determining a location to direct a packet. The method also includes distributing the packet to process the packet through a processor. The method also includes assigning the packet to a guest such that a distribution of the packet to the guest is based on an algorithm. The method further includes altering a first destination address of the packet to a second destination address. The second destination address may be based on a virtual network interface of the guest. The method further includes convincing the guest the packet is from a virtual switch based on the second destination address. In addition, the method includes adjusting the distribution of the packet to the guest. The method also includes reducing a load of the guest through the adjustment.


