IP Library Granted Patent US 9,686,178
Granted Patent B2
US 9,686,178 · App. 13/947,934 · Granted Jun 20, 2017

Configuring link aggregation groups to perform load balancing in a virtual environment

Inventors: Sreeram Ravinoothala (San Jose, CA); Serge Maskalik (San Jose, CA)
Assignee: VMware, Inc.
H04L45/245H04L45/586H04L47/125H04L49/30H04L49/70H04L47/32Y02B60/33
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,686,178
App. No.
13/947,934
Granted
Jun 20, 2017
Kind
B2
Abstract

Exemplary methods, apparatuses, and systems configure a first set of ports of a host device to be included within a link aggregation group (LAG) with a switch coupled to the first set of one or more ports. A second set of one or more ports of a second host device is also included within the LAG. The configuration of the LAG includes the switch performing load balancing between ports within the LAG. The first host device receives, via the LAG, a packet to be processed by a service implemented by each of one or more virtual machines running on the first host device. The first host device receives the packet as a result of the switch selecting a port within the first and second sets of ports based upon the load balancing between uplinks to the ports within the LAG.

Claims (40)

1. A computer-implemented method of load balancing across a plurality of host devices, the method comprising:

configuring, via negotiation by a first host device with a switch coupled to a first set of one or more ports of the first host device, the first set of ports to be included within a first link aggregation group (LAG);

configuring, via negotiation by a second host device with the switch, a second set of one or more ports of the second host device to also be included within the first LAG, wherein the second set of ports are coupled to the switch, and wherein the configuration of the first LAG includes the switch performing load balancing between uplinks to ports within the first LAG; and

receiving, by the first host device via the first LAG, a packet to be processed by one of a first plurality of virtual machines running on the first host device or one of a second plurality of virtual machines running on the second host device, a first virtual machine of the first and second pluralities of virtual machines implementing a service to process the packet and each other virtual machine of the first and second pluralities of virtual machines also implementing the service to process the packet, wherein the first host device receives the packet as a result of the switch selecting an uplink to a port within the first and second sets of ports based upon the load balancing between the ports within the first LAG, and wherein the packet is addressed to a destination address, and the destination address is a common address assigned to each virtual machine of the first plurality of virtual machines and each virtual machine of the second plurality of virtual machines.

2. The computer-implemented method of claim 1 , wherein a plurality of the virtual machines running on the first host device implement the service, further comprising:

selecting one of the first plurality of virtual machines to receive the packet, the selection based upon load balancing performed by virtualization software of the first host device; and

delivering the packet to the selected virtual machine.

3. The computer-implemented method of claim 1 , further comprising:

assigning the first plurality virtual machines running on the first host device to the first LAG, wherein a second plurality virtual machines running on the second host device is also assigned to the first LAG.

4. The computer-implemented method of claim 1 , further comprising:

configuring a third set of one or more ports of the first host device to be included within a second LAG, wherein a fourth set of one or more ports of the second host device is also included within the second LAG, each port within the first set of ports being different from ports within the third set of ports and each port within the second set of ports being different from ports within the fourth set of ports.

5. The computer-implemented method of claim 1 , wherein the destination address is a virtual network layer address associated with the first and second pluralities of virtual machines.

6. The computer-implemented method of claim 5 , wherein delivering the packet to the selected virtual machine includes modifying the destination address of the packet.

7. A non-transitory computer-readable medium storing instructions, which when executed by a management server, cause the management server to configure a first host device and a second host device to perform a method comprising:

configuring, via negotiation by the first host device with a switch coupled to a first set of one or more ports of the first host device, the first set of ports to be included within a first link aggregation group (LAG),

configuring, via negotiation by the second host device with the switch, a second set of one or more ports of the second host device to also be included within the first LAG, wherein the second set of ports are coupled to the switch, and wherein the configuration of the first LAG includes the switch performing load balancing between uplinks to ports within the first LAG; and

