
常用的三种Bond模式
配置过程以mode=6为例,其它7种模式请参考扩展阅读
mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。 mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。 mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定。
物理接口
2015610165454336jpg (274×145)
CentOS版本
复制代码代码如下:
datanode01:~>cat /etc/redhat-release
CentOS release 64 (Final)
禁用NetworkManager
复制代码代码如下:
#立即关闭禁用NetworkManager并禁用开机自启动
/etc/initd/NetworkManager stop
chkconfig NetworkManager off
/etc/initd/network restart
关闭iptables和selinux(可选)
复制代码代码如下:
#立即关闭iptables并禁用开机自启动
/etc/initd/iptables stop
chkconfig iptables off
#立即关闭selinux并永久禁用
setenforce 0
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/‘ /etc/selinux/config
修改主机名
复制代码代码如下:
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=namenode01
#刷新生效
hostname namnode01
source /etc/sysconfig/network
配置IP
私有地址
复制代码代码如下:
cd /etc/sysconfig/network-scripts
[root@datanode09 network-scripts]# cat ifcfg-eth3
DEVICE=eth3
ONBOOT=yes
BOOTPROTO=none
IPADDR=101294619
NETMASK=2552552550
IPV6INIT=no
USERCTL=no
双网卡绑定
复制代码代码如下:
cd /etc/sysconfig/network-scripts
#编辑eth0
cat > ifcfg-eth0 << EOF
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
MASTER=bond0
EOF
#编辑eth2
cat > ifcfg-eth2 << EOF
DEVICE=eth2
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
MASTER=bond0
EOF
#编辑bond0
cat > ifcfg-bond0 << EOF
DEVICE=bond0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
IPADDR=1033214
NETMASK=2552552550
GATEWAY=10331
IPV6INIT=no
USERCTL=no
EOF
#设置bond参数,注意mode选择
cat > /etc/modprobeconf << EOF
alias bond0 bonding
options bond0 miimon=100 mode=6
EOF
#加入开机自启动参数
cat >> /etc/rclocal << EOF
ifenslave bond0 eth0 eth2
EOF
#重启网卡
service network restart
#使绑定网卡立即生效
ifenslave bond0 eth0 eth2
#测试绑定网络
ping 10331
常用3种网卡绑定模式对比
mode=0
中断任意一条链路或恢复链路,网络0丢包
优点:流量提高1倍
缺点:需要接入同一交换机做聚合配置,无法保证物理交换机高可用(Cisco似乎有解决方案?)
mode=1
中断任意一条链路丢失1-3个包(秒),恢复链路时0丢包
优点:交换机无需配置
缺点:如上
mode=6
中断任意一条链路0丢包,恢复链路时丢失10-15个包(秒)
优点:交换机无需配置,流量提高1倍在Linux系统中,通常会将多个网卡绑定为一个逻辑网卡,这样可以提高网络的稳定性,那么要如何将多个网络绑定为一个呢下面小编就给大家介绍下Linux下多网卡绑定的bond模式原理。
将多个Linux网络端口绑定为一个,可以提升网络的性能,比如对于备份服务器,需要在一个晚上备份几个T的数据,如果使用单个的千兆网口将会是很严
重的瓶颈。其它的应用,比如ftp服务器,高负载的下载网站,
都有类似的问题。因此使用Linux
teaming或bond来绑定多个网卡作为一个逻辑网口,配置单个的IP地址,会大幅提升服务器的网络吞吐(I/O)。
Linux的多网卡绑定功能使用的是内核中的“bonding”模块,关于此模块可以参考Linux
Ethernet
Bonding
Driver文档,
但是目前发布各个Linux版本内核均已包含了此模块,大多数情况下不需要重新编译内核。
Linux
的
bonding
驱动提供了绑定/集成(bond)多个网卡为一个虚拟逻辑网口的功能。并请注意绑定的网口(bonded)有多种工作模式;
一般来说,分为
热后备(hot
standby)
和
负载均衡(load
balancing)。
在Redhat/Fedora和其它类Redhat
Linux中是比较容易配置的。
1创建bond0配置文件
vi
/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
--物理设备名字
IPADDR=19216812
--IP地址
NETMASK=2552552550
--子网掩码
GATEWAY=19216811
--网关
DNS=8888
--DNS
ONBOOT=yes
--随机启动
NAME=bond0
BOOTPROTO=none
USERCTL=no
--是否允许非root用户控制该设备
2修改被绑定的eth0和eth1的配置文件
vi
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=“eth0”
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
HWADDR=00:15:17:CC:FC:35
eth1的配置文件与之相同,只是device的值改为eth1即可。
3装在bond模块驱动
编辑/etc/modprobeconf或者/etc/modulesconf文件,加入如下内容,使系统启动时加载bonding模块驱动
alias
bond0
bonding
option
bond0
miimon=100
mode=1
说明:
1)miimon=100
用来进行链路监测的。即每100ms监测一次链路状态。bonding只监测主机与交换机之间链路。如果交换机出去的链路出问题而本身没有问题,那么bonding认为链路没有问题而继续使用。
2)mode=1
表示提供冗余功能。除此之外还可以为0、2、3,共四种模式。0表示负载均衡
4在/etc/rcd/rclocal文件中加入如下语句,使得系统启动自动运行
ifenslave
bond0
eth0
eth1
route
add
-net
1921681254
netmask
2552552550
bond0
#如有需要才加该路由
5检测、验证配置
首先执行命令装载bonding模块:modprobe
bonding
重启网络服务,并确认bond0正确启动:service
network
restart
确认设备已经正确加载:less
/proc/net/bonding/bond0
列出所有网口:ifconfig
上面就是Linux下多网卡绑定bond模式原理的介绍了,bond模式原来一般有7种,这里只介绍了其中的一种,希望对你有所帮助。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)