Linux雙網(wǎng)卡綁定實現(xiàn)就是使用兩塊網(wǎng)卡虛擬成為一塊網(wǎng)卡,這個聚合起來的設(shè)備看起來是一個單獨的以太網(wǎng)接口設(shè)備,通俗點講就是兩塊網(wǎng)卡具有相同的IP地址而并行鏈接聚合成一個邏輯鏈路工作。其實這項 技術(shù)在Sun和Cisco中早已存在,被稱為Trunking和Etherchannel技術(shù),在Linux的2.4.x的內(nèi)核中也采用這這種技術(shù),被稱為bonding。,什么是bonding需要從網(wǎng)卡的混雜(promisc)模式說起。我們知道,在正常情況下,網(wǎng)卡只接收目的硬件地址(MAC Address)是自身Mac的以太網(wǎng)幀,對于別的數(shù)據(jù)幀都濾掉,以減輕驅(qū)動程序的負擔(dān)。但是網(wǎng)卡也支持另外一種被稱為混雜promisc的模式,可以接收網(wǎng)絡(luò)上所有的幀,bonding也運行在這個模式下,而且修改了驅(qū)動程序中的mac地址,將兩塊網(wǎng)卡的Mac地址改成相同,可以接收特定mac的數(shù)據(jù)幀。然后把相應(yīng)的數(shù)據(jù)幀傳送給bond驅(qū)動程序處理。
編輯 /etc/modules.conf 文件,加入如下一行內(nèi)容,以使系統(tǒng)在啟動時加載bonding模塊,對外虛擬網(wǎng)絡(luò)接口設(shè)備為 bond0
說明:miimon是用來進行鏈路監(jiān)測的。 比如:miimon=100,那么系統(tǒng)每100ms監(jiān)測一次鏈路連接狀態(tài),如果有一條線路不通就轉(zhuǎn)入另一條線路;mode的值表示工作模式,他共有0,1,2,3四種模式,常用的為0,1兩種。
mode=0表示load balancing (round-robin)為負載均衡方式,兩塊網(wǎng)卡都工作。
mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主備的工作方式,也就是說默認情況下只有一塊網(wǎng)卡工作,另一塊做備份.
BONDING_OPTS參數(shù)解釋
此參數(shù)用于指定網(wǎng)卡綁定時的屬性,以下是對常用參數(shù)進行的解釋:
miimon參數(shù):指定網(wǎng)卡故障時的切換時間間隔以ms為單位。
primary參數(shù):指定默認的主網(wǎng)卡設(shè)備。
mode參數(shù):
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)修改功能。
xmit_hash_policy參數(shù)(此參數(shù)對mode參數(shù)中的2、4模式有影響):
layer1-通過MAC地址進行HASH計算。
計算公式:(MACsrc⊕MACdest)% Nslave
layer3+4-通過TCP及UDP端口及其IP地址進行HASH計算。
計算公式:((portsrc⊕portdest)⊕(IPsrc⊕IPdest)) % Nslave
注意:
mode參數(shù)中的0、2、3、4模式要求交換機支持"ports group"功能并能進行相應(yīng)的設(shè)置,例如在Cisco中要將所連接的端口設(shè)為"trunk group"。
選擇綁定模式的建議
如果系統(tǒng)流量不超過單個網(wǎng)卡的帶寬,請不要選擇使用mode 1之外的模式,因為負載均衡需要對流量進行計算,這對系統(tǒng)性能會有所損耗。
建議mode 5、mode 6只在交換機不支持"ports group"的情況下選用。
如果交換機及網(wǎng)卡都確認支持802.3ab,則實現(xiàn)負載均衡時盡量使用mode 4以提高系統(tǒng)性能