bond参数解释

来源:互联网 发布:判断闰年的c语言程序 编辑:程序博客网 时间:2024/06/07 21:45

可输入“modinfo bonding”查看当前bond的参数

配置有问题绑定的选项后,可运行 ifup bondN 启动并测试该连接。如果决定要更改选项,则需要先断开该接口,使用 sysfs 修改参数,然后启动接口,并再次测试。

确定绑定连接的最佳参数后,为要配置的绑定接口在 /etc/sysconfig/network-scripts/ifcfg-bondN 文件的 BONDING_OPTS= 指令中以空格分开的方式添加那些参数。无论何时连接该接口时(例如:若设置 ONBOOT=yes 指令,则在系统引导序列中),BONDING_OPTS 中指定的绑定选项即可生效。

以下列表提供了很多常见的频道绑定参数名称及其功能说明。有关详情,请查看 modinfobonding 输出中每个 parm 的概述,或查看 https://www.kernel.org/doc/Documentation/networking/bonding.txt 了解更详细的内容。

绑定接口参数

ad_select=value

指定要使用的 802.3ad聚合选择逻辑,可能值为:

stable 或者 0 —默认设置。由最大聚合带宽选择的活动聚合器。只有全部从属聚合器失效,或活跃聚合器没有从属聚合器时,才会重新选择活动聚合器。

  • bandwidth 或者 1 — 活动聚合器由最大聚合带宽选择。出现在以下情况下会重新选择:

o   在绑定中添加或删除从属;

o   任意从属链接发生变化;

o   任意与 802.3ad有关的状态变化;

o   绑定的管理状态改为 up

  • count 或者 2 — 活动聚合器由号码最大从属连接选择。重新选择的条件与上述 bandwidth 一致。

bandwidth  count 选择策略允许活动聚合器部分失灵时进行 802.3ad 聚合故障转移。这样可保证聚合器高度可用,即 bandwidth或从属连接数一直保持活动。

arp_interval=time_in_milliseconds

以毫秒为单位指定 ARP 监控的频繁度。

重要

关键是要指定 arp_interval 或 arp_ip_target 参数,或者指定 miimon 参数。否则会在链接失败时使网络性能降级。

如果在 mode=0 或者 mode=2(两种负载平衡模式)中使用这个设置,则必须配置网络交换机,以便使用网卡平均发送数据包。有关如何完成此操作的详情,请查看https://www.kernel.org/doc/Documentation/networking/bonding.txt

默认将这个数值设定为 0,即禁用该功能。

arp_ip_target=ip_address[,ip_address_2,…ip_address_16]

启用 arp_interval 参数后,指定 ARP 请求的目标 IP 地址。在使用逗号分开的列表中最多可指定 16  IP 地址。

arp_validate=value

验证 ARP 探测的源/分配,默认为 none。其他值为 activebackup  all

downdelay=time_in_milliseconds

以毫秒为单位指定从链接失败到禁用该链接前要等待的时间。该值必须是 miimon 参数中的多个数值。默认将其设定为 0,即禁用该功能。

fail_over_mac=value

指定 active-backup模式是否应该将所有从属连接设定为使用同一 MAC地址作为 enslavement(传统行为),或在启用时根据所选策略执行绑定 MAC地址的特殊处理。可能值为:

  • none 或 0 -- 默认设置。这个设置禁用 fail_over_mac,并造成在 enslavement 时间内将所有 active-backup 绑定的从属连接绑定到同一 MAC 地址。
  • active 或者 1 — “active” fail_over_mac 策略表示绑定的 MAC 地址应永远是目前活动从属连接的 MAC 地址。从属连接的 MAC 地址不会更改,但在故障转移过程中会更改绑定的 MAC 地址。

这个策略对永远无法更改其 MAC地址的设备,或拒绝使用其自主源 MAC地址传入多播的设备(影响 ARP监控)很有帮助。这个策略的缺点是该网络中的每个设备必须通过免费 ARP更新,这与切换 snoop传入流量以便更新其 ARP表的常规方法相反。如果免费 ARP链接丢失,则可能破坏通讯。

