CentOS bonding技術(shù)使用奇怪的拓撲結(jié)果
CentOS bonding技術(shù)對于電腦使用的玩家的常用軟件,然后我就學習及深入的研究CentOS bonding技術(shù),在這里和大家一起探討CentOS bonding技術(shù)的使用方法,希望對大家有用。先介紹一下情況,服務器A和服務器B都是CentOS 4.6的系統(tǒng),現(xiàn)在要做HA Cluster,為了避免裂腦的發(fā)生,要提高心跳鏈路的可靠性,下圖是現(xiàn)時的連接情況,服務器A的eth2、eth3分別和服務器B的eth2、eth3相連(沒有順序關(guān)系),所有網(wǎng)卡都是千兆網(wǎng)卡,拓撲圖如下所示:
在介紹一起硬件情況,服務器A是一臺HP DL380 G5,兩年多的服務器了,4核心8G內(nèi)存,5塊72GB的2.5寸硬盤做RAID5。服務期B是DELL 2950,幾個月前剛購入的新機器,8核16G內(nèi)存,3塊3.5寸300G SAS硬盤做RAID5。
業(yè)務交換機為DELL的千兆交換機,沒做任何配置,僅當接入交換機使用。 圖中的藍線用的是幾年前的超五類非屏蔽雙絞線。 圖中的紅線用的是新購的六類非屏蔽雙絞線。測試方法很簡單,將一個3.4G的ISO從服務器A scp到服務器B中,對比傳輸?shù)臅r間。
數(shù)據(jù)走業(yè)務鏈路,沒有使用CentOS bonding技術(shù)。
- ############## No Binding ##############
- [root@rac-node01 tmp]# time scp rhel-5.1-server-x86_64-dvd.iso 10.168.0.202:/tmp
- root@10.168.0.202'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
速度還是挺快的數(shù)據(jù)走心跳鏈路,使用了CentOS bonding技術(shù),mode設置為6,即不需要交換機參與的負載均衡。 令人奇怪的是該種模式下會丟一些數(shù)據(jù)包,也許是這種比較奇怪的拓撲結(jié)果造成的。
- ############## model=6 ##############
- [root@rac-node01 tmp]# time scp rhel-5.1-server-x86_64-dvd.iso 192.168.0.202:/tmp
- root@192.168.0.202'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
有數(shù)據(jù)包丟失數(shù)據(jù)走心跳鏈路,使用了CentOS bonding技術(shù),mode設置為0,即需要交換機參與的負載均衡。該模式下不像mode=6那樣會丟包,而且eth2和eth3的流量幾乎平均。下面測試數(shù)據(jù)中的 RX-ERR是上面測試數(shù)據(jù)遺留下來的。
- ############## model=0 ##############
- [root@rac-node01 tmp]# time scp rhel-5.1-server-x86_64-dvd.iso 192.168.0.202:/tmp
- root@192.168.0.202'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
沒有丟包數(shù)據(jù)走心跳鏈路,使用了CentOS bonding技術(shù),mode設置為1,即Active-Backup,F(xiàn)ailOver模式。該模式存在一個問題,當服務器A的eth2和服務器B的eth3作為Active設備時,服務器A是不能和服務器B通過心跳鏈路通信的,此時拔掉其中一根心跳線再插就好了。
- ############## model=1 ##############
- [root@rac-node01 ~]# time scp /tmp/rhel-5.1-server-x86_64-dvd.iso 192.168.0.202:/tmp/
- root@192.168.0.202'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
沒有丟包,只走單網(wǎng)卡結(jié)論: 從以上結(jié)果顯示,單就速度來說的確不做綁定單網(wǎng)卡速度最快,但是沒有容錯能力。其次是綁定后的FailOver模式,但是該模式會存在一定的問題。而mode=6的負載均衡模式會丟包,比較危險。 mode=0的負載均衡模式貌似并不能加大帶寬,但是對于提高最大的可用性來說是最好的選擇了。
【編輯推薦】