AHV Networking: Part 2: Understanding OVS Bond Mode

By | 25/01/2019

In last post of this series we learnt few basics of AHV networking. In this post we will learn about network load balancing in Nutanix.

Nutanix networking is based on OVS and the networks are configured via Prism/ACLI. OVS supports 3 bond modes for network load balancing. 

1: Active/Backup

By default the bond mode is in Active/backup mode when AHV is installed. In this mode VM traffic is sent only over one of the physical uplink and rest all uplinks are in passive mode and they become active only when the active uplinks fails.

With a typical NX node you will see 2×10 GB and 2×1 GB NICs and all of them are aggregated together in a bond called bond0(Older AOS)/br0-up (new AOS).

In this mode the maximum throughput of all VMs running on a Nutanix node is limited to 10 Gbps. Active/backup mode is easiest one to configure and there is no additional configuration needed on the upstream switches.

Below diagram illustrates the active/backup bond mode.

OVS-Active-Backup-Arch.PNG

To check the bond mode on AHV, SSH to any of the AHV host and run command: ovs-appctl bond/show

From below screenshot we can infer that there are 4 NICs on host but only one of them is enabled as this is a host inn my lab. In prod you will see all of them enabled and present on default bond.

ahv-nw-2.PNG

Note: Active-backup mode is enabled by default, but can be configured with the following command: “ovs-vsctl set port br0 bond_mode=active-backup” 

2: Balance SLB (Source Based Load Balancing)

In this mode all the interfaces/uplinks in a bond is active at same time and VM’s running on AHV can use all interfaces to send their traffic out to physical network. The only caveat is a single VM can send it traffic through only one of the uplink. If a VM is Multi-NIC VM then it can utilize more than one uplink at a time.

In this mode traffic load on interfaces is continuously measured traffic and when one of the interface is highly utilized, some of the traffic is shifted to a less utilized interfaces. The parameter bond-rebalance-interval dictates how often OVS should perform the traffic load measurement. This bond mode also do not need any special configuration on upstream switches.

Note: bond-rebalance-interval parameter can be manually configured. The default rebalance interval is 10 seconds.

To measure traffic load, OVS uses the source MAC hash of the running VMs.

ovs-blc-slb.PNG

Important: Nutanix does not recommend using balance-slb mode for multicast traffic.

3: LACP (Balance TCP)

In this bond mode, VM’s running on AHV can take full advantage of the bandwidth provided by multiple uplinks. In this mode OVS sees multiple uplinks as a single Layer-2 link. Traffic can be split between multiple links in an active-active fashion based on a traffic-hashing algorithm.

This mode requires LACP/Link aggregation configured on the upstream switches. 

In balance-tcp mode, a single user VM with multiple TCP streams could potentially use all available uplink bandwidth at a time.

ovs-balance-tcp.png

And that’s it for this post. In next post of this series, we will learn how to change bond mode on OVS. 

I hope you enjoyed reading this post. Feel free to share this on social media if it is worth sharing :)