10.6. 网络接口绑定
您可以在自定义网络配置中使用各种绑定选项。
10.6.1. overcloud 节点的网络接口绑定
您可以将多个物理 NIC 捆绑在一起,以组成一个名为 bond 的单一逻辑频道。您可以配置绑定来为高可用性系统提供冗余功能,或提高吞吐量。
Red Hat OpenStack Platform 支持 Open vSwitch (OVS)内核绑定、OVS-DPDK 绑定和 Linux 内核绑定。
绑定类型 | 类型值 | 允许的网桥类型 | 允许的成员 |
---|---|---|---|
OVS 内核绑定 |
|
|
|
OVS-DPDK 绑定 |
|
|
|
Linux 内核绑定 |
|
|
|
不要在同一节点上组合 ovs_bridge
和 ovs_user_bridge
。
10.6.2. 创建 Open vSwitch (OVS)绑定
您可以在网络接口模板中创建 OVS 绑定。例如,您可以创建一个绑定作为 OVS 用户空间网桥的一部分:
- type: ovs_user_bridge name: br-dpdk0 members: - type: ovs_dpdk_bond name: dpdkbond0 rx_queue: {{ num_dpdk_interface_rx_queues }} members: - type: ovs_dpdk_port name: dpdk0 members: - type: interface name: nic4 - type: ovs_dpdk_port name: dpdk1 members: - type: interface name: nic5
在本例中,您可以从两个 DPDK 端口创建绑定。
ovs_options
参数包含绑定选项。您可以使用 BondInterfaceOvsOptions
参数在网络环境文件中配置绑定选项:
environment_parameters: BondInterfaceOvsOptions: "bond_mode=active_backup"
10.6.3. Open vSwitch (OVS)绑定选项
您可以使用 NIC 模板文件中的 ovs_options
heat 参数设置各种 Open vSwitch (OVS)绑定选项。
bond_mode=balance-slb
-
源负载平衡(slb)根据源 MAC 地址和输出 VLAN 平衡流,并在流量模式发生变化时定期重新平衡。当您使用
balance-slb
绑定选项配置绑定时,远程交换机不需要配置。网络服务(neutron)将每个源 MAC 和 VLAN 对分配到一个链接,并通过该链接从该 MAC 和 VLAN 传输所有数据包。使用基于源 MAC 地址和 VLAN 号的简单哈希算法,并在流量模式更改时定期重新平衡。balance-slb
模式与 Linux 绑定驱动程序使用的 2 绑定模式类似。您可以使用此模式来提供负载平衡,即使交换机没有配置为使用 LACP。 bond_mode=active-backup
-
当您使用
active-backup
绑定模式配置绑定时,网络服务会使一个 NIC 处于待机状态。当活跃连接失败时,待机 NIC 会恢复网络操作。物理交换机只显示一个 MAC 地址。这个模式不需要交换机配置,当链接连接到单独的交换机时可以正常工作。这个模式不提供负载平衡。 lacp=[active | passive | off]
-
控制链路聚合控制协议(LACP)行为。只有某些交换机支持 LACP。如果您的交换机不支持 LACP,请使用
bond_mode=balance-slb
或bond_mode=active-backup
。 other-config:lacp-fallback-ab=true
- 如果 LACP 失败,则将 active-backup 设置为绑定模式。
other_config:lacp-time=[fast | slow]
- 将 LACP heartbeat 设置为 1 秒 (fast) 或 30 秒 (slow)。默认设置会较慢。
other_config:bond-detect-mode=[miimon | carrier]
- 将链路检测设置为使用 miimon heartbeats (miimon)或监控载体(carrier)。默认为载体。
other_config:bond-miimon-interval=100
- 如果使用 miimon,请设置心跳间隔(毫秒)。
bond_updelay=1000
- 设置链接必须激活的时间间隔(毫秒),以防止出现问题。
other_config:bond-rebalance-interval=10000
- 设置在绑定成员之间重新平衡的时间间隔(毫秒)。将此值设置为 0,以禁用绑定成员之间的流重新平衡。
10.6.4. 使用带有 Open vSwitch (OVS)绑定模式的链路聚合控制协议(LACP)
您可以将绑定与可选的链路聚合控制协议(LACP)一起使用。LACP 是一种协商协议,它为负载平衡和容错创建动态绑定。
使用下表了解 OVS 内核和 OVS-DPDK 绑定接口的兼容性和 LACP 选项。
OVS/OVS-DPDK balance-tcp
模式仅作为技术预览提供。
在控制和存储网络中,红帽建议您将 Linux 绑定与 VLAN 和 LACP 搭配使用,因为 OVS 绑定会造成 control plane 中断的可能性,这可能会在 OVS 或 neutron 代理重启进行更新、热修复和其他事件时发生。Linux bond/LACP/VLAN 配置提供 NIC 管理,而无需 OVS 中断。
目标 | OVS 绑定模式 | 兼容 LACP 选项 | 备注 |
高可用性(主动 - 被动) |
|
| |
增加了吞吐量(主动-主动) |
|
|
|
|
|
|
10.6.5. 创建 Linux 绑定
您可以在网络接口模板中创建 Linux 绑定。例如,您可以创建一个绑定两个接口的 Linux 绑定:
- type: linux_bond name: bond_api mtu: {{ min_viable_mtu_ctlplane }} use_dhcp: false bonding_options: {{ bond_interface_ovs_options }} dns_servers: {{ ctlplane_dns_nameservers }} domain: {{ dns_search_domains }} members: - type: interface name: nic2 mtu: {{ min_viable_mtu_ctlplane }} primary: true - type: interface name: nic3 mtu: {{ min_viable_mtu_ctlplane }}
bonding_options
参数为 Linux 绑定设置特定的绑定选项。
模式
-
设置绑定模式,示例中是
802.3ad
或 LACP 模式。有关 Linux 绑定模式的更多信息,请参阅 Red Hat Enterprise Linux 9 配置和管理网络指南中的 "根据绑定模式启用流交换配置 "。 lacp_rate
- 定义 LACP 数据包是否每 1 秒发送一次,或每 30 秒发送一次。
updelay
- 定义接口在用于流量之前必须激活的最短时间。这个最小配置有助于缓解端口冻结中断。
miimon
- 使用驱动程序的 MIIMON 功能监控端口状态的时间间隔(毫秒)。
使用以下额外示例配置您自己的 Linux 绑定指南:
使用一个 VLAN 将 Linux 绑定设置为
active-backup
模式:.... - type: linux_bond name: bond_api mtu: {{ min_viable_mtu_ctlplane }} use_dhcp: false bonding_options: "mode=active-backup" dns_servers: {{ ctlplane_dns_nameservers }} domain: {{ dns_search_domains }} members: - type: interface name: nic2 mtu: {{ min_viable_mtu_ctlplane }} primary: true - type: interface name: nic3 mtu: {{ min_viable_mtu_ctlplane }} - type: vlan mtu: {{ internal_api_mtu }} vlan_id: {{ internal_api_vlan_id }} addresses: - ip_netmask: {{ internal_api_ip }}/{{ internal_api_cidr }} routes: {{ internal_api_host_routes }}
OVS 网桥上的 Linux 绑定。绑定设置为
802.3ad
LACP 模式,它带有一个 VLAN:- type: linux_bond name: bond_tenant mtu: {{ min_viable_mtu_ctlplane }} bonding_options: "mode=802.3ad updelay=1000 miimon=100" use_dhcp: false dns_servers: {{ ctlplane_dns_nameserver }} domain: {{ dns_search_domains }} members: - type: interface name: p1p1 mtu: {{ min_viable_mtu_ctlplane }} - type: interface name: p1p2 mtu: {{ min_viable_mtu_ctlplane }} - type: vlan mtu: {{ tenant_mtu }} vlan_id: {{ tenant_vlan_id }} addresses: - ip_netmask: {{ tenant_ip }}/{{ tenant_cidr }} routes: {{ tenant_host_routes }}
重要您必须设置
min_viable_mtu_ctlplane
,然后才能使用它。将/usr/share/ansible/roles/tripleo_network_config/templates/2_linux_bonds_vlans.j2
复制到您的 templates 目录中,并根据您的需要进行修改。如需更多信息,请参阅 添加可组合网络,并参阅与网络配置模板相关的步骤。