Creating network bonds

Bonding multiple network interfaces is optional but provides the following benefits:

  • High network availability. If one of the interfaces fails, the traffic will be automatically routed through the working interface(s).
  • Higher network performance. For example, two bonded Gigabit interfaces will deliver the throughput of about 1.7 Gbit/s or up to 200 MB/s. For a storage node, the required number of network interfaces to bond may depend on the number of disks. For example, an HDD can deliver data at speeds of up to 1 Gbps.

Limitations

  • A network interface must have at least one IPv4 address.
  • You can only assign an IPv6 address manually. Obtaining an IPv6 address via DHCP is not supported.
  • You cannot bond Ethernet and Infiniband interfaces.
  • You cannot bond network bridges and Infiniband interfaces.
  • If you are bonding an Open vSwitch-based bridge used in the compute cluster with another network interface, choose between these two bonding modes:

    • balance-tcp, where load balancing is done based on L2-L4 data like the destination MAC address, IP address, and TCP port. This mode requires that Link Aggregation Control Protocol (LACP) be enabled on the physical switch the node is connected to.
    • active-backup, where one network interface is active and all other interfaces are passive. If the active interface fails, a passive one becomes active instead.

To create a bond

Admin panel

  1. On the Infrastructure > Nodes screen, click the name of the node, go to the Network interfaces tab, and then click Create.
  2. In the Create network interface window, select the Bond type and network interfaces to bond, and then click Next.
  3. Select the bonding mode. For both fault tolerance and good performance, it is recommended to set the balance-xor mode.

  4. Select a network to assign the bond to, and then specify the network parameters:

    • Select Automatically (DHCP) to obtain the IP address, DNS, and routing settings from the DHCP server.
    • Select Automatically (DHCP address only) to obtain only the IP address from the DHCP server.
    • Select Manually, and then specify the IPv4 address and optionally the IPv6 address in CIDR notation by clicking Add.

    Dynamic IP address allocation will cause network issues as soon as the IP addresses of cluster nodes change. Configure static IP addresses from the start or as soon as possible.

  5. Specify a gateway. The provided gateway will become the node’s default.

  6. Enter the desired MTU value in the MTU field. If you leave Auto, the subordinate interface MTU will be used.

  7. Select the MAC address in the MAC field. Select Auto to automatically choose between the MAC addresses of the subordinate interfaces or select one of them manually.
  8. Click Create.

Command-line interface

Use the following command:

vinfra node iface create-bond [--ipv4 <ipv4>] [--ipv6 <ipv6>] [--gw4 <gw4>] [--gw6 <gw6>]
                              [--mtu <mtu>] [--dhcp4 | --no-dhcp4] [--dhcp6 | --no-dhcp6]
                              [--auto-routes-v4 | --ignore-auto-routes-v4]
                              [--auto-routes-v6 | --ignore-auto-routes-v6]
                              [--bonding-opts <bonding_opts>] [--network <network>]
                              [--node <node>] --bond-type <bond-type> --ifaces <ifaces>
--ipv4 <ipv4>
A comma-separated list of IPv4 addresses
--ipv6 <ipv6>
A comma-separated list of IPv6 addresses
--gw4 <gw4>
Gateway IPv4 address
--gw6 <gw6>
Gateway IPv6 address
--mtu <mtu>
MTU interface value
--dhcp4
Enable DHCPv4
--no-dhcp4
Disable DHCPv4
--dhcp6
Enable DHCPv6
--no-dhcp6
Disable DHCPv6
--auto-routes-v4
Enable automatic IPv4 routes
--ignore-auto-routes-v4
Ignore automatic IPv4 routes
--auto-routes-v6
Enable automatic IPv6 routes
--ignore-auto-routes-v6
Ignore automatic IPv6 routes
--network <network>
Network ID or name
--bonding-opts <bonding_opts>
Additional bonding options
--bond-type <bond-type>
Bond type (balance-rr, active-backup, balance-xor, broadcast, 802.3ad, balance-tlb, balance-alb)
--node <node>
Node ID or hostname (default: node001.vstoragedomain)
--ifaces <ifaces>
A comma-separated list of network interface names, for example, iface1,iface2,…,iface<N>

For example, to bond network interfaces eth2 and eth3 into bond0 of the type balance-xor on the node node002, run:

# vinfra node iface create-bond --ifaces eth2,eth3 --bond-type balance-xor --dhcp4 --node node002