《Linux Bond的原理及其不足》要點(diǎn):
本文介紹了Linux Bond的原理及其不足,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
在企業(yè)及電信Linux服務(wù)器環(huán)境上,網(wǎng)絡(luò)配置都會(huì)使用Bonding技術(shù)做網(wǎng)口硬件層面的冗余,防止單個(gè)網(wǎng)口應(yīng)用的單點(diǎn)故障.
Linux Bond的配置很簡(jiǎn)單,當(dāng)下網(wǎng)絡(luò)上也有很多資料,這里我們就不介紹了.我們?cè)谶@篇文章中介紹Linux Bond的原理及其不足.
原理
Linux Bond有兩種典型的模式:主備,負(fù)載均衡.無(wú)論哪種模式,Bonding技術(shù)都是通過(guò)更改Linux的網(wǎng)口驅(qū)動(dòng),來(lái)實(shí)現(xiàn)網(wǎng)口故障后平滑切換的.
主備模式:
負(fù)載均衡模式:
1. 我們先看主備模式
主備模式下,Linux Bonding實(shí)現(xiàn)會(huì)將Bond的兩個(gè)slave網(wǎng)口的MAC地址改為Bond的MAC地址,而B(niǎo)ond的MAC地址是Bond創(chuàng)建啟動(dòng)后,主用slave網(wǎng)口的MAC地址.
當(dāng)住用網(wǎng)口故障后,Bond會(huì)切換到備用網(wǎng)口,切換過(guò)程中,上層的應(yīng)用是無(wú)感知不受影響的,因?yàn)锽ond在驅(qū)動(dòng)層,會(huì)接管上層應(yīng)用的數(shù)據(jù)包,緩存起來(lái)等備用網(wǎng)卡起來(lái)后再通過(guò)備用網(wǎng)卡發(fā)送出去.當(dāng)然,前提是切換時(shí)間很短,否則緩沖區(qū)是會(huì)溢出的,溢出后就開(kāi)始丟包了.具體的時(shí)間值本人還沒(méi)有驗(yàn)證過(guò).
2. 再看負(fù)載均衡模式
負(fù)載均衡模式下,Linux Bonding實(shí)現(xiàn)可以保持兩個(gè)slave網(wǎng)口的MAC地址不變,Bond的MAC地址是其中一個(gè)網(wǎng)卡的,Bond MAC地址的選擇是根據(jù)Bond自己實(shí)現(xiàn)的一個(gè)算法來(lái)的,具體如何選擇還沒(méi)有研究.
當(dāng)然,這里要重點(diǎn)說(shuō)明的是,Bond負(fù)載均衡模式下,要求交換機(jī)做配置,是的兩個(gè)slave網(wǎng)口能夠互通,否則的話,丟包會(huì)很厲害,基本沒(méi)法使用.這個(gè)是因?yàn)锽ond的負(fù)載均衡模式算法,會(huì)將包在兩個(gè)網(wǎng)口之間傳輸以達(dá)到負(fù)載均衡.
由于負(fù)載均衡模式下,兩個(gè)slave有獨(dú)立的MAC地址,你可能會(huì)想,我能否給slave網(wǎng)口再綁定一個(gè)IP地址,用作其他用途.
這種方法是實(shí)現(xiàn)不了的.
負(fù)載均衡模式下,兩個(gè)slave網(wǎng)口在操作性系統(tǒng)上看到是兩個(gè)獨(dú)立的MAC地址,但是當(dāng)你指定一個(gè)MAC地址發(fā)送包的時(shí)候,實(shí)際上發(fā)生的現(xiàn)象,不是你期望的.你指定MAC地址1發(fā)包,這個(gè)數(shù)據(jù)包可能到MAC地址2出去了.
這個(gè)是因?yàn)锽ond對(duì)這兩個(gè)網(wǎng)口做了手腳,改了網(wǎng)口的驅(qū)動(dòng).看起來(lái)他們有獨(dú)立的MAC地址,實(shí)際上他們的MAC地址不是獨(dú)立的,只能給Bond使用.
不足
從上面的介紹中,很容易看到Bond的一點(diǎn)不足:
Bond更改了網(wǎng)口的驅(qū)動(dòng),其網(wǎng)口不能被用作其他用途.
Bond還有一點(diǎn)不足就是其故障監(jiān)測(cè)上面:
Bond默認(rèn)只能做網(wǎng)口MII監(jiān)測(cè)不能做鏈路監(jiān)測(cè)(鏈路是指本機(jī)到網(wǎng)關(guān)的路徑),也就是只能監(jiān)測(cè)網(wǎng)口是否連接(網(wǎng)口是否亮);當(dāng)然Bond也支持ARP協(xié)議的鏈路監(jiān)測(cè),但是ARP鏈路監(jiān)測(cè)在一些場(chǎng)景下,太消耗資源,得不償失.我們?cè)?jīng)在實(shí)際應(yīng)用中使用過(guò),效果確實(shí)不好.
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/4665.html