Linux 雙網路卡繫結實踐

wsgzao發表於2015-02-23

前言

工作中主要以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倍

缺點:恢復鏈路時丟包時間過長

相關文章