使用这个策略同时采用 MII监控时,在可真正传输并接受数据前就声明链接处于 up状态的设备很可能会丢失免费 ARP,并可能需要设置正确的呼叫建立延迟(updelay)。

  • follow 或者 2 — “follow” fail_over_mac 策略可保证正常选择绑定的 MAC 地址(通常是绑定的第一从属链接的 MAC 地址)。但第二从属连接及之后的从属连接不适用这个 MAC 地址,虽然他们是备份角色;故障转移时从属连接是使用绑定的 MAC 地址编程(之前活动的从属连接接收新激活的从属 MAC 地址)。

这个策略对使用同一 MAC地址编程时变得混乱或发生性能损失的多端口设备有帮助。

lacp_rate=value

指定链接伙伴应使用 802.3ad模式传输 LACPDU的速率:

  • slow 或者 0 — 默认设置。这是让链接伙伴每 30 秒传输一次 LACPDU。
  • fast 或者 0 — 默认设置。这是让链接伙伴每 1 秒传输一次 LACPDU。

miimon=time_in_milliseconds

以毫秒为单位指定 MII链接监控的频率。这在需要高可用性时有用,因为 MII是用来验证网卡是否激活。要验证某个支持 MII工具的具体网卡的驱动程序,请作为 root运行以下命令:

~]# ethtool interface_name |grep "Link detected:"

在这个命令中使用设备接口(比如 eth0),而不是绑定接口替换 interface_name。如果支持 MII,则该命令会返回:

Link detected: yes

如果为高可用性使用绑定的接口,则每个网卡的模块都必须支持 MII。将该值设定为 0(默认设置)即关闭此功能。配置这个设定时,最好从 100 开始。

重要

关键是要指定 arp_interval 或 arp_ip_target 参数,或者指定 miimon 参数。否则会在链接失败时使网络性能降级。

mode=value

允许您指定绑定的策略。value 可为以下之一:

  • balance-rr 或者 0 — 为容错及负载平衡设定轮询机制。从第一个可用的绑定从属接口开始按顺序接收和发送传输数据。
  • active-backup 或者 1 — 为容错设定 active-backup 策略。 通过第一个可用的绑定从属接口接收和发送传输文件。只有在活动的绑定从属接口失败时才使用其他绑定从属接口。
  • balance-xor 或者 2 — 只根据所选哈希策略传输数据。默认为使用源的 XOR 和目标 MAC 地址与从属接口数的余数相乘生成哈希。在这个模式中,指向具体对等接口的模式流量总是使用同一接口发送。因为目标是由 MAC 地址决定,因此这个方法最适合相同链接或本地网络的对等接口流量。如果流量必须通过单一路由器,那么这个流量平衡模式将是次选模式。
  • broadcast 或者 3 — 为容错设定广播策略。可在所有从属接口中传输所有数据。
  • 802.3ad 或者 4 — 设定 IEEE 802.3ad 动态链接聚合策略。创建一个共享同一速度和双工设置的聚合组。在所有活跃聚合器中传输和接受数据。需要兼容 802.3ad 的交换机。
  • balance-tlb 或者 5 — 为容错及负载平衡设定传输负载平衡(TLB)策略。传出流量会根据每个从属接口的当前负载分布。传入流量由当前从属接口接收。如果接收数据从属接口失败,另一个从属接口会接管失败从属接口的 MAC 地址。这个模式只适用于内核绑定模式了解的本地地址,因此无法在桥接后的虚拟机中使用。
  • balance-alb 或者 6 — 为容错及负载平衡设定自适应负载平衡(ALB)策略,包括用于 IPv4 流量的传输及接收负载平衡。使用 ARP 协商获得接收负载平衡。这个模式只适用于内核 binding 模块了解的本地地址,因此无法在桥接后的虚拟机中使用。

primary=interface_name

指定主设备的接口名称,比如 eth0设备是要使用的第一个绑定接口,且在其失败前不会放弃。当绑定接口的一个网卡较快并可处理较大负载时,这个设置特别有帮助。

只有在绑定接口处于 active-backup 模式时这个设置才有用。详情请查看https://www.kernel.org/doc/Documentation/networking/bonding.txt

primary_reselect=value

