工作中主要以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),如果大家有需求可以回復留言,我會在後續更新和補充。
遵循高可用原則,實現失效保護和負載均衡
配置過程以mode=6為例,其它7種模式請參考擴展閱讀
mode=0:平衡負載模式,有自動備援,但需要”Switch”支援及設定。
mode=1:自動備援模式,其中一條線若斷線,其他線路將會自動備援。
mode=6:平衡負載模式,有自動備援,不必”Switch”支援及設定。
datanode01:~>cat /etc/redhat-release CentOS release 6.4 (Final)
#立即關閉禁用NetworkManager並禁用開機自啟動 /etc/init.d/NetworkManager stop chkconfig NetworkManager off /etc/init.d/network restart
#立即關閉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
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
中斷任意一條鏈路或恢復鏈路,網絡0丟包
優點:流量提高1倍
缺點:需要接入同一交換機做聚合配置,無法保證物理交換機高可用(Cisco似乎有解決方案?)
中斷任意一條鏈路丟失1-3個包(秒),恢復鏈路時0丟包
優點:交換機無需配置
缺點:如上
中斷任意一條鏈路0丟包,恢復鏈路時丟失10-15個包(秒)
優點:交換機無需配置,流量提高1倍
缺點:恢復鏈路時丟包時間過長
原文:http://wsgzao.github.io/post/bond-network/