Linux 双网卡绑定实践
时间:2015-02-23 20:20 来源:linux.it.net.cn 作者:IT
前言
工作中主要以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/
扩展阅读
-
七种网卡绑定模式详解 - http://blog.csdn.net/wuweilong/article/details/39720571
基础配置信息
常用的三种Bond模式
配置过程以mode=6为例,其它7种模式请参考扩展阅读
mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。 mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。 mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定。
物理接口
interface
IP
type
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倍
缺点:恢复链路时丢包时间过长
(责任编辑:IT)
前言工作中主要以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=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。 mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。 mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定。 物理接口
CentOS版本
禁用NetworkManager
关闭iptables和selinux(可选)
修改主机名
配置IP私有地址
双网卡绑定
常用3种网卡绑定模式对比mode=0
优点:流量提高1倍 缺点:需要接入同一交换机做聚合配置,无法保证物理交换机高可用(Cisco似乎有解决方案?) mode=1
优点:交换机无需配置 缺点:如上 mode=6
优点:交换机无需配置,流量提高1倍
缺点:恢复链路时丢包时间过长 |