共计 2155 个字符,预计需要花费 6 分钟才能阅读完成。
前言
工作中主要以 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),如果大家有需求可以回复留言,我会在后续更新和补充。
遵循高可用原则,实现失效保护和负载均衡
扩展阅读
- 七种网卡绑定模式详解 – http://www.linuxidc.com/Linux/2014-10/107515.htm
基础配置信息
常用的三种 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 倍
缺点:恢复链路时丢包时间过长