作用:增加带宽,例如两个前兆的一台网卡通过bond后可以将本地host的单个ip的带宽增加两倍。
增加可用性,做HA保护,单个网口down后ip地址仍然可用。
bond接触很久了,最初的项目中心机房的业务服务器跟数据库服务都是设置bond的。目前的项目主要用bond来增加数据带宽。
网上有非常详细的英文资料介绍:http://www.linuxfoundation.org/collaborate/workgroups/networking/bonding#Requirements_for_specific_modes
这里总结下几种bond模式的区别:
mode 1 active-backup
最简单的主从热备方式,当前只使用bond中的一个物理网口,如果当前主网口down,则立刻启用备用网口。
mode 2 banlance-xor
最简单的负荷分担模式,当前所有的物理端口均可用,bond驱动简单计算hash值选择数据包的物理端口。规则是取source跟destination的异或值,然后除以bond中物理网口个数取余,结果就是选中的网口的编号。
mode 4 802.3ad
类似mode2,负荷分担模式,当前所有的物理端口均可用。跟mode2的区别在端口选择策略。mod4采用802.3ad协议规定的xmit_hash_policy。
要求:ethtool能够识别物理端口的速度和是否双工。
switch支持802.3ad协议规定的动态链路聚合。
mode 5 banlance-tlb
端口负载选择策略比mode 2智能一些,在做端口hash时考虑了本地不同的bond port速度。不像mode 4一样需要switch的特殊支持。
要求:ethtool能够识别物理端口的速度和是否双工。说明:
mode 0 banlance-rr负荷分担模式,唯一一种模式,可以将同一个tcp socket以stripe方式负荷分担到所有物理网口。bond驱动将同一个socket上packet,以rond-robin的方式依次选择不同的物理端口发送出去,类似于raid 0。需要switch支持trunking或etherchannel。
这种方式可能导致tcp报文的乱序发送和接收,因此需要调整host主机的tcp重传的系统参数:net.ipv4.tcp_reordering 。
mode 0保证了host主机tcp发包的stripe方式,但是host在收报时是否可以做到stripe,要看switch是否支持tcp的stripe。很多交换机在一个ether channel发包时,仅仅是根据tcp/udp的端口号取个hash值去选择物理端口,这样同一个tcp的socket报文每次只能发到固定物理端口上。此时,mode 0的stripe仅仅是单向而不是双工的。
说明:
etherchannel其实就是讲多个物理端口映射为同一个逻辑的物理端口,cisco switch的一项技术。802.3ad则是etherchannel的一个公开的标准,是同一个种技术。
原文地址:http://m.blog.csdn.net/blog/load2006/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/42209.html