Linux.中国 - 开源社区

 找回密码
 骑士注册

QQ登录

微博登录


Linux 双网卡绑定实践

2015-2-23 14:50    评论: 10 收藏: 5    

前言

工作中主要以SuSE为主,网络作为整个高可用架构中最重要的环节之一,在物理上一般是双网卡绑定模式,通常使用默认的mode=1(active-backup)作为主备关系。

在最近测试大数据的生产服务器中,考虑到性能优先,所以将绑定模式设置为mode=6(balance-alb),使用负载均衡提高1倍流量。与此同时针对SuSE HA架构由Skybility HA往Corosync/Openais+Pacemaker 的测试过程中,配合网络交换机Port Channel链路聚合采用mode=0(balance-rr ),凭借平衡轮询实现网络中断0丢包。

下文以CentOS为例(Red Hat类似),其它平台双网卡设置都较为简单,SuSE(YaST),AIX(SMIT),Windows(Intel),如果大家有需求可以回复留言,我会在后续更新和补充。

遵循高可用原则,实现失效保护和负载均衡


更新记录

2015年02月09日 - 初稿

阅读原文 - http://wsgzao.github.io/post/bond-network/

扩展阅读


基础配置信息

常用的三种Bond模式

配置过程以mode=6为例,其它7种模式请参考扩展阅读

mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。 mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。 mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定。

物理接口

interfaceIPtype
eth0,eth2   两块生产网卡
eth3 10.129.46.19 私有地址
bond0 10.3.3.214 双网卡绑定地址

CentOS版本

datanode01:~>cat /etc/redhat-release 
CentOS release 6.4 (Final)

禁用NetworkManager

#立即关闭禁用NetworkManager并禁用开机自启动
/etc/init.d/NetworkManager stop
chkconfig NetworkManager off
/etc/init.d/network restart

关闭iptables和selinux(可选)

#立即关闭iptables并禁用开机自启动
/etc/init.d/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=10.129.46.19
NETMASK=255.255.255.0
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=10.3.3.214
NETMASK=255.255.255.0
GATEWAY=10.3.3.1
IPV6INIT=no
USERCTL=no
EOF

#设置bond参数,注意mode选择
cat > /etc/modprobe.conf << EOF
alias bond0 bonding
options bond0 miimon=100 mode=6
EOF

#加入开机自启动参数
cat >> /etc/rc.local << EOF
ifenslave bond0 eth0 eth2
EOF

#重启网卡
service network restart

#使绑定网卡立即生效
ifenslave bond0 eth0 eth2

#测试绑定网络
ping 10.3.3.1


常用3种网卡绑定模式对比

mode=0

中断任意一条链路或恢复链路,网络0丢包

优点:流量提高1倍

缺点:需要接入同一交换机做聚合配置,无法保证物理交换机高可用(Cisco似乎有解决方案?)

mode=1

中断任意一条链路丢失1-3个包(秒),恢复链路时0丢包

优点:交换机无需配置

缺点:如上

mode=6

中断任意一条链路0丢包,恢复链路时丢失10-15个包(秒)

优点:交换机无需配置,流量提高1倍

缺点:恢复链路时丢包时间过长

发表评论


最新评论

我也要发表评论

JohnCoding 2015-2-23 15:03  新浪微博网友评论
Repost
回复
jeliflamy 2015-2-23 15:03  新浪微博网友评论
[哈哈][哈哈][哈哈][哈哈][哈哈][哈哈]
回复
King_Z 2015-2-23 17:03  新浪微博网友评论
@King_Z [嘻嘻][嘻嘻][嘻嘻]
回复
King_Z 2015-2-23 17:03  新浪微博网友评论
@有道云笔记收藏
回复
丑丑说这一点都不好笑 2015-2-23 17:03  新浪微博网友评论
[思考]哪好用了
回复
WOWDBA 2015-2-23 18:03  新浪微博网友评论
@我的印象笔记
回复
囧囧O有神 2015-2-23 18:03  新浪微博网友评论
mode=6负载均衡哈,以前好像都没用到,业务量这么大,该考虑光纤磁阵啦~~
回复
书窗外的冷雨 2015-2-23 19:33  新浪微博网友评论
就是ether channel+port group,不是太复杂的技术,可以多网卡的,但是我玩过很多high availability 技术,没有一种让人放心的,毕竟高可用不等于容错。另外如果有人用sna协议与大型机互联的话,千万别用ether channel。
回复
超凡临时工 2015-2-23 20:03  新浪微博网友评论
收藏
回复
shenwei5566 2015-2-24 00:03  新浪微博网友评论
@我的印象笔记
回复
返回顶部

分享到微信朋友圈

打开微信,点击底部的“发现”,
使用“扫一扫”将网页分享至朋友圈。