4.5. 为 Ceph 节点配置多个绑定接口


使用绑定接口组合多个 NIC,并为网络连接添加冗余性。如果在 Ceph 节点上有足够的 NIC,可以在每个节点上创建多个绑定接口来扩展冗余功能。

然后,您可以对节点所需的每个网络连接使用绑定接口。这可为每个网络提供冗余和专用连接。

绑定接口的最简单实现涉及使用两个绑定,一个用于 Ceph 节点使用的每个存储网络。这些网络如下:

前端存储网络(StorageNet)
Ceph 客户端使用此网络与对应的 Ceph 集群交互。
后端存储网络(StorageMgmtNet)
Ceph 集群使用此网络来根据集群的放置组策略来平衡数据。有关更多信息,请参阅 Red Hat Ceph 架构指南中的 放置组(PG)

要配置多个绑定接口,您必须创建新的网络接口模板,因为 director 不提供可用于部署多个绑定 NIC 的任何示例模板。但是,director 提供部署单个绑定接口的模板。此模板为 /usr/share/openstack-tripleo-heat-templates/network/config/bond-with-vlans/ceph-storage.yaml。您可以在此模板中为附加 NIC 定义额外的绑定接口。

注意

有关创建自定义模板的更多信息,请参阅高级 Overcloud 自定义指南中的创建自定义模板

以下片段包含 /usr/share/openstack-tripleo-heat-templates/network/config/bond-with-vlans/ceph-storage.yaml 文件中定义的单个绑定接口的默认定义:

  type: ovs_bridge // 
1

  name: br-bond
  members:
    -
      type: ovs_bond // 
2

      name: bond1 // 
3

      ovs_options: {get_param: BondInterfaceOvsOptions} 
4

      members: // 
5

        -
          type: interface
          name: nic2
          primary: true
        -
          type: interface
          name: nic3
    -
      type: vlan // 
6

      device: bond1 // 
7

      vlan_id: {get_param: StorageNetworkVlanID}
      addresses:
        -
          ip_netmask: {get_param: StorageIpSubnet}
    -
      type: vlan
      device: bond1
      vlan_id: {get_param: StorageMgmtNetworkVlanID}
      addresses:
        -
          ip_netmask: {get_param: StorageMgmtIpSubnet}
1
名为 br-bond 的单个网桥包含此模板中定义的绑定。这一行定义网桥类型,即 OVS。
2
br-bond 网桥的第一个成员是绑定接口本身,名为 bond1。此行定义 bond1 的绑定类型,这也是 OVS。
3
默认绑定名为 bond1
4
ovs_options 条目指示 director 使用一组特定的绑定模块指令。这些指令通过 BondInterfaceOvsOptions 传递,您也可以在此文件中进行配置。有关配置绑定模块指令的详情,请参考 第 4.5.1 节 “配置绑定模块指令”
5
绑定的 member 部分定义哪些网络接口由 bond1 绑定。在本例中,绑定接口使用 nic2 (设置为主接口)和 nic3
6
br-bond 网桥有两个其他成员:前端(StorageNetwork)和后端(StorageMgmtNetwork)存储网络的 VLAN。
7
device 参数定义 VLAN 应使用哪个设备。在本例中,两个 VLAN 都使用绑定接口 bond1

使用至少两个 NIC,您可以定义额外的网桥和绑定接口。然后,您可以将其中一个 VLAN 移到新的绑定接口,这会提高存储网络连接的吞吐量和可靠性。

当您自定义 /usr/share/openstack-tripleo-heat-templates/network/config/bond-with-vlans/ceph-storage.yaml 文件时,红帽建议您使用 Linux 绑定(type: linux_bond ),而不是默认的 OVS (type: ovs_bond)。此绑定类型更适合企业生产部署。

以下编辑的代码片段定义了额外的 OVS 网桥(br-bond2),它存放一个名为 bond2 的新 Linux 绑定。bond2 接口使用两个额外 NIC nic4nic5,仅用于后端存储网络流量:

  type: ovs_bridge
  name: br-bond
  members:
    -
      type: linux_bond
      name: bond1
      bonding_options: {get_param: BondInterfaceOvsOptions} // 
1

      members:
        -
          type: interface
          name: nic2
          primary: true
        -
          type: interface
          name: nic3
    -
      type: vlan
      device: bond1
      vlan_id: {get_param: StorageNetworkVlanID}
      addresses:
        -
          ip_netmask: {get_param: StorageIpSubnet}
-
  type: ovs_bridge
  name: br-bond2
  members:
    -
      type: linux_bond
      name: bond2
      bonding_options: {get_param: BondInterfaceOvsOptions}
      members:
        -
          type: interface
          name: nic4
          primary: true
        -
          type: interface
          name: nic5
    -
      type: vlan
      device: bond1
      vlan_id: {get_param: StorageMgmtNetworkVlanID}
      addresses:
        -
          ip_netmask: {get_param: StorageMgmtIpSubnet}
1
因为 bond1bond2 都是 Linux 绑定(而非 OVS),它们使用 bonding_options 而不是 ovs_options 来设置绑定指令。更多信息请参阅 第 4.5.1 节 “配置绑定模块指令”

有关此自定义模板的完整内容,请参阅 附录 B, 自定义接口模板示例:多个绑定接口

4.5.1. 配置绑定模块指令

添加并配置绑定接口后,使用 BondInterfaceOvsOptions 参数来设置您希望每个绑定接口使用的指令。您可以在 /usr/share/openstack-tripleo-heat-templates/network/config/bond-with-vlans/ceph-storage.yaml 文件的 parameter : 部分找到此信息。以下片段显示了此参数的默认定义(即空):

BondInterfaceOvsOptions:
    default: ''
    description: The ovs_options string for the bond interface. Set
                 things like lacp=active and/or bond_mode=balance-slb
                 using this option.
    type: string

default: 行中定义您需要的选项。例如,要使用 802.3ad(模式 4)和 LACP 速率 1 (fast),使用 'mode=4 lacp_rate=1':

BondInterfaceOvsOptions:
    default: 'mode=4 lacp_rate=1'
    description: The bonding_options string for the bond interface. Set
                 things like lacp=active and/or bond_mode=balance-slb
                 using this option.
    type: string

有关其他支持的绑定选项的更多信息,请参阅高级 Overcloud 优化 指南中的 Open vSwitch 绑定选项。有关自定义 /usr/share/openstack-tripleo-heat-templates/network/config/bond-with-vlans/ceph-storage.yaml 模板的完整内容,请参阅 附录 B, 自定义接口模板示例:多个绑定接口

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部