十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這篇文章給大家介紹如何進行l(wèi)inux下的雙網(wǎng)卡綁定,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
10年積累的成都做網(wǎng)站、成都網(wǎng)站制作經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有陸良免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
Linux上雙網(wǎng)卡綁定實現(xiàn)就是使用兩塊網(wǎng)卡虛擬成為一塊網(wǎng)卡,這個結(jié)合起來的設(shè)備看起來是一個單獨的以太網(wǎng)接口設(shè)備,通俗點講就是兩塊網(wǎng)卡具有相同的IP地址而并行鏈接聚合成一個邏輯鏈路工作。其實這項技術(shù)在Sun和Cisco中早已存在,被稱為Trunking和Etherchannel 技術(shù),在Linux的2.4.x的內(nèi)核中也采用這這種技術(shù),被稱為bonding。
bonding技術(shù)的最早應(yīng)用是在集群——beowulf上,為了提高集群節(jié)點間的數(shù)據(jù)傳輸而設(shè)計的。下面我們討論一下bonding 的原理,什么是bonding需要從網(wǎng)卡的混雜(promisc)模式說起。我們知道,在正常情況下,網(wǎng)卡只接收目的硬件地址(MAC Address)是自身Mac的以太網(wǎng)幀,對于別的數(shù)據(jù)幀都濾掉,以減輕驅(qū)動程序的負擔。但是網(wǎng)卡也支持另外一種被稱為混雜promisc的模式,可以接收網(wǎng)絡(luò)上所有的幀,比如說tcpdump,就是運行在這個模式下。bonding也運行在這個模式下,而且修改了驅(qū)動程序中的mac地址,將兩塊網(wǎng)卡的 Mac地址改成相同,可以接收特定MAC的數(shù)據(jù)幀。然后把相應(yīng)的數(shù)據(jù)幀傳送給bond驅(qū)動程序處理。
[root@redhat6 ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 ~/ifcfg-eth0.bak[root@redhat6 ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth2 ~/ifcfg-eth2.bak
虛擬網(wǎng)絡(luò)接口配置文件,指定網(wǎng)卡IP,ifcfg-bond0:
[root@redhat6 ~]#vi /etc/sysconfig/network-scripts/ifcfg-bond0DEVICE=bond0 IPADDR=192.168.1.111NETMASK=255.255.255.0ONBOOT=yes BOOTPROTO=none USERCTL=noNM_CONTROLLED=noBONDING_OPTS="mode=1 miimon=100"
配置真實的網(wǎng)卡,eth0 and eth2
[root@redhat6 ~]#vi /etc/sysconfig/network-scripts/ifcfg-ethDEVICE=eth BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes USERCTL=noNM_CONTROLLED=no
NM_CONTROLLED=no NetworkManager is not permitted to configure this device.USERCTL=no Non-root users are not allowed to control this device.
BOOTPROTO=none No boot-time protocol should be used
[root@redhat6 ~]#service network restart
拔下一根網(wǎng)線看ping數(shù)據(jù),確認沒問題之后插上該網(wǎng)線連通之后,再拔下另外一根網(wǎng)線,觀察雙網(wǎng)卡綁定效果。
define BOND_MODE_ROUNDROBIN 0 (balance-rr模式)網(wǎng)卡的負載均衡模式
define BOND_MODE_ACTIVEBACKUP 1 (active-backup模式)網(wǎng)卡的容錯模式
define BOND_MODE_XOR 2 (balance-xor模式)需要交換機支持
define BOND_MODE_BROADCAST 3 (broadcast模式)
define BOND_MODE_8023AD 4 (IEEE 802.3ad動態(tài)鏈路聚合模式)需要交換機支持
define BOND_MODE_TLB 5 自適應(yīng)傳輸負載均衡模式
define BOND_MODE_ALB 6 網(wǎng)卡虛擬化方式
mode的值共有0-6 七種模式,常用的為0,1,6三種。
mode=0:平衡負載模式,有自動備援,但需要”Switch”支援及設(shè)定。
mode=1:自動備援模式,其中一條線若斷線,其他線路將會自動備援。
mode=6:平衡負載模式,有自動備援,不需要”Switch”支援及設(shè)定。
linux系統(tǒng)下bond mode參數(shù)說明:(mode=4 在交換機支持LACP時推薦使用,其能提供更好的性能和穩(wěn)定性)
0-輪詢模式,所綁定的網(wǎng)卡會針對訪問以輪詢算法進行平分。1-高可用模式,運行時只使用一個網(wǎng)卡,其余網(wǎng)卡作為備份,在負載不超過單塊網(wǎng)卡帶寬或壓力時建議使用。2-基于HASH算法的負載均衡模式,網(wǎng)卡的分流按照xmit_hash_policy的TCP協(xié)議層設(shè)置來進行HASH計算分流,使各種不同處理來源的訪問都盡量在同一個網(wǎng)卡上進行處理。3-廣播模式,所有被綁定的網(wǎng)卡都將得到相同的數(shù)據(jù),一般用于十分特殊的網(wǎng)絡(luò)需求,如需要對兩個互相沒有連接的交換機發(fā)送相同的數(shù)據(jù)。4-802.3ab負載均衡模式,要求交換機也支持802.3ab模式,理論上服務(wù)器及交換機都支持此模式時,網(wǎng)卡帶寬最高可以翻倍(如從1Gbps翻到2Gbps)5-適配器輸出負載均衡模式,輸出的數(shù)據(jù)會通過所有被綁定的網(wǎng)卡輸出,接收數(shù)據(jù)時則只選定其中一塊網(wǎng)卡。如果正在用于接收數(shù)據(jù)的網(wǎng)卡發(fā)生故障,則由其他網(wǎng)卡接管,要求所用的網(wǎng)卡及網(wǎng)卡驅(qū)動可通過ethtool命令得到speed信息。6-適配器輸入/輸出負載均衡模式,在”模式5″的基礎(chǔ)上,在接收數(shù)據(jù)的同時實現(xiàn)負載均衡,除要求ethtool命令可得到speed信息外,還要求支持對網(wǎng)卡MAC地址的動態(tài)修改功能。
雙網(wǎng)卡綁定模式下,網(wǎng)卡的性能不是向大多數(shù)人猜想的那樣帶寬加倍,傳輸速度加倍;而實際上可能恰好相反。
這個問題還是要看到瓶頸在哪。
一般多網(wǎng)卡綁定,處理器應(yīng)該沒有問題,能力很強,網(wǎng)絡(luò)也很強,瓶頸在網(wǎng)卡,所以多綁定幾塊可以解決網(wǎng)卡的瓶頸,并且提高可靠性。
如果是板子的話,雖然網(wǎng)絡(luò)也很強,但估計瓶頸不是網(wǎng)卡了,而是板子的處理能力了。加多個網(wǎng)卡,可能卻降低了板子的性能。多網(wǎng)卡綁定,應(yīng)該在混雜模式,把本來硬件處理的部分交給了驅(qū)動來自,增加了軟件/板子的負擔了。
普通臺式機服務(wù)器,現(xiàn)在性能應(yīng)該很強大,不是瓶頸,所以采用多網(wǎng)卡綁定能體現(xiàn)出優(yōu)勢。
任何方法 都有其前提的。
了解了一下bonding各模式的算法,負載均衡模式用的輪轉(zhuǎn)算法,熱備份用的備份算法。
理論下,雙網(wǎng)卡綁定備份模式下,只有一塊網(wǎng)卡工作,流量測試的結(jié)果應(yīng)該和用單個網(wǎng)卡相同。
同樣是理論上,雙網(wǎng)卡綁定負載均衡模式下,收發(fā)一般的網(wǎng)絡(luò)數(shù)據(jù),我是指小于1588的報文等不用分片的數(shù)據(jù)時,帶寬加倍,速度加倍。
我的猜測:現(xiàn)在我在負載均衡模式下,傳輸一個4GB的文件,文件被分片處理,在輪轉(zhuǎn)算法下連續(xù)的片被兩個網(wǎng)卡分別處理,一方面軟件算法消耗了時間,另一方面可能會有分片亂序的可能,申請重發(fā)或者其他原因消耗了時間。
現(xiàn)在的問題有兩個,1、為什么只有round-robin模式,開發(fā)板上兩個網(wǎng)卡是一樣的型號;2、負載均衡模式下傳輸文件的速度比用單網(wǎng)卡要慢。
期待各位大哥解惑,謝謝了。
總結(jié)一下
1、只能進入負載均衡的問題;模塊加載的時候讀取的配置文件modules.conf、modprobe.conf,這兩個文件分別適用于舊和新兩種內(nèi)核版本,二這兩個文件中mode參數(shù)用于設(shè)置綁定模式,如果文件名錯了,設(shè)置當然無效;另外bongding在內(nèi)核中需要編譯成模塊,而不是直接加到內(nèi)核。
2、網(wǎng)卡綁定時傳輸大文件比不綁定時更慢;測試顯示負載均衡模式下,傳輸大文件所需時間是不綁定用單網(wǎng)口傳輸?shù)膬杀?,熱備份模式所需時間是單網(wǎng)口的四倍。猜測且沒有得到證實的原因:負載均衡時,網(wǎng)絡(luò)上傳輸?shù)膱笪囊话愣夹∮?588,網(wǎng)卡處理這些典型的網(wǎng)絡(luò)報文很快;但現(xiàn)在傳輸?shù)氖且粋€很大的文件,文件大于1588,文件被分成很多片,文件重組需求分片按次序到達,可能因為被兩個網(wǎng)卡處理造成分片次序顛倒等原因申請重發(fā)分片,另外增加的綁定算法也需要耗費時間;熱備份時,綁定算法耗費時間。
關(guān)于如何進行l(wèi)inux下的雙網(wǎng)卡綁定就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。