10.6. 网络接口绑定


您可以在自定义网络配置中使用各种绑定选项。

10.6.1. overcloud 节点的网络接口绑定

您可以将多个物理 NIC 捆绑在一起,以组成一个名为 bond 的单一逻辑频道。您可以配置绑定来为高可用性系统提供冗余功能,或提高吞吐量。

Red Hat OpenStack Platform 支持 Open vSwitch (OVS)内核绑定、OVS-DPDK 绑定和 Linux 内核绑定。

表 10.10. 支持的接口绑定类型
绑定类型类型值允许的网桥类型允许的成员

OVS 内核绑定

ovs_bond

ovs_bridge

interface

OVS-DPDK 绑定

ovs_dpdk_bond

ovs_user_bridge

ovs_dpdk_port

Linux 内核绑定

linux_bond

ovs_bridgelinux_bridge

interface

重要

不要在同一节点上组合 ovs_bridgeovs_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-slbbond_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.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 目录中,并根据您的需要进行修改。如需更多信息,请参阅 添加可组合网络,并参阅与网络配置模板相关的步骤。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.