下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Linux服務(wù)器下多網(wǎng)卡負(fù)載均衡的研究與實現(xiàn)(1) 摘 要 負(fù)載均衡技術(shù)的使用能夠在不對網(wǎng)絡(luò)中各種設(shè)備進(jìn)行重大改造的條件下提高各種服務(wù)的質(zhì)量,是解決當(dāng)前網(wǎng)絡(luò)業(yè)務(wù)迅猛增加和升級硬件設(shè)施之間矛盾的一個有效措施,本文簡單描述了關(guān)于負(fù)載均衡方面的研究現(xiàn)狀,重點介紹了現(xiàn)今linux bonding技術(shù)及其基于bonding技術(shù)的幾種負(fù)載均衡的算法,并對此進(jìn)行了簡要的分析與研究,提出了其不足之處,針對這些不足提出了一種多網(wǎng)卡情況下基于傳輸協(xié)議的發(fā)送方面的算法,并對此進(jìn)行了簡單的實現(xiàn),最后對此進(jìn)行了測試,測試結(jié)果表明該方法的可用性。
2、60; 關(guān)鍵詞 linux bonding; 傳輸協(xié)議;負(fù)載均衡;高可用性; 1 引言 現(xiàn)今幾乎各行各業(yè)內(nèi)部都建立了自己的服務(wù)器,由于服務(wù)器的特殊地位,它的可靠性、可用性及其I/O速度就顯得非常的重要,保持服務(wù)器的高可用性和安全性是企業(yè)級IT環(huán)境的重要指標(biāo),其中最重要的一點是服務(wù)器網(wǎng)絡(luò)連接的高可用性,為實現(xiàn)這些要求,現(xiàn)在服務(wù)器大都采用多網(wǎng)卡配置,系統(tǒng)大都采用現(xiàn)在非常流行的linux作為服務(wù)器工作的環(huán)
3、境。現(xiàn)在帶寬已經(jīng)不是服務(wù)質(zhì)量提高的瓶頸了,相對的網(wǎng)絡(luò)設(shè)備和服務(wù)器的處理能力就漸漸成為新的瓶頸。為提高服務(wù)器的網(wǎng)絡(luò)連接的可用性和可靠性,目前Sun公司的Trunking技術(shù)、3Com公司的DynamicAccess技術(shù)、Cisco公司的Etherchannel技術(shù)等等都在研究將服務(wù)器的多個網(wǎng)卡接口綁定在一起的鏈路聚集技術(shù), 鏈路聚集技術(shù)將多個鏈路虛擬成一個邏輯鏈路進(jìn)而提供了一種廉價、有效的方法擴(kuò)展網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬,提高網(wǎng)絡(luò)的靈活性與可用性。 本文介紹linux下的bonding 技術(shù),linux 2.4.x的內(nèi)核中采用了這種技術(shù),利用bondi
4、ng技術(shù)可以將多塊網(wǎng)卡接口通過綁定虛擬成為一塊網(wǎng)卡,在用戶看來這個聚合起來的設(shè)備好像是一個單獨的以太網(wǎng)接口設(shè)備,通俗點講就是多塊網(wǎng)卡具有相同的IP地址而并行連接聚合成一個邏輯鏈路工作。現(xiàn)在在關(guān)于linux bonding 技術(shù)中,有幾種算法來實現(xiàn)負(fù)載均衡的要求,此文針對這些算法,在此進(jìn)行簡單分析與研究,討論其不足,并提出另外一種在此基礎(chǔ)上改進(jìn)的一種基于傳輸協(xié)議的負(fù)載均衡實現(xiàn)方法。討論如何實現(xiàn)多個網(wǎng)絡(luò)接口的分在均衡及其故障接管。 2 負(fù)載均衡技術(shù)和高可用技術(shù)研究介紹 21 負(fù)載均衡技術(shù) 負(fù)載均衡技術(shù)的主要思想就是如何根據(jù)某種算法將網(wǎng)絡(luò)的業(yè)務(wù)流量平均分
5、配到不同的服務(wù)器和網(wǎng)絡(luò)設(shè)備上去,以減輕單臺服務(wù)器和網(wǎng)絡(luò)設(shè)備的負(fù)擔(dān),從而提高整個系統(tǒng)的效率。負(fù)載均衡既可以由有負(fù)載均衡功能的硬件實現(xiàn),也可以通過一些專用的軟件來實現(xiàn),負(fù)載均衡是一種策略,它能讓多臺服務(wù)器或多條鏈路共同承擔(dān)一些繁重的計算或者I/O任務(wù),從而以較低的成本消除網(wǎng)絡(luò)瓶頸,提高網(wǎng)絡(luò)的靈活性和可靠性。 22 高可用技術(shù) 實現(xiàn)負(fù)載均衡首先是基于網(wǎng)絡(luò)的高可用性提出來的,高可用技術(shù)是容錯技術(shù)的一個分支。實現(xiàn)系統(tǒng)的高可用性最簡單的一個辦法就是冗余。完整的網(wǎng)絡(luò)負(fù)載均衡和高可用性網(wǎng)絡(luò)技術(shù)有兩個方面構(gòu)成,一是多服務(wù)器的綁定和負(fù)載均衡,二是一個服務(wù)器內(nèi)部的多網(wǎng)卡
6、綁定的負(fù)載均衡,這里主要討論一個服務(wù)器內(nèi)部的多網(wǎng)卡綁定時的負(fù)載均衡。 3 Linux的bonding技術(shù)中負(fù)載均衡的簡單實現(xiàn) 31 Linux的bonding技術(shù) Linux的bonding技術(shù)是網(wǎng)卡驅(qū)動程序之上、數(shù)據(jù)鏈路層之下實現(xiàn)的一個虛擬層,通過這種技術(shù),服務(wù)器接在交換機上的多塊網(wǎng)卡不僅被綁定為一個IP,MAC地址也被設(shè)定為同一個,進(jìn)而構(gòu)成一個虛擬的網(wǎng)卡,工作站向服務(wù)器請求數(shù)據(jù),服務(wù)器上的網(wǎng)卡接到請求后,網(wǎng)卡根據(jù)某種算法智能決定由誰來處理數(shù)據(jù)的傳輸。Bonding技術(shù)可以提高主機的網(wǎng)絡(luò)吞吐量和可用性。 32 Linux的幾種發(fā)送均衡算法
7、0; 目前Linux的發(fā)送算法最主要的有三種:輪轉(zhuǎn)算法(Round-Robin)、備份算法(Active-Backup)、MAC地址異或算法(MAC-XOR)。下面對目前這三種主要算法進(jìn)行簡單分析。 321 輪轉(zhuǎn)算法 該算法是基于公平原則進(jìn)行的,它為每個將要被發(fā)送的數(shù)據(jù)包選擇發(fā)送接口,算法的主要思想是首先第一個數(shù)據(jù)包由一個接口發(fā)送,另一個數(shù)據(jù)包則由另外一個接口發(fā)送,下面依次進(jìn)行循環(huán)選擇。通過分析我們可以看出這種算法比較比較簡單,在發(fā)送數(shù)據(jù)方面也比較公平,能保證網(wǎng)卡發(fā)送數(shù)據(jù)時候的負(fù)載均衡,資源利用率很高。但是我們知道
8、如果一個連接或者會話的數(shù)據(jù)包從不同的接口發(fā)出的話,中途再經(jīng)過不同的鏈路,在客戶端很有可能會出現(xiàn)數(shù)據(jù)包無序到達(dá)的問題,而無序到達(dá)的數(shù)據(jù)包需要重新要求被發(fā)送,這樣網(wǎng)絡(luò)的吞吐量就會下降。 322 備份算法 該算法將多個網(wǎng)卡接口中的一個接口設(shè)定為活動狀態(tài),其他的接口處于備用狀態(tài)。當(dāng)活動接口或者活動鏈路出現(xiàn)故障時,啟動備用鏈路,由此可見此算法的優(yōu)點是可以提供高網(wǎng)絡(luò)連接的可用性,但是它的資源利用率較低,只有一個接口處于工作狀態(tài),在有N個網(wǎng)絡(luò)接口的情況下,資源利用率為1/N。 323 MAC地址異或算法 該算法的主要
9、思想是:由服務(wù)器的MAC地址和客戶端的MAC地址共同決定每個數(shù)據(jù)包的發(fā)送端口號,由源MAC地址和目的MAC地址進(jìn)行異或計算,并將異或結(jié)果對接口數(shù)求余計算。由于發(fā)送到同一個客戶端的數(shù)據(jù)流經(jīng)過同一個鏈路,因此數(shù)據(jù)包能夠有序到達(dá)客戶端。此算法在只有一個客戶機訪問服務(wù)器或者服務(wù)器和客戶機不在同一子網(wǎng)的情況下,由算法思想得知這種情況下負(fù)載不會均衡,在只有一個客戶機訪問服務(wù)器的時候,資源的利用率也是1/N(N為接口數(shù))。 通常在一個大的局域網(wǎng)內(nèi),往往存在多個子網(wǎng)。 其拓?fù)浣Y(jié)構(gòu)如下所示: 圖1 局域網(wǎng)拓?fù)鋱D 4 基
10、于傳輸協(xié)議的發(fā)送算法 上面我們對Linux中的幾種實現(xiàn)多網(wǎng)卡發(fā)送負(fù)載均衡算法進(jìn)行了分析,針對這些算法的不足,這里提出另外一種發(fā)送負(fù)載均衡算法。 41 算法描述實現(xiàn) 我們知道網(wǎng)絡(luò)傳輸協(xié)議有TCP和UDP兩種,其中UDP是一種無連接、不可靠的傳輸協(xié)議。TCP是一種提供面向連接的、可靠的字節(jié)流服務(wù),譬如一個客戶機和一個服務(wù)器在彼此交換數(shù)據(jù)前要建立一個連接。一個TCP連接或者一個UDP會話的結(jié)構(gòu)大致如下: source,dst,saddr,daddr 其中source為源端口號,dst為目的端口號,saddr為源ip地址,daddr為目的ip地址。 基于傳
11、輸協(xié)議的發(fā)送算法的主要思想是: 由目的主機號、目的主機所在子網(wǎng)的子網(wǎng)號及該會話的TCP或UDP的目的端口號共同決定某個數(shù)據(jù)包的發(fā)送接口號,此算法和MAC地址的異或算法有點類似,因為它也是一種異或計算。 下面我們約定: (1)host為要發(fā)送數(shù)據(jù)包的目的主機號。 (2)subnet為目的主機的子網(wǎng)的子網(wǎng)號。 (3)port 為UDP或TCP連接的目的端口號。 (4)slave_cnt為綁定的接口數(shù)。 不失一般性,這里先考慮slave_cnt為4的情況,在這種情
12、況下由上述幾個條件異或并進(jìn)行求余計算來共同確定發(fā)送的接口號,即進(jìn)行下面的運算: (host subnet port ) & (0x03) % slave_cnt 式 上式可能的結(jié)果可能為0、1、2、3。即該算法這種情況下最多可以綁定4個網(wǎng)卡接口。 該算法最大程度上將不同連接的數(shù)據(jù)包從不同的接口發(fā)送,下面分幾種情況討論: (1)對于同一個客戶機的兩個TCP連接,發(fā)送的接口號只與要連接的目的端口號有關(guān)。我們假設(shè)連接1和連接2的目的端口號分別為port1,port2,當(dāng)port1(二進(jìn)制)和port2
13、(二進(jìn)制)的最后兩位不同時,上個算法的計算結(jié)果不相等,兩個連接的數(shù)據(jù)流從不同的接口發(fā)送出去. (2)對于同一個子網(wǎng)的不同客戶機的兩個TCP連接來說, 上述算法式子中的subnet相同,假設(shè)連接的目的端口號port相同。但是主機號不同。設(shè)目的主機號分別為host1和host2,當(dāng)host1和host2(都是用二進(jìn)制表示)的最后兩位不相同時,算法公式的計算結(jié)果不相等,兩個連接的數(shù)據(jù)流從不同的接口發(fā)送出去。 (3)對于不同子網(wǎng)的兩個TCP連接來說,假定主機號和連接的目的號port號都相同,子網(wǎng)號不同。設(shè)連接1
14、和連接2所在的子網(wǎng)號分別為subnet1和subnet2, 當(dāng)兩者的最后兩位不相同時,算法公式的計算結(jié)果不相等,此時兩個連接的數(shù)據(jù)流從不同的接口發(fā)送出去。 下面考慮有N個網(wǎng)卡接口的情況,在某個時間段內(nèi)從第i個接口發(fā)送的連接數(shù)為 (i=1,2,.N),第i個接口發(fā)送的第j個連接的數(shù)據(jù)流為 ,則第i個網(wǎng)卡接口的負(fù)載是: 當(dāng) 式。 當(dāng)式成立時,每個接口的負(fù)載絕對均衡,由于式能夠?qū)⑦B接盡量分配到不同的接口,所以一般情況
15、下 = = ,即每個接口的連接數(shù)相等,但是每個連接的數(shù)據(jù)流量不一定相等,也就是說式不一定成立,根據(jù)統(tǒng)計原理,當(dāng)客戶機和服務(wù)器的連接數(shù)足夠大并且時間足夠長時,式是成立的。 從上面對基于傳輸協(xié)議的負(fù)載均衡算法分析來看,該算法不僅在網(wǎng)絡(luò)層并且傳輸層都實現(xiàn)了各個接口的負(fù)載均衡,且保證了數(shù)據(jù)有序到達(dá)客戶端問題,同時資源的利用率也很高。 5 測試結(jié)果進(jìn)行驗證分析 測試軟件環(huán)境:RedHat9.0(內(nèi)核2.4.20) 測試硬件配置環(huán)境:一臺服務(wù)器(CPU: P IV 2.
16、8G;內(nèi)存: 512M;兩塊支持MII狀態(tài)字寄存器的百兆網(wǎng)卡,每個有一個接口;一臺客戶機(配置和服務(wù)器一樣);兩臺(一臺也可)24口千兆交換機。測試軟件為netpipe,利用此軟件可以測試TCP 協(xié)議性能,用它依次來對輪轉(zhuǎn)算法、MAC地址異或算法以及基于傳輸協(xié)議的發(fā)送算法的網(wǎng)絡(luò)延時和吞吐率。這里服務(wù)器用來發(fā)送數(shù)據(jù),客戶機用來接收數(shù)據(jù)。 服務(wù)器發(fā)送方執(zhí)行: NPtcp t s h 172.19.11.130 o test.ppt p 客戶機接受方執(zhí)行:
17、0; NPtcp r s 測試結(jié)果(測試結(jié)果為平均值)如表一所示。 從測試結(jié)果可以得出結(jié)論:由于輪轉(zhuǎn)算法簡單,計算量小,網(wǎng)絡(luò)延遲也相對小,而基于傳輸協(xié)議的發(fā)送算法計算量相對較多,網(wǎng)絡(luò)延時也比較大。由于這里是雙機對測,即只有一個客戶端,一個服務(wù)器端,所有MAC地址異或算法每次計算的結(jié)果也就唯一,只有一個接口被使用,吞吐率最小。相對來說,基于傳輸協(xié)議的發(fā)送算法吞吐率要大一些。 表一測試結(jié)果 上面測試需要說明的是:測試中服務(wù)器僅
18、配置了兩塊網(wǎng)卡,并且只有一臺客戶機訪問服務(wù)器,當(dāng)網(wǎng)卡接口和客戶機增加時,此文介紹的基于傳輸協(xié)議的發(fā)送算法的優(yōu)勢將會很明顯。在一個比較大的局域網(wǎng)中多個客戶機和服務(wù)器建立連接對話時,采用輪轉(zhuǎn)算法的同一個連接的數(shù)據(jù)包經(jīng)過不同的鏈路傳送,無序到達(dá)客戶端的概率就會增加,重發(fā)的次數(shù)也增加,服務(wù)器吞吐率會降低。而基于傳輸協(xié)議的發(fā)送算法則不存在這樣的問題,此種情況下,服務(wù)器的吞吐率相對增加。 6 結(jié)束語 Linux的bonding技術(shù)將多個網(wǎng)卡接口綁定在一起,使用多個接口發(fā)送數(shù)據(jù),算法上實現(xiàn)了負(fù)載均衡和故障遷移與接管。它是一種不對稱得負(fù)載均衡技術(shù),目前只是研究了發(fā)送算法,接受算法還有待于進(jìn)一步的研究,目前的鏈路技術(shù)都是將網(wǎng)卡接口綁定在一起來提高服務(wù)器的網(wǎng)絡(luò)性能,但是各種實現(xiàn)算法包括基于傳輸協(xié)議的發(fā)送算法并沒有考慮接口的速度,這一點有必要進(jìn)一步改進(jìn)。 參考文獻(xiàn) 1 A Cost-effective Approach to Improve Server Performance and Fault Tolerance. 2 毛德操 ,胡希明著.LINUX內(nèi)核源代碼
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年保密協(xié)議文檔
- 2025年產(chǎn)假補償協(xié)議
- 2025年醫(yī)療服務(wù)營養(yǎng)配餐協(xié)議
- 2025年代理商代理傭金費協(xié)議
- 2025年大型露天演出場地租用協(xié)議
- 2025年生存保險受益人變更申請
- 《用友業(yè)務(wù)流程》課件
- 二零二五版增值稅發(fā)票委托第三方服務(wù)框架協(xié)議3篇
- 事業(yè)單位2024年度勞動合同定制版
- 二零二五年度知識產(chǎn)權(quán)侵權(quán)賠償合同補充協(xié)議3篇
- 2024-2030年中國連續(xù)性腎臟替代治療(CRRT)行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 跨學(xué)科主題學(xué)習(xí):實施策略、設(shè)計要素與評價方式(附案例)
- 場地委托授權(quán)
- 2024年四川省成都市龍泉驛區(qū)中考數(shù)學(xué)二診試卷(含答案)
- 項目工地春節(jié)放假安排及安全措施
- 印染廠安全培訓(xùn)課件
- 紅色主題研學(xué)課程設(shè)計
- 胸外科手術(shù)圍手術(shù)期處理
- 裝置自動控制的先進(jìn)性說明
- 《企業(yè)管理課件:團(tuán)隊管理知識點詳解PPT》
- 移動商務(wù)內(nèi)容運營(吳洪貴)任務(wù)二 軟文的寫作
評論
0/150
提交評論