receiving, by the first host device via the first LAG, a packet to be processed by one of a first plurality of virtual machines running on the first host device or one of a second plurality of virtual machines running on the second host device, a first virtual machine of the first and second pluralities of virtual machines implementing a service to process the packet and each other virtual machine of the first and second pluralities of virtual machines also implementing the service to process the packet, wherein the first host device receives the packet as a result of the switch selecting an uplink to a port within the first and second sets of ports based upon the load balancing between the ports within the first LAG, and wherein the packet is addressed to a destination address, and the destination address is a common address assigned to each virtual machine of the first plurality of virtual machines and each virtual machine of the second plurality of virtual machines.

8. The non-transitory computer-readable medium of claim 7 , wherein a plurality of the virtual machines running on the first host device implement the service, the method further comprising:

selecting one of the first plurality of virtual machines to receive the packet, the selection based upon load balancing performed by virtualization software of the first host device; and

delivering the packet to the selected virtual machine.

9. The non-transitory computer-readable medium of claim 7 , the method further comprising:

assigning the first plurality virtual machines running on the first host device to the first LAG, wherein a second plurality virtual machines running on the second host device is also assigned to the first LAG.

10. The non-transitory computer-readable medium of claim 7 , the method further comprising:

configuring a third set of one or more ports of the first host device to be included within a second LAG, wherein a fourth set of one or more ports of the second host device is also included within the second LAG, each port within the first set of ports being different from ports within the third set of ports and each port within the second set of ports being different from ports within the fourth set of ports.

11. The non-transitory computer-readable medium of claim 7 , wherein the destination address is a virtual network layer address associated with the first and second pluralities of virtual machines.

12. The non-transitory computer-readable medium of claim 11 , wherein delivering the packet to the selected virtual machine includes modifying the destination address of the packet.

13. A system comprising:

a first host device including a first processing device, wherein the first processing device executes instructions that cause the first host device to perform a method comprising:

configuring, via negotiation by the first host device with a switch coupled to a first set of one or more ports of the first host device, the first set of ports to be included within a first link aggregation group (LAG); and

a second host device including a second processing device, wherein the second processing device executes instructions that cause the second host device to perform a method comprising:

configuring, via negotiation by a second host device with the switch, a second set of one or more ports of a second host device to also be included within the first LAG, wherein the second set of ports are coupled to the switch, and wherein the configuration of the first LAG includes the switch performing load balancing between uplinks to ports within the first LAG; and

receiving, by the second host device via the first LAG, a packet to be processed by one of a first plurality of virtual machines running on the first host device or one of a second plurality of virtual machines running on the second host device, a first virtual machine of the first and second pluralities of virtual machines implementing a service to process the packet and each other virtual machine of the first and second pluralities of virtual machines also implementing the service to process the packet, wherein the first host device receives the packet as a result of the switch selecting an uplink to a port within the first and second sets of ports based upon the load balancing between the ports within the first LAG, and wherein the packet is addressed to a destination address, and the destination address is a common address assigned to each virtual machine of the first plurality of virtual machines and each virtual machine of the second plurality of virtual machines.

14. The system of claim 13 , wherein a plurality of the virtual machines running on the second host device implement the service, wherein the second host device selects one of the first plurality of virtual machines to receive the packet, the selection based upon load balancing performed by virtualization software of the second host device, and wherein the second host device delivers the packet to the selected virtual machine.

15. The system of claim 13 , the method further comprising:

assigning the first plurality virtual machines running on the first host device to the first LAG; and

assigning the second plurality virtual machines running on the second host device to the first LAG.

16. The system of claim 13 , the method further comprising:

configuring, by the first host device, a third set of one or more ports of the first host device to be included within a second LAG; and

configuring, by the second host device, a fourth set of one or more ports of the second host device to also be included within the second LAG, each port within the first set of ports being different from ports within the third set of ports and each port within the second set of ports being different from ports within the fourth set of ports.

17. The system of claim 13 , wherein the destination address is a virtual network layer address associated with the first and second pluralities of virtual machines.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2013
From: RAVINOOTHALA, SREERAM; MASKALIK, SERGE
To: VMWARE, INC.
Reel/Frame 030850/0796 →
Continuity (1)
Related Publication 20150026344A1 · Jan 22, 2015