You can connect a single virtual switch to multiple physical Ethernet adapters using the VMware Infrastructure feature called NIC teaming. A NIC team can share the load of traffic between physical and virtual networks among some or all of its members and provide passive failover in the event of a hardware failure or a network outage. You can set NIC teaming policies at vswitch and port group level.
Load balancing allows you to spread network traffic from virtual machines on a virtual switch across two or more physical Ethernet adapters, giving higher throughput than a single physical adapter could provide. When you set NIC teaming policies, you have the following options for load balancing:
- Route based on the originating virtual switch port ID
- Route based on source MAC hash
- Use explicit failover order
- Route based on IP hash
Let's pick one out, "Route based on IP hash". I was not familiar with IP Hash at all. But after a good research more and more began to be clearly. still a lot is foggy to me about this topic.
In general, this is a typical VMware network configuration. One Production VLAN attached to two vmnics. Those two vmnics are configured in an EtherChannel configuration. EtherChannel is a link aggregation (port trunking) method used to provide fault-tolerance and high-speed links between switches by grouping two to eight physical Ethernet links to create a logical Ethernet link with additional failover links. For additional information on Cisco EtherChannel, see the EtherChannel Introduction by Cisco.
If an 'EtherChannel' stack member that has ports participating in an EtherChannel fails or leaves the stack, the stack master removes the failed stack member switch ports from the EtherChannel. The remaining ports of the EtherChannel, if any, continue to provide connectivity. Thats how you get a failover on your physical switches.
The physical port of vmnic3 and vmnic4 are configured similar as shown below
NIC Teaming policies set as shown below.
|In IP Hash load balancing policy all physical switch ports connected to the active uplinks must be in EtherChannel mode|
|IP Hash load balancing should be set for all port groups using the same set of uplinks|
|The IP Hash based load balancing does not support standby uplink physical adapters. It has to be active/active|
Network failover detection: Relies solely on the link status that the network adapter provides. This option detects failures, such as cable pulls and physical switch power failures, but not configuration errors, such as a physical switch port being blocked by spanning tree or that is misconfigured to the wrong VLAN or cable pulls on the other side of a physical switch.
Beacon Probing: No use to enable this. somehow I have to figure out why sometime.
Notify Switches: Select Yes or No to notify switches in the case of failover. If you select Yes, whenever a virtual NIC is connected to the standard switch or whenever that virtual nic’s traffic would be routed over a different physical nic in the team because of a failover event, a notification is sent out over the network to update the lookup tables on physical switches.
Failback: This option determines how a physical nic is returned to active duty after recovering from a failure. If failback is set to Yes which is default, the adapter is returned to active duty immediately upon recovery, displacing the standby adapter that took over its slot, if any. If failback is set to No, a failed nic is left inactive even after recovery until another currently active adapter fails, requiring its replacement.
Failover Order: The IP Hash based load balancing does not support standby uplink physical adapters. It has to be active/active
A couple of good referencs are:
- Sample configuration of EtherChannel - Link aggregation with ESX/ESXi and Cisco/HP switches (KB article - VMware)
- NFS and IP-HASH loadbalancing (Article by Frank Denneman)
- IP-HASH versus LBT (Article by Frank Denneman)