Linux 雙網卡綁定測試
先介紹一下情況,伺服器A和伺服器B都是CentOS 4.6的系統,現在要做HA Cluster,為了避免裂腦的發生,要提高心跳鍊路的可靠性,下圖是現時的連接配接情況,伺服器A的eth2、eth3分别和伺服器B的eth2、eth3相連(沒有順序關系),所有網卡都是千兆網卡,拓撲圖如下所示:
在介紹一起硬體情況,伺服器A是一台HP DL380 G5,兩年多的伺服器了,4核心8G記憶體,5塊72GB的2.5寸硬碟做RAID5。服務期B是DELL 2950,幾個月前剛購入的新機器,8核16G記憶體,3塊3.5寸300G SAS硬碟做RAID5。
業務交換機為DELL的千兆交換機,沒做任何配置,僅當接入交換機使用。
圖中的藍線用的是幾年前的超五類非屏蔽雙絞線。
圖中的紅線用的是新購的六類非屏蔽雙絞線。
測試方法很簡單,将一個3.4G的ISO從伺服器A scp到伺服器B中,對比傳輸的時間。
資料走業務鍊路,沒有使用bonding技術。
############## No Binding ##############
[root@rac-node01 tmp]# time scp rhel-5.1-server-x86_64-dvd.iso 10.168.0.202:/tmp
[email protected]'s password:
rhel-5.1-server-x86_64-dvd.iso 100% 3353MB 44.1MB/s 01:16
real 1m20.105s
user 0m34.752s
sys 0m11.002s
############## 速度還是挺快的
資料走心跳鍊路,使用了bonding技術,mode設定為6,即不需要交換機參與的負載均衡。
令人奇怪的是該種模式下會丢一些資料包,也許是這種比較奇怪的拓撲結果造成的。
############## model=6 ##############
[root@rac-node01 tmp]# time scp rhel-5.1-server-x86_64-dvd.iso 192.168.0.202:/tmp
[email protected]'s password:
rhel-5.1-server-x86_64-dvd.iso 100% 3353MB 21.4MB/s 02:37
real 2m47.812s
user 0m34.965s
sys 0m19.421s
[root@rac-node01 tmp]# netstat -i #@ Receive
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
bond1 1500 0 5123831 2045 0 0 5138747 0 0 0 BMmRU
eth0 1500 0 2847 0 0 0 703 0 0 0 BMRU
eth2 1500 0 2562665 11 0 0 2569378 0 0 0 BMsRU
eth3 1500 0 2561166 2034 0 0 2569369 0 0 0 BMsRU
lo 16436 0 2261 0 0 0 2261 0 0 0 LRU
############## 有資料包丢失
資料走心跳鍊路,使用了bonding技術,mode設定為0,即需要交換機參與的負載均衡。
該模式下不像mode=6那樣會丢包,而且eth2和eth3的流量幾乎平均。下面測試資料中的 RX-ERR是上面測試資料遺留下來的。
############## model=0 ##############
[root@rac-node01 tmp]# time scp rhel-5.1-server-x86_64-dvd.iso 192.168.0.202:/tmp
[email protected]'s password:
rhel-5.1-server-x86_64-dvd.iso 100% 3353MB 38.1MB/s 01:28
real 1m33.508s
user 0m34.539s
sys 0m19.363s
[root@mailserver tmp]# netstat -i
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
bond1 1500 0 11133871 2045 0 0 11180462 0 0 0 BMmRU
eth0 1500 0 1334477 0 0 0 2575981 0 0 0 BMRU
eth2 1500 0 5567685 11 0 0 5590236 0 0 0 BMsRU
eth3 1500 0 5566186 2034 0 0 5590226 0 0 0 BMsRU
lo 16436 0 2270 0 0 0 2270 0 0 0 LRU
############## 沒有丢包
資料走心跳鍊路,使用了bonding技術,mode設定為1,即Active-Backup,FailOver模式。
############## model=1 ##############
[root@rac-node01 ~]# time scp /tmp/rhel-5.1-server-x86_64-dvd.iso 192.168.0.202:/tmp/
[email protected]'s password:
rhel-5.1-server-x86_64-dvd.iso 100% 3353MB 41.4MB/s 01:21
real 1m24.162s
user 0m35.007s
sys 0m13.455s
[root@mailserver ~]# netstat -i
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
bond1 1500 0 3436804 0 0 0 1774259 0 0 0 BMmRU
eth0 1500 0 3962 0 0 0 773 0 0 0 BMRU
eth2 1500 0 3436804 0 0 0 1774254 0 0 0 BMsRU
eth3 1500 0 0 0 0 0 5 0 0 0 BMsRU
lo 16436 0 3071 0 0 0 3071 0 0 0 LRU
############## 沒有丢包,隻走單網卡