服务器bonding
server
cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
IPADDR=211.98.243.231
NETMASK=255.255.255.224
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
BONDING_OPTS="mode=4 miimon=100 xmit_hash_policy=layer3+4"
mode=4 支持802.3ad(LACP)模式的负载均衡
miimon=100
xmit_hash_policy=1(layer3+4) 可以超过物理端口带宽
cat /etc/sysconfig/network-scripts/ifcfg-ethX
DEVICE=ethX
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
MASTER=bond0
SLAVE=yes
switch
#force10
Create a LAG
Force10(conf)#interface port-channel 1
Force10(conf-if-po-32)#no shutdown
Force10(conf-if-po-32)#switchport
Force10(conf)#interface port-channel 2
Force10(conf-if-po-32)#no shutdown
Force10(conf-if-po-32)#switchport
Force10(conf)#interface port-channel 3
Force10(conf-if-po-32)#no shutdown
Force10(conf-if-po-32)#switchport
Force10(conf)#interface vlan 2
Force10(conf-if-vl-10)#untagged port-channel 1
Force10(conf-if-vl-10)#untagged port-channel 2
Force10(conf-if-vl-10)#untagged port-channel 3
# untagged用于服务器互联, tagged用于交换机互联
interface vlan 2
no untagged gigabitethernet 0/27-28
exit
interface range gigabitethernet 0/27 - 28
no switchport
shutdown
port-channel-protocol lacp
port-channel 2 mode active
no shutdown
exit
interface vlan 2
no untagged gigabitethernet 0/25-26
exit
interface range gigabitethernet 0/25 - 26
no switchport
shutdown
port-channel-protocol lacp
port-channel 1 mode active
no shutdown
exit
#dell n3048
create vlan
vlan 10
exit
create LAG
interface port-channel 1
switchport access vlan 10
exit
interface Gi1/0/25
channel-group 1 mode active
switchport access vlan 10
exit
interface Gi1/0/26
channel-group 1 mode active
switchport access vlan 10
exit
#dell2848
Switch -> ports -> LAG Configuration
Load Balance -> Layer 2-3 (mac & ip)
Switch
g25, g26 -> lag 1
g27, g28 -> lag 2
g29, g30 -> lag 3
bond mode 参数
mode=0 or mode=balance-rr
Round-robin策略:从头到尾顺序的在每一个slave接口上面发送数据包。
本模式提供负载均衡和容错的能力。
mode=1 or mode=active-backup
主备策略:在绑定中,只有一个slave被激活。当且仅当活动的slave接口失败时才会激活其他slave。为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见。
在bongding的2.6.2及其以后的版本中,主备模式下发生一次故障迁移时,bonding将在新激活的slave上会送一个或者多个gratuitous ARP.bonding的主salve接口上以及配置在接口上的所有VLAN接口都会发送gratuitous ARP,只要这些接口上配置了至少一个IP地址。VLAN接口上发送的的gratuitous ARP将会附上适当的VLAN id。
本模式提供容错能力,primary option,documented below会影响本模式的行为。
mode=2 or mode=balance-xor
XOR策略:基于所选择的传送hash策略。
本模式提供负载均衡和容错的能力。
mode=3 or mode=broadcast
广播策略:在所有的slave接口上传送所有的报文。
本模式提供容错能力。
mode=4 or mode=802.3ad
IEEE 802.3ad 动态链路聚合。创建共享相同的速率和双工模式的聚合组。能根据802.3ad规范利用所有的slave来建立聚合链路。
Salve的出站选择取决于传输的hash策略,默认策略是简单的XOR策略,而hash策略则可以通xmit_hash_policy选项加以改变。
需要注意的是:不是所有的传输策略都与802.3ad兼容,尤其是802.3ad标准的43.2.4章节中关于 packet mis-ordering要求的地方。不同个体的实现往往出现很大的不兼容。
先决条件:
1. 每个slave的基本驱动支持Ehtool获取速率和双工状态。
2. 交换机支持IEEE 802.3ad动态链路聚合。大多数的交换机都需要使用某种配置方式来启用802.3ad模式。
mode=5 or mode=balance-tlb
自适应传输负载均衡:信道绑定不需要特殊的交换机支持。出口流量的分布取决于当前每个slave的负载(计算相对速度)。进口流量从当前的slave的接收。如果接收salve出错,其他的slave接管失败的slave的MAC地址继续接收。
先决条件:
每个slave的基本驱动支持Ehtool获取速率状态。
mode=6 or mode=balance-alb
自适应负载均衡:包括balance-tlb(模式5)以及用于IPV4流量的接收负载均衡,并且不需要特殊的交换机支持。接收负载均衡通过ARP协商实现。bonding的驱动拦截本机发出的ARP Replies(ARP回应报文),并且用bond的某一个slave的硬件地址改写ARP报文的源地址,使得本服务器对不同的设备使用不同的硬件地址。本服务器建立的连接的接收流量也是负载均衡的。当本机发送ARP Request时,bonding驱动通过ARP报文复制并保存节点的IP信息。当从其他节点接收到ARP Reply,bonding驱动获取节点的硬件地址并且会回应一个包含绑定好的slave的硬件地址的ARP Reply给发送的节点。用ARP协商的负载均衡的有一个问题是每次用bond的硬件地址广播ARP报文,那么其他节点发送的数据全部集中在一个slave上,处理ARP更新给其他所有节点的时候,每个节点会重新学习硬件地址,导致流量重新分配。当新加入一个slave或者一个非激活的slave重新激活的时候也会导致接收流量重新分配。接收流量负载是串行(轮转)的分配在bond的一组速率最高的slave上。
当一个链路重连或者一个新的slave加入的时候,bond会重新初始化ARP Replies给所有的客户端。updelay参数的值必须等于或者大于交换机的forwarding delay,以免ARP Replies被交换机阻塞。
先决条件:
1.每个slave的基本驱动支持Ehtool获取速率状态。
2.基本驱动支持当设备打开时重新设置硬件地址。也要求每一个slave具有唯一的硬件地址。如果curr_active_slave失败,它的硬件地址被新选上的curr_active_slave硬件地址来替换。
# The active-backup, balance-tlb and balance-alb modes do not require any specific configuration of the switch.
XOR策略
xmit_hash_policy=0 or xmit_hash_policy=layer2
layer2 (0): (source MAC XOR destination MAC) modulo slave count
xmit_hash_policy=2 or xmit_hash_policy=layer3
layer2+3 (2): (((source IP XOR dest IP) AND 0xffff) XOR ( source MAC XOR destination MAC )) modulo slave count
xmit_hash_policy=1 or xmit_hash_policy=layer3+4
layer3+4 (1): ((source port XOR dest port) XOR ((source IP XOR dest IP) AND 0xffff) modulo slave count
# 为了能更加均衡,可采用mac&ip异或哈希
服务器bonding的更多相关文章
- 关于提高服务器的带宽策略bonding
一:bonding的概念 所谓bonding就是将多块网卡绑定同一IP地址对外提供服务,可以实现网卡的带宽扩容.高可用或者负载均衡. 二:bonding的优势 1 网络负载均衡 2 提高带宽网络传输效 ...
- mysql学习(2)-MySQL服务器优化
调优思路: 1.数据库设计与规划--以后再修该很麻烦,估计数据量,使用什么存储引擎 2.数据的应用--怎样取数据,sql语句的优化 3.mysql服务优化--内存的使用,磁盘的使用 4.操作系统的优化 ...
- Linux下双网卡绑定(bonding技术)
Linux网卡绑定探析 2013-08-20 15:39:31 现在很多服务器都自带双千兆网口,利用网卡绑定既能增加网络带宽,同时又能做相应的冗余,目前应用于很多的场景.linux操作系统下自带的 ...
- kickstart bonding安装
bonding用的是最简单的负载均衡模式,交换机不需要做配置. https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Lin ...
- Nginx下载服务生产服务器调优
一.内存调优 内核关于内存的选项都在/proc/sys/vm目录下. 1.pdflush,用于回写内存中的脏数据到硬盘.可以通过 /proc/sys/vm/vm.dirty_background_ ...
- channel bonding
一.什么是bondingLinux bonding驱动提供了一个把多个网络接口设备捆绑为单个的网络接口设置来使用,用于网络负载均衡及网络冗余二.bonding应用方向1.网络负载均衡对于bonding ...
- openstack私有云布署实践【2 安装前的服务器基本环境准备】
服务器物理机都安装centos7.2 1511版本 , 此次采用的分区方式全是自动XFS格式LVM,在装系统时就将所有本地raid5硬盘都加入LVM全用了.默认/home目录有着最大的硬盘空间 并且我 ...
- 基于Centos6.6的R720服务器四网口端口聚合的实践
服务器多网口端口聚合,其目的主要在于网卡容灾和提升带宽.linux端口绑定,提供7种模式,如下: 关于mode共有0-6等7种模式,详细请参考官方手册!mode的值表示工作模式,他共有0,1,2,3, ...
- (转载)Bonding技术指南
原文链接:http://www.wushiqin.com/?post=68 一.什么是网卡绑定及简单原理 网卡绑定也称作"网卡捆绑",就是使用多块物理网卡虚拟成为一块网卡,以提供负 ...
随机推荐
- Java的安全性和可移植性
Java的这两个特性,关键在于Java编译器的输出并不是可执行的代码,而是字节码 bytecode. 字节码是一套设计用来在Java运行时系统下执行的高度优化的指令集,该Java运行 ...
- XML封装与验证消息
Document document = DocumentHelper.createDocument(); document.setXMLEncoding(ChARSET_UTF_8); Element ...
- Linux命令(18)查看当前用户who、whoami、who am i
首先看命令的使用情况: [@sjs_9_108 ~]$ whoami spider [@sjs_9_108 ~]$ who am i spider pts/ -- : (192.168.1.1) [@ ...
- RabbitMQ介绍4 - 编程(C#客户端示例)
C#终端的说明文档: http://www.rabbitmq.com/dotnet-api-guide.html 这里介绍使用RabbitMQ的几种典型场景. 1. 简单direct模式( http: ...
- 关于Rotation和Quaternion的一些问题
当我们使用unity的时候,面对一个物体,一个不可避免的问题就是:控制物体的旋转. unity的Transform组件的第二个属性Rotation为我们提供控制物体旋转的功能.在一个物体的Inspec ...
- SQL Server查询死锁并KILL
杀掉死锁的sqlserver进程 SELECT request_session_id spid,OBJECT_NAME (resource_associated_entity_id)tableNa ...
- sublime3快捷 输入html
ID and CLASS attributes html > // 直接生成整个框架 > 表示 tab建 #header <div id="header"> ...
- js中使用s(c)标签
在js或者jquery中使用s标签,其实并不难理解,s标签也只是一个标签而已,当你想象成js+s标签=js+html标签就理解了 例如: <script type="text/java ...
- Python的安装与基本语法
一,Python简介 Python是一种计算机程序设计语言,都是使用C语言实现,但是比C语言容易学习,易于阅读.Python可以应用于众多领域,整体呈上升趋势,广泛使用Python来做的事一 ...
- [ZOJ 1010] Area (计算几何)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1010 题目大意:给你n个点,问你顺次连线能否连成多边形?如果能, ...