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

  • 0
  • 1
  • Question
  • Updated 3 years ago
  • Answered

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.


Photo of ssimpson

ssimpson

  • 132 Points 100 badge 2x thumb

Posted 3 years ago

  • 0
  • 1
Photo of Hernandez, Joshua

Hernandez, Joshua, Employee

  • 1,564 Points 1k badge 2x thumb
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.
Photo of Patrick Voss

Patrick Voss, Employee

  • 11,484 Points 10k badge 2x thumb
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?
Photo of Brandon Clay

Brandon Clay, Escalation Support Engineer

  • 13,086 Points 10k badge 2x thumb
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
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.

-Brandon
Photo of ssimpson

ssimpson

  • 132 Points 100 badge 2x thumb

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.  

Photo of ssimpson

ssimpson

  • 132 Points 100 badge 2x thumb
@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.
Photo of Patrick Voss

Patrick Voss, Employee

  • 11,484 Points 10k badge 2x thumb
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.
Photo of ssimpson

ssimpson

  • 132 Points 100 badge 2x thumb
Yes, load sharing is not load balancing. But it's better than everything going across a single wire.
Photo of Patrick Voss

Patrick Voss, Employee

  • 11,484 Points 10k badge 2x thumb
I just wanted to make sure. It is a common misconception :).
Photo of ssimpson

ssimpson

  • 132 Points 100 badge 2x thumb

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
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.