Connecting the world…

load-balancing

Port-channel Cisco vs. VMware ESX

I have had different discussions with different customers about the load-balancing algorithms between a Cisco switch, configured with a port-channel and a VMware ESX server using multiple NICs. Our VMware consultants always choose Route based on IP hashes as load-balancing algorithm. This means that load-balancing happens on layer 3 of the OSI model (source-destination-IP).

In my opinion, the switch should be configured the same way. Depending on the model switch, you can have different default load-balancing algoritmhs. For example, the Cisco Catalyst 3750 uses src-mac load-balancing and the Cisco Catalyst 6500 use src-dst-ip load-balancing. You can check the configured load-balancing algorithm with the following command:

show etherchannel load-balancing

If you would like you change the load-balancing algorithm you can use the global configuration command:

port-channel load-balancing <option>

Be aware that this is a global configuration command, so it affects all the configured port-channels on the switch.

To check the load-balancing between the different NICs, you should have a tool to look at real-time bandwidth statistics. I normally use the tool SNMP Traffic Grapher to monitor the different switch ports. On the ESX console you can check the load-balancing with the commands:

  1. esxtop [enter]
  2. s2 (schedule interval of 2 seconds) [enter]
  3. n [network]

The load should be spread fairly even across the different switch ports en vmnics.