-
目前网卡绑定
mode
共有七种
(0~6)bond0
、
bond1
< br>、
bond2
、
bond3
p>
、
bond4
、
b
ond5
、
bond6
常用的有三种
:
mode=0
:平衡负载模式,有自动备援,但需要”
Sw
itch
”支援及设定。
mode=
1
:自动备援模式,其中一条线若断线,其他线路将会自动备援。
mode=6
:平衡负载模式,有自动备援,不必”
Switch
”支援及设定。
说明
:
需要说明的是如果想做成
mode 0
的负载均衡
,
仅仅设置这里
optio
nsbond0
miimon=100 mode=0
是不够
的
,
与网卡相连的交换机必须做特殊配置(这两个端口应该采<
/p>
取聚合方式),因为做
bonding
的
这两块网卡是使用同一个
MAC
地址
.
从原理分析一下
(
bond
运行在
mode0
下):
mode 0
下
bon
d
所绑定的网卡的
IP
都被修改成相同
的
mac
地址,如果这些网卡都被
接在
同一个交换机,那么交换机的
arp
表里这个
< br>mac
地址对应的端口就有多
个,那么交
换机接受到发往这个
mac
地址的包应该往哪个端口转发呢?正常情况下
mac
地址是全球
唯一的,一个
mac
地址对应多个端口
肯定使交换机迷惑了。所以
mode0
下的
< br>bond
如果
连接到交换机,交换机这几个端口应该采取
聚合方式(
cisco
称为
ethe
rnetchannel
,
foundry
称为
portgroup
),因为交换机做了聚合后,聚合
下的几个端口也被捆绑成一个
mac
地址
.
我们的解
决办法是,两个网卡接入不同的交换机即可。
mode6
模式下无需配置交换机,因为做
p>
bonding
的这两块网卡是使用不同的
MAC
地
址。
七种
bo
nd
模式说明:
第一种模式:
mod=0
,即:
(balance-rr)Round-robin
policy
(平衡抡循环策略)
特
点:
传输数据包顺序是依次传输(即:第
1
个包走
eth0
,下一个包就走
e
th1
…
.
一直循
环下去,直到最后一个传输完毕),此模式提供负载平衡和容错能力;但是我们知道如果
一个连接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很
有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网
络的吞吐量就会下降
第二种模式:
mod=1
,即:
(active-backup)Active-backup policy
(主
-
备份策略)
特点:
只有一个设备处于活动状态,当一个宕掉另一个马上由备份转换为主设
备。
mac
地
址是外部可见得,从外面
看来,
bond
的
MAC
地址是唯一的,以避免
switch(
交换机
)
发生
混乱。此模式只提供了容错能力;由此
可见此算法的优点是可以提供高网络连接的可用性,
但是它的资源利用率较低,只有一个
接口处于工作状态,在有
N
个网络接口的情况下,资
源利用率为
1/N
第三种模式:
mod=2
,即:
(balance-xor)XOR
policy
(平衡策略)
特点:<
/p>
基于指定的传输
HASH
策略传输数据包
。缺省的策略是:
(
源
MAC
地址
XOR
目标
M
AC
地址
)% slave
数量。其他
的传输策略可以通过
xmit_hash_policy
选项指
定,此模式
提供负载平衡和容错能力
第四种模式:
mod=3
,即:
broadcast
(广播策略)
特点:
在每个
sla
ve
接口上传输每个数据包,此模式提供了容错能力
第五种模式:
mod=4
,即:
(802.3ad)IEEE
802.3ad Dynamic link
aggregation
(
IEEE802.3ad
动态链接聚合)
特点:
创建一个聚合组,它们共享同样的速率和双工设定。根据
802.3ad
p>
规范将多个
slave
工作在同一个激活的
聚合体下。外出流量的
slave
选举是基于传输
hash
策略,该策
略可以通过
xmit_hash_policy
选项从缺省的
XOR<
/p>
策略改变到其他策略。需要注意的
是,
并不是所有的传输策略都是
802.3ad
适应的,尤其考虑到在
802.3ad
标准
43.2.4
章节提及
的包乱序问题。不同的实现可能
会有不同的适应
性。
必要条件:
条件
1
:
ethtool
支持获取每个
slave
的速率和双工设定
条件
2
:
switc
h(
交换机
)
支持
IEEE802.3ad Dynamic link aggregation
条件
3
:大多数
switch(
交换机
)
需要经过特定配置才能支持
802.3ad
模式
第六种模式:
mod=5
,即:
(balance-tlb)Adaptive transmit
load balancing
(适配器传输负
载均衡)
特点:
不需要任何特别的
< br>switch(
交换机
)
支持的
通道
bonding
。在每个
slav
e
上根据当前的
负载(根据速度计算)分配外出流量。如果正在
接受数据的
slave
出故障了,另一个
slave
接管失败的
slave
的
MAC
地址。
该模式的必要条件:
ethtool
支持获取每个
slave
的速率
第七种模式:
mod=6
,即:
(balance-alb)Adaptive load
balancing
(适配器适应性负载均衡)
特点:
该模式包含了
balance-
tlb
模式,同时加上针对
IPV4
流
量的接收负载均衡
(receiveload balance, rlb)
,而且不需要任何
switch(
交换机
)
的支持。接收负载均衡是通过
ARP
协商实现的。
bonding
驱动截获本机发送
的
ARP
应答,并把源硬件地址改写为
bond
中某个
slave
的唯一硬件
地址,从而使得不同的对端使用不同的硬件地址进行通信。
来
自服务器端的接收流量也会被均衡。当本机发送
ARP
请求时,
bonding
驱动把对端的
IP
p>
信息从
ARP
包中复制并保存下来。当
p>
ARP
应答从对端到达时,
bonding
驱动把它的硬件
地址提取出来,并发起一个
ARP
应答给
bond
中的某个<
/p>
slave
。使用
ARP
协商进行负载均
衡的一个问题是:每次广播
ARP<
/p>
请求时都会使用
bond
的硬件地址,因
此对端学习到这个
硬件地址后,接收流量将会全部流向当前的
s
lave
。这个问题可以通过给所有的对端发送
更新(
ARP
应答)来解决,应答中包含他们独一无二的硬件地址,从而导致流
量重新分布。
当新的
slave
加入到
bond
中时,或者某个未激活的
sl
ave
重新
激活时,接收流量也要重
新分布。接收的负载被顺序地分布(
roundrobin
p>
)在
bond
中最高速的
< br>slave
上当某个链路
被重新接上,或者一个新的
p>
slave
加入到
bond
中,接收流量在所有当前激活的
slave
中全
部重新分配,通过使用指定的
MAC
地址给每
个
client
发起
ARP
应答。下面介绍的
updelay
参数必须被设
置为某个大于等于
switch(
交换机
)
转发延时的值,从而保证发往对端
的
ARP
应答
不会被
switch(
交换机
)
阻截
。
必要条件:
条件
1
:
ethtool
支持获取每个
slave
的速率;
条件
2
:底层驱动支持设
置某个设备的硬件地址,从而使得总是有个
slave(curr_active_sl
ave)
使用
bond
的硬件地址,同
时保证每个
bond
中的
slav
e
都有一个
唯一的硬件地址。如果
cu
rr_active_slave
出故障,它的硬件地址将会被新选出来
的
curr_active_slave
接管其实<
/p>
mod=6
与
mod=0
的区别:
mod=6
,先把
e
th0
流量占满,
再占
eth1
,…
.ethX
;而
mod=0
的话,会发现
2
个口的流量
都很稳定,基本一样的带宽。
而
mod=6
,会发现第一个口流量很高,第
2
个口只占了小部分流量<
/p>
Linux
网口绑定:
通过网口绑定
(bond)
技术
,
可以很容易实现网口冗余,负载均衡,从而达到高可用高可靠的
< br>目的。前提约定:
2
个物理网
口分别是:
eth0,eth1
绑定后的虚拟口是:
bond0
p>
服务器
IP
是:
1
0.10.10.1
第一步,配置设定文件:
[plain]
view
plaincopyprint?
1.
[root@woo ~]#
vi /etc/sysconfig/network-scripts/ifcfg-bond0
2.
DEVICE=bond0
3.
BOOTPROTO=none
4.
ONBOOT=yes
5.
IPADDR=10.10.10.1
6.
NETMASK=255.255.255.0
7.
NETWORK=192.168.0.0
8.
-
-
-
-
-
-
-
-
-
上一篇:新视野大学英语(第三版)视听说3--问题详解
下一篇:商务英语笔记整理