What is the correct xOS address-based algorithm for VMWare ESXi?

  • 24 September 2015
  • 9 replies

I am migrating from a Dell switch stack to a stack of X440 switches. I have 3 VMware ESXi hosts to attach to the stack; each host uses a link aggregate of 6 physical connections.

VMware's knowledge base states that ESXI only supports an "IP HASH" load sharing algorithm. This is a Cisco term that does not appear in the xOS documentation.

My SummitStack will support address-based load sharing, but what is the correct algorithm for ESXi?

You can use the default (L2) but then ESXi won't perform the load sharing, which defeats the purpose of having a link aggregate.

The Dell switch stack uses "Source IP address and source port". There is no corresponding xOS algorithm.

L3 uses both the source and destination IP Addresses; L3_L4 uses the source and destination IP addresses and ports.

9 replies

Userlevel 4
Hello Ssimpson,

I would suggest the following KB article to assist you in addressing this question:

How do I configure EXOS for NIC teaming with route based on an IP hash in ESXi?

I hope this helps.
Userlevel 7
Sounds like the L3_L4 will work for your setup. Have you tested it to see if traffic is being sent out multiple ports with this setup?
Userlevel 7
You can also configure a custom algorithm to only use source or destination addresses. The commands below will set the custom algorithm, then create a LAG using the custom algorithm

configure sharing address-based custom ipv4 source-only enable sharing 1 grouping 1-2 algorithm address-based custom [/code]Note that this will only use the L3 address, not the L4 port.

You can find more information on this in the EXOS User Guide, under Link Aggregation Standard and Custom Algorithms.

In the legend of "show port #:# sharing" I see "L3-and-L4" as a custom algorithm option. But this doesn't appear to be any different from the standard L3_L4 algorithm.

After configuring a group with L3_L4 load sharing and connecting a host to it, the host is communicating with the vCenter server (running on a host still connected to the Dell switches), but there are HA related issues that I want to hear back from VMware about before coming to any conclusions.

@PatrickVoss I'm guessing that "show port xxx utilization" where xxx is a list of all ports on the LAG will tell me if traffic is being sent out multiple ports? "show port sharing" shows a more or less equal number of link up transitions among the LAG members.
Userlevel 7
Yes, the utilization shows ingress and egress traffic. You can toggle different outputs using the space bar. Please keep in mind that this output is an average and that a lag will never evenly distribute information across both links.
Yes, load sharing is not load balancing. But it's better than everything going across a single wire.
Userlevel 7
I just wanted to make sure. It is a common misconception 🙂.
Anyway, after making the configuration changes, and putting some load on the ESXi host, the utilization statistics look encouraging:

Slot-1 Stack.1 # show port A,B,C,D,E,F utilization
Link Utilization Averages Mon Sep 28 15:37:26 2015
Port Link Rx Peak Rx Tx Peak Tx
State bytes/sec bytes/sec bytes/sec bytes/sec
A A 0 556377 53318556 53318556
B A 0 143009 70 128803140
C A 0 3209 11 130255665
D A 521464 845687 105 64082
E A 11 9572 64616223 64616223
F A 175927 2129075 94 1803197[/code]Since the algorithm uses both source and destination, transmits and receives will have different hashes and may go across different member ports. Since there are 3 VLANs, it's possible that all 6 (=3x2) member ports will be used.