Este contenido no está disponible en el idioma seleccionado.
Chapter 13. Network Interface Bonding
This chapter defines some of the bonding options you can use in your custom network configuration.
13.1. Network Interface Bonding and Link Aggregation Control Protocol (LACP) Copiar enlaceEnlace copiado en el portapapeles!
You can bundle multiple physical NICs together to form a single logical channel known as a bond. You can configure bonds to provide redundancy for high availability systems or increased throughput.
Using single root I/O virtualization (SR-IOV) on bonded interfaces is not supported.
Red Hat OpenStack Platform supports Linux bonds, Open vSwitch (OVS) kernel bonds, and OVS-DPDK bonds.
The bonds can be used with the optional Link Aggregation Control Protocol (LACP). LACP is a negotiation protocol that creates a dynamic bond for load balancing and fault tolerance.
Red Hat recommends the use of Linux kernel bonds (bond type: linux_bond) over OvS kernel bonds (bond type: ovs_bond). User mode bonds (bond type: ovs_dpdk_bond) must be used with user mode bridges (type: ovs_user_bridge) as opposed to kernel mode bridges (type: ovs_bridge). However, do not combine ovs_bridge and ovs_user_bridge on the same node.
On control and storage networks, Red Hat recommends the use of Linux bonds with VLAN and LACP, because OVS bonds carry the potential for control plane disruption that can occur when OVS or the neutron agent is restarted for updates, hot fixes, and other events. The Linux bond/LACP/VLAN configuration provides NIC management without the OVS disruption potential.
Here is an example configuration of a Linux bond with one VLAN.
params:
$network_config:
network_config:
- type: linux_bond
name: bond_api
bonding_options: "mode=active-backup"
use_dhcp: false
dns_servers:
get_param: DnsServers
members:
- type: interface
name: nic3
primary: true
- type: interface
name: nic4
- type: vlan
vlan_id:
get_param: InternalApiNetworkVlanID
device: bond_api
addresses:
- ip_netmask:
get_param: InternalApiIpSubnet
The following example shows a Linux bond plugged into the OVS bridge
params:
$network_config:
network_config:
- type: ovs_bridge
name: br-tenant
use_dhcp: false
mtu: 9000
members:
- type: linux_bond
name: bond_tenant
bonding_options: "mode=802.3ad updelay=1000 miimon=100"
use_dhcp: false
dns_servers:
get_param: DnsServers
members:
- type: interface
name: p1p1
primary: true
- type: interface
name: p1p2
- type: vlan
device: bond_tenant
vlan_id: {get_param: TenantNetworkVlanID}
addresses:
-
ip_netmask: {get_param: TenantIpSubnet}
The following example shows an OVS user space bridge:
params:
$network_config:
network_config:
- type: ovs_user_bridge
name: br-ex
use_dhcp: false
members:
- type: ovs_dpdk_bond
name: dpdkbond0
mtu: 2140
ovs_options: {get_param: BondInterfaceOvsOptions}
#ovs_extra:
#- set interface dpdk0 mtu_request=$MTU
#- set interface dpdk1 mtu_request=$MTU
rx_queue:
get_param: NumDpdkInterfaceRxQueues
members:
- type: ovs_dpdk_port
name: dpdk0
mtu: 2140
members:
- type: interface
name: p1p1
- type: ovs_dpdk_port
name: dpdk1
mtu: 2140
members:
- type: interface
name: p1p2
13.2. Open vSwitch Bonding Options Copiar enlaceEnlace copiado en el portapapeles!
The overcloud provides networking through Open vSwitch (OVS). Use the following table to understand support compatibility for OVS kernel and OVS-DPDK for bonded interfaces. The OVS/OVS-DPDK balance-tcp mode is available as a technology preview only.
This support requires Open vSwitch 2.9 or later.
| OVS Bond mode | Application | Notes | Compatible LACP options |
| active-backup | High availability (active-passive) | active, passive, or off | |
| balance-slb | Increased throughput (active-active) |
| active, passive, or off |
| balance-tcp (tech preview only ) | Not recommended (active-active) |
| active or passive |
You can configure a bonded interface in the network environment file using the BondInterfaceOvsOptions parameter as shown in this example:
parameter_defaults:
BondInterfaceOvsOptions: "bond_mode=balance-slb"
13.3. Linux bonding options Copiar enlaceEnlace copiado en el portapapeles!
You can use LACP with Linux bonding in your network interface templates:
- type: linux_bond
name: bond1
members:
- type: interface
name: nic2
- type: interface
name: nic3
bonding_options: "mode=802.3ad lacp_rate=[fast|slow] updelay=1000 miimon=100"
-
mode- enables LACP. -
lacp_rate- defines whether LACP packets are sent every 1 second, or every 30 seconds. -
updelay- defines the minimum amount of time that an interface must be active before it is used for traffic (this helps mitigate port flapping outages). -
miimon- the interval in milliseconds that is used for monitoring the port state using the driver’s MIIMON functionality.
For more information on Linux bonding options, see 7.7.1. Bonding Module Directives in the Red Hat Enterprise Linux 7 Networking Guide.
13.4. OVS bonding options Copiar enlaceEnlace copiado en el portapapeles!
The following table provides some explanation of these options and some alternatives depending on your hardware.
|
|
Balances flows based on source MAC address and output VLAN, with periodic rebalancing as traffic patterns change. Bonding with |
|
| This mode offers active/standby failover where the standby NIC resumes network operations when the active connection fails. Only one MAC address is presented to the physical switch. This mode does not require any special switch support or configuration, and works when the links are connected to separate switches. This mode does not provide load balancing. |
|
|
Controls the Link Aggregation Control Protocol (LACP) behavior. Only certain switches support LACP. If your switch does not support LACP, use |
|
| Sets the LACP behavior to switch to bond_mode=active-backup as a fallback. |
|
| Set the LACP heartbeat to 1 second (fast) or 30 seconds (slow). The default is slow. |
|
| Set the link detection to use miimon heartbeats (miimon) or monitor carrier (carrier). The default is carrier. |
|
| If using miimon, set the heartbeat interval in milliseconds. |
|
| Number of milliseconds a link must be up to be activated to prevent flapping. |
|
| Milliseconds between rebalancing flows between bond members. Set this value to zero to disable rebalancing flows between bond members. |