Network bonding模式简介

原文:https://www.ibm.com/support/knowledgecenter/en/linuxonibm/com.ibm.linux.z.l0wlcb00/l0wlcb00_bondingmodes.html

Linux bonding driver 支持系统管理员设置bonding接口的不同模式。每种bonding模式都有自己的网络数据传输的策略。为了达到最大吞吐量和容错,选择合适的bonding模式和相应的选项很重要。

bonding模块的当前版本支持以下7种模式:

mode 0(balance-rr)
Round-Robin策略。按顺序从第一个slave到最后一个slave,让它们挨个发送报文。本模式提供负载均衡和容错能力。

mode 1 (active-backup)
主备策略。只有一个slave(译注:slave可理解为物理网口)是active的。当且仅当active的slave坏掉之后,才会有另一个slave变成active. bond的MAC地址仅在一个端口(网络适配器)上可见,以避免混淆交换机。(The bond’s MAC address is externally visible on only one port (network adapter) to avoid confusing the switch. )本模式提供容错能力。主要选项会影响本模式的行为。(The primary option affects the behavior of this mode.)

mode 2 balance-XOR)
数据传输行为基于选定的传输Hash策略。该策略可以通过 xmit_hash_policy 选项进行指定。本模式提供负载均衡和容错能力。(译注:缺省的策略是:(源MAC地址 XOR 目标MAC地址) % slave数量)

mode 3 (broadcast)
广播模式。在所有的slave端口上发送所有的数据。本模式提供容错能力。

mode 4 (802.3ad)
IEEE 802.3ad 动态链路聚合(Dynamic Link Aggregation)策略。创建聚合组,在该组内共享相同的传输速率和双工设置。根据802.3ad规范,利用聚合组内的所有slave.
(译注:关于链路聚合,根据wiki,其定义与目的为: 在计算机网络中,链路聚合指的是使用各种方法来合并多条并行的网络连接以便增加吞吐量以超越单条连接的吞吐量,并且能够提供链路冗余功能以防止某条链路断掉。一个链路聚合组(LAG: Link Aggregation Group)合并若干物理端口为单一的一条高带宽的数据通路,这样就在该组内的这些端口上做了分流并提高了连接的可靠性。)(译注:本模式需要交换机的支持。现在的交换机可能一般都支持。)

mode 5 (balance-tlb)
自适应的传输负载均衡。建立的是channel bonding. 对交换机没有特殊要求。出去的流量会根据当前每个slave的负载进行分发;而进入的流量就从相应的端口进入。如果接收数据的slave坏掉了,另一个slave会接管坏掉的slave的MAC地址以继续接收。

mode 6 (balance-alb)
自适应的负载均衡。对于IP v4的流量,支持发送的负载均衡和接收的负载均衡。对交换机没有特殊要求。接收的负载均衡是通过ARP negotiation达到的。bonding driver拦截本机的ARP回复,然后使用本bond中的一个slave的硬件地址来重写这个ARP回复。这样,就使得不同的对端会拿到关于本机的不同的硬件地址。(译注:各对端对本机的不同物理端口发送数据)

关于bonding mode的更详细的信息,请参考文章:“Linux Ethernet Bonding Driver HOWTO” .

参考文献:
https://en.wikipedia.org/wiki/Link_aggregation
http://blog.51cto.com/iceyao/1572214
http://blog.51cto.com/linuxnote/1680315

猜你喜欢

转载自blog.csdn.net/nirendao/article/details/82975239