为主从属接口指定重新选择策略。这会影响在活动从属接口失败或恢复主从属接口时,将主从属接口选为活动从属接口的方式。这个参数是用来防止主从属接口和其他从属接口之间的反转。可能值为:

  • always 或者 0(默认) — 无论何时有备份时,主从属接口成为活动从属接口。
  • better 或者 1 — 如果主从属接口的速度及双工优于当前活动从属接口的速度及双工,有备份时,主从属接口成为活动从属接口。
  • failure 或者 2 — 只有当前活动从属接口失败且主从属接口处于 up 状态时,主从属接口方成为活动从属接口。

在两种情况下会忽略 primary_reselect 设置:

  • 如果没有从属接口处于活动状态,第一个要恢复的从属接口则成为活动从属接口。
  • 成为从属接口后,主从属接口总是活动从属接口。

使用 sysfs 更改 primary_reselect 策略后,会立即根据新策略选择最佳活动从属接口。这可能或可能不会造成活动从属接口变化,要看具体情况。

resend_igmp=range

指定故障转移事件后要进行的 IGMP成员报告数。故障转移后会立即提交一个报告,之后会每隔 200毫秒发送数据包。

有效值范围为 0  255,默认值为 1。数值 0 可防止发出的 IGMP 成员报告响应故障转移事件。

这个选项在绑定模式 balance-rr (mode 0)active-backup (mode 1)balance-tlb (mode 5)balance-alb (mode 6)中有帮助,这样可让故障转移将 IGMP流量从一个从属接口转移到另一个从属接口。因此必须刷新 IGMP报告以便让交换机将传入 IGMP流量通过新选择的从属接口转发。

updelay=time_in_milliseconds

以毫秒为单位指定启用某个链接前要等待的时间。该数值必须是在 miimon 参数值指定值的倍数。默认设定为 0,即禁用该参数。

use_carrier=number

指定 miimon 是否应该使用 MII/ETHTOOL ioctls或者 netif_carrier_ok() 来决定该链接状态。netif_carrier_ok() 功能以来设备驱动程序维持其 netif_carrier_on/off 状态,大多数设备驱动程序支持此功能。

MII/ETHTOOL ioctls 工具利用内核中的弃用调用序列。但这还是可以配置的,以防您的设备驱动程序不支持 netif_carrier_on/off

有效数值是:

  • 1 — 默认设置。启用 netif_carrier_ok() 功能。
  • 0 — 启用 MII/ETHTOOL ioctls 功能。

注意

如果绑定接口坚持链接应处于 up 状态(即使它不应处于该状态),原因可能是因为您的网络设备驱动程序不支持 netif_carrier_on/off

xmit_hash_policy=value

选择 balance-xor  802.3ad 模式中用来选择从属接口的传输哈希策略。可能值为:

  • 0 或者 layer2 — 默认设置。这个参数使用硬件 MAC 地址的 XOR 生成哈希。使用的公式为:

(source_MAC_address XORdestination_MAC) MODULO slave_count

这个算法会将所有流量放到同一从属接口的特定对等网络中,且该网络兼容 802.3ad

  • 1 或者 layer3+4 — 使用上层协议信息(可用时)生成该哈希。这样可让流量进入特定对等网络并跨多个从属接口,虽然单一连接无法跨多个从属接口。

未碎片化 TCP UDP 数据包使用的公式为:

((source_port XORdest_port) XOR

  ((source_IP XORdest_IP) AND 0xffff)

    MODULO slave_count

在碎片化 TCP UDP 以及所有其他 IP 协议流量中会省略源及目标端口信息。非 IP 流量的公式与 layer2 传输哈希策略相同。

这个策略旨在模拟某些交换机的行为,特别是附带 PFC2以及一些 Foundry IBM 产品的 Cisco 交换机。

这个策略使用的算法不兼容 802.3ad

  • 2 或者 layer2+3 — 联合使用 layer2 和 layer3 协议信息生成该哈希。

使用硬件 MAC地址及 IP 地址生成该哈希。这个公式为:

(((source_IP XORdest_IP) AND 0xffff) XOR

  ( source_MAC XORdestination_MAC ))

    MODULO slave_count

这个算法将所有流量放到同一从属接口的特定对等网络中。非 IP 流量的公式与 layer2 传输哈希策略相同。

这个策略旨在提供比单独使用 layer2更平衡的流量分配,特别是在需要 layer3网关设备的环境,以便连接到大多数目标。

这个算法兼容 802.3ad