Linux中的通道绑定模式之间有什么区别?


8

在Linux下,您可以将多个网络接口组合成一个“绑定”网络接口以提供故障转移。

但是有几种模式,其中一些不需要开关支持。我不受切换的限制,因为我可以使用任何模式。

但是,在阅读有关不同模式的信息时,并不能立即弄清每种模式的优缺点。

  1. 某些模式是否提供更快的故障转移?
  2. 每种模式对CPU负载的影响如何?
  3. 哪些模式可以结合带宽而不只是提供冗余?
  4. 有限制吗?
  5. balance-rr是否需要开关支持?
  6. 可靠性?您长期的工作经历是什么?

已经阅读了内核绑定方法,不是吗?它应该回答您的问题。
the-wabbit 2012年

是的,它告诉您他们在某种程度上做了什么。但这并不能告诉您它们在生产环境中的表现如何。有人说“不需要开关支持”。而其他人则没有评论,请您猜测。
马特

不确定为什么要投票。这是一个完全正确的问题,不是吗?
马特

进行过否决和/或闭幕表决的人请提供一个理由,以便我至少有机会改善这个问题。
马特

我怀疑投票否决,可能是因为您提出问题的方式使您似乎没有对问题进行过多的研究或阅读文档。请参阅投票否决工具提示。
Zoredache

Answers:


9
  1. 故障转移的最大因素是检测到链路故障的速度。从主机上拔下电缆,它们将正常工作。将活动链接留在否则为无效的交换机上,并且大多数模式(支持信标/ keepalives的模式除外)将无处发送部分流量。

  2. 一般来说,网络流量是由中断驱动的。各种哈希算法不会产生有意义的变化。

  3. 任何非活动/待机或全部广播模式都将在不同程度上共享流量。某些模式可以在每个数据包的基础上进行平衡,其他模式则可以在每个流的基础上进行工作。前者将更均匀地分散负载,而后者在实际网络中则更加有用(阅读:功能/稳定)。

  4. 是的-每种模式都有局限性,但是我们需要更多地了解您的应用程序才能与他们交流。

  5. 仅LACP / 802.3ad(模式4)明确要求在交换机上提供支持。就是说,仅仅因为您以特定的模式发送到交换机并不意味着交换机将以相同的方式发送回给您。

  6. 我倾向于信任的唯一生产模式是802.3ad,通过适当配置的交换机,它可以确保只有正确的链路才能进入通道,并且在流量共享时提供一定程度的对称性,并且当链接已断开。此模式还避免了一些常见但令人讨厌的问题(即单播洪泛)。活动/备用也很常见。在某些情况下可能需要其他模式,但IMO会更痛苦。

其他基于流/ MAC / IP的平衡模式或活动/备用也可以,并且在处理非托管交换机时可能需要。


10

/usr/src/linux/Documentation/networking/bonding.txt您最喜欢的发行版的linux源代码包中的文档文件中对这些要点中的大多数进行了详尽的描述。对于大多数模式,故障转移的速度由“ miimon”参数控制,但不应设置得太低。正常值在1秒以内。

这是我完成的最好的部分:

   balance-rr or 0
       Round-robin policy: Transmit packets in sequential
       order from the first available slave through the
       last. This mode provides load balancing and fault
       tolerance. 


   active-backup or 1
       Active-backup policy: Only one slave in the bond is
       active.  A different slave becomes active if, and only
       if, the active slave fails. The bond's MAC address is
       externally visible on only one port (network adapter)
       to avoid confusing the switch.

       This mode provides fault tolerance. The "primary"
       option affects the behavior of this mode.

   balance-xor or 2
       XOR policy: Transmit based on the selected transmit
       hash policy.  The default policy is a simple [(source
       MAC address XOR'd with destination MAC address) modulo
       slave count].  Alternate transmit policies may be
       selected via the xmit_hash_policy option.

       This mode provides load balancing and fault tolerance.

   broadcast or 3
       Broadcast policy: transmits everything on all slave
       interfaces.  This mode provides fault tolerance.

   802.3ad or 4
       IEEE 802.3ad Dynamic link aggregation.  Creates
       aggregation groups that share the same speed and
       duplex settings.  Utilizes all slaves in the active
       aggregator according to the 802.3ad specification.

       Slave selection for outgoing traffic is done according
       to the transmit hash policy, which may be changed from
       the default simple XOR policy via the xmit_hash_policy
       option. Note that not all transmit policies may be 802.3ad
       compliant, particularly inregards to the packet mis-ordering
       requirements of section 43.2.4 of the 802.3ad standard.
       Differing peer implementations will have varying tolerances for
       noncompliance.

       Note: Most switches will require some type of configuration
       to enable 802.3ad mode.

   balance-tlb or 5
       Adaptive transmit load balancing: channel bonding that
       does not require any special switch support.  The
       outgoing traffic is distributed according to the
       current load (computed relative to the speed) on each
       slave.  Incoming traffic is received by the current
       slave.  If the receiving slave fails, another slave
       takes over the MAC address of the failed receiving
       slave.

   balance-alb or 6
       Adaptive load balancing: includes balance-tlb plus
       receive load balancing (rlb) for IPV4 traffic, and
       does not require any special switch support.

       When a link is reconnected or a new slave joins the
       bond the receive traffic is redistributed among all
       active slaves in the bond by initiating ARP Replies
       with the selected MAC address to each of the
       clients. The updelay parameter must
       be set to a value equal or greater than the switch's
       forwarding delay so that the ARP Replies sent to the
       peers will not be blocked by the switch.

balance-rr,active-backup,balance-tlb和balance-alb不需要开关支持。

balance-rr以碎片为代价提高了性能,在某些协议(CIFS)和两个以上的接口上表现不佳。

balance-alb和balance-tlb可能不适用于所有交换机;通常存在一些arp问题(例如,某些机器可能无法彼此连接)。您可能需要调整各种设置(miimon,updelay)以获得稳定的网络。

balance-xor可能需要交换机配置,也可能不需要。您需要在HP和Cisco交换机上设置接口组(不是 LACP),但是显然在D-Link,Netgear和Fujitsu交换机上没有必要。

802.3ad在交换机端绝对需要一个LACP组。总体而言,这是增强性能的最佳支持选项。

注意:无论您做什么,一个网络连接始终会通过一条物理链接,并且仅通过一条物理链接。因此,在聚合GigE接口时,即使每台计算机具有4个聚合的GigE接口(无论使用何种绑定模式),从计算机A到计算机B的文件传输速度也不能达到1 Gb / s。


请注意,802.3ad并不强制使用LACP。LACP只是用于动态链路聚合配置的控制协议,如果没有LACP ,您可以完美地拥有静态 LA设置。
the-wabbit 2012年

1
是的,但是大多数交换机都不允许静态链接聚合配置,并且将聚合称为“ LACP模式”。
wazoox 2012年

802.3ad同时定义了-静态LA和LACP。如果交换机声称符合802.3ad,则需要同时实现两者。我手头的每个交换机模型都实现了LACP,还实现了静态LA。
the-wabbit 2012年

1

内核文档回答了其中一些问题:

以太网绑定


1
除了提供链接之外,请花一些时间来改善此答案。该链接很有用,但此处的答案应该不仅仅是指向文档的链接。
Zoredache

感谢您的链接。我追求的是第12.1.1节“单交换机拓扑的MT绑定模式选择”。
马特

是的,这就是为什么我只粘贴链接而没有任何评论;-)
FINESEC
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.