動(dòng)態(tài)反饋負(fù)載均衡在LVS集群中的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
動(dòng)態(tài)反饋負(fù)載均衡在LVS集群中的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
動(dòng)態(tài)反饋負(fù)載均衡在LVS集群中的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
動(dòng)態(tài)反饋負(fù)載均衡在LVS集群中的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
動(dòng)態(tài)反饋負(fù)載均衡在LVS集群中的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、    動(dòng)態(tài)反饋負(fù)載均衡在LVS集群中的設(shè)計(jì)與實(shí)現(xiàn)        秦 劉, 蘭巨龍, 楊 帥, 智 時(shí)間:2008年07月14日     字 體: 大 中 小        關(guān)鍵詞:        ? 摘 要:關(guān)鍵詞: 負(fù)載均衡LVS集群負(fù)反饋?1 LVS集群介紹1.1? LVS

2、集群的結(jié)構(gòu)1? LVS是由基于Linux操作系統(tǒng)的負(fù)載均衡服務(wù)器(LB)和基于任意支持TCP/IP平臺(tái)的支撐服務(wù)器RS(Real Server)群組成的高擴(kuò)展性和高穩(wěn)定性的虛擬服務(wù)器。在LVS集群中,服務(wù)器集群的結(jié)構(gòu)對(duì)用戶是透明的,用戶訪問(wèn)集群提供的網(wǎng)絡(luò)服務(wù)就像訪問(wèn)一臺(tái)高性能、高可用的服務(wù)器一樣。LVS集群的通用體系結(jié)構(gòu)如圖1所示,主要由以下三部分組成:?1.2 LVS負(fù)載均衡調(diào)度算法2? LVS支持的負(fù)載均衡調(diào)度算法有如下八種:? (1)輪詢(rr):以順序循環(huán)方式進(jìn)行調(diào)度,相比R-R DNS,這種調(diào)度是基于TCP或UDP網(wǎng)絡(luò)套接字連接的,而不是基于網(wǎng)絡(luò)主機(jī)的,它不受客戶端Cache或DNS

3、分級(jí)結(jié)構(gòu)的影響。? ?(2)加權(quán)輪詢(wrr):循環(huán)方式調(diào)度,但在循環(huán)中給每個(gè)內(nèi)容服務(wù)器分配指定權(quán)重的連接,從而充分考慮各內(nèi)容服務(wù)器處理能力之間的差異。? ?(3)最小連接(lc):將新到的連接請(qǐng)求動(dòng)態(tài)地分配給現(xiàn)有活躍連接數(shù)最少的內(nèi)容服務(wù)器。? ?(4)加權(quán)最小連接(wlc):將新到的連接請(qǐng)求按各內(nèi)容服務(wù)器當(dāng)前處理連接數(shù)量的比例進(jìn)行動(dòng)態(tài)分配。wlc是LVS系統(tǒng)的缺省調(diào)度算法,在一般應(yīng)用中都可采用此法均衡。? ?(5)基于位置的最小連接(lblc):專(zhuān)門(mén)為高緩集群(cache cluster)設(shè)計(jì)的算法,屬基于內(nèi)容的均衡,盡量將對(duì)同一目的地址的連接請(qǐng)求分配給固定的一臺(tái)高緩集群節(jié)點(diǎn)。? (6)帶復(fù)

4、制的基于位置的最小連接(lblcr):在集群節(jié)點(diǎn)中維護(hù)若干針對(duì)特定目的地址的高緩服務(wù)器集合,以后每當(dāng)有對(duì)匹配地址的連接請(qǐng)求時(shí),盡量分配給該集合中活躍連接數(shù)最少的那臺(tái)高緩服務(wù)器,并定期將該集合中負(fù)載最大的節(jié)點(diǎn)剔除。? ?(7)目標(biāo)哈希(dh):根據(jù)目標(biāo)地址查找事先設(shè)定的靜態(tài)哈希表來(lái)分配連接。? ?(8)源哈希(sh):按客戶地址查找設(shè)定的靜態(tài)哈希表來(lái)分配連接,可實(shí)現(xiàn)服務(wù)就近提供,保證服務(wù)質(zhì)量(QoS)。2? 動(dòng)態(tài)負(fù)載均衡模型? 服務(wù)器的負(fù)載主要由客戶端的請(qǐng)求服務(wù)引起。當(dāng)客戶端的請(qǐng)求到來(lái)時(shí),調(diào)度器如何選擇服務(wù)器來(lái)為此請(qǐng)求服務(wù)的過(guò)程成為服務(wù)器負(fù)載大小的關(guān)鍵。在LVS中,調(diào)度器通過(guò)使用上述各種調(diào)度算法

5、來(lái)完成這個(gè)工作。但上述調(diào)度算法是一些靜態(tài)算法。? 靜態(tài)調(diào)度算法是利用事先設(shè)定好的服務(wù)器的信息調(diào)度的,決策過(guò)程的依據(jù)都是事先設(shè)定好的,如權(quán)值等,因而不能動(dòng)態(tài)反映服務(wù)器的負(fù)載情況。當(dāng)客戶通過(guò)TCP/UDP連接訪問(wèn)服務(wù)器時(shí),由于網(wǎng)絡(luò)服務(wù)的服務(wù)時(shí)間不同、訪問(wèn)分布的不均勻性及服務(wù)所需資源千差萬(wàn)別,靜態(tài)調(diào)度算法不能實(shí)時(shí)地反映后端服務(wù)器的負(fù)載情況,無(wú)法保證系統(tǒng)內(nèi)服務(wù)器真正地實(shí)現(xiàn)均衡。動(dòng)態(tài)算法的主要思想是根據(jù)負(fù)反饋理論,獲得服務(wù)器的真實(shí)負(fù)載情況并作出評(píng)估,將評(píng)估的結(jié)果作為系統(tǒng)的反饋來(lái)修正負(fù)載均衡算法的參數(shù)。系統(tǒng)模型如圖2所示。? 圖2只是表示了一個(gè)服務(wù)器的反饋情況,在實(shí)際情況中,每個(gè)服務(wù)器都會(huì)向調(diào)度器反饋負(fù)載

6、情況l(l較大表示負(fù)載較大,反之則負(fù)載較?。?。圖中,F(w,l)表示權(quán)值和負(fù)載關(guān)系的權(quán)值調(diào)節(jié)模塊,根據(jù)服務(wù)器當(dāng)前負(fù)載情況l和當(dāng)前權(quán)值w計(jì)算得出新權(quán)值w,調(diào)度器(LB)則根據(jù)服務(wù)器新的權(quán)值信息w分配用戶的請(qǐng)求。服務(wù)器池(RS)由多臺(tái)服務(wù)器組成,負(fù)責(zé)對(duì)客戶請(qǐng)求做出響應(yīng)并向權(quán)值調(diào)節(jié)模塊反饋負(fù)載信息。? 權(quán)值代表服務(wù)器的處理,通過(guò)反饋調(diào)整過(guò)的新權(quán)值w,反映了服務(wù)器的實(shí)時(shí)處理能力。而在LVS的各種調(diào)度算法中,權(quán)值是事先設(shè)定好的。根據(jù)加權(quán)輪詢調(diào)度算法(wrr)或加權(quán)最小連接調(diào)度算法(wlc),權(quán)值大的服務(wù)器會(huì)分配到相對(duì)較多的請(qǐng)求。這就可能出現(xiàn)負(fù)載相對(duì)不均衡的情況:當(dāng)權(quán)值較大的服務(wù)器得到較多請(qǐng)求時(shí)的處理能力

7、反而比權(quán)值小的服務(wù)器的處理能力小。這時(shí),可采用如圖2所示的負(fù)反饋模型解決負(fù)載相對(duì)的不均衡問(wèn)題,即當(dāng)某個(gè)服務(wù)器的l較大時(shí),可降低w;l較小時(shí)可增大w,從而能充分發(fā)揮服務(wù)器的處理能力,較好地達(dá)到均衡負(fù)載的作用。3 動(dòng)態(tài)負(fù)載均衡的實(shí)現(xiàn)? LVS系統(tǒng)中實(shí)現(xiàn)的調(diào)度算法都是靜態(tài)調(diào)度算法,為此,本文根據(jù)圖2模型引入動(dòng)態(tài)負(fù)載均衡機(jī)制,對(duì)真實(shí)服務(wù)器的權(quán)值進(jìn)行動(dòng)態(tài)調(diào)整。由于動(dòng)態(tài)負(fù)載均衡模塊需要定時(shí)收集后端真實(shí)服務(wù)器的實(shí)時(shí)負(fù)載信息,因此,要在LB中加上負(fù)載查詢與接收模塊、負(fù)載信息處理與評(píng)估模塊和內(nèi)核通信模塊3。加入動(dòng)態(tài)負(fù)載均衡模塊后,基于linux內(nèi)核的動(dòng)態(tài)負(fù)載均衡流程如圖3所示。?3.1 負(fù)載采集模塊i)、請(qǐng)求響

8、應(yīng)時(shí)間L(Ti)、內(nèi)存占用率L(Mi)、磁盤(pán)I/O占用率L(Di)、網(wǎng)絡(luò)帶寬占有率L(Bi)。3.2 定時(shí)器模塊和負(fù)載查詢與接收模塊? 負(fù)載查詢與接收模塊運(yùn)行在LB的用戶空間。對(duì)于查詢對(duì)象即RS的地址的獲取,負(fù)載查詢進(jìn)程會(huì)按一定的時(shí)間間隔遍歷內(nèi)核LVS模塊的RS鏈表,并返回Real Server的地址等信息,建立用戶空間的RS鏈表。查詢進(jìn)程根據(jù)RS鏈表,針對(duì)每一個(gè)RS,發(fā)出相應(yīng)SNMP請(qǐng)求查詢并存儲(chǔ)其負(fù)載信息。? 動(dòng)態(tài)反饋機(jī)制本身也是需要系統(tǒng)開(kāi)銷(xiāo)的,因此不可能對(duì)用戶的所有請(qǐng)求都對(duì)服務(wù)器端的負(fù)載情況進(jìn)行查詢??刹捎妹扛粢欢ǖ臅r(shí)間間隔T(如2秒鐘),由負(fù)載查詢進(jìn)程再查詢各個(gè)服務(wù)器的情況,并相應(yīng)調(diào)整

9、服務(wù)器的權(quán)值。這樣周期性地進(jìn)行,通過(guò)一個(gè)負(fù)反饋機(jī)制,使得服務(wù)器保持較好的利用率。3.3 負(fù)載處理與評(píng)估模塊? 該模塊負(fù)責(zé)處理與評(píng)估負(fù)載接收模塊存儲(chǔ)對(duì)應(yīng)于每個(gè)RS的負(fù)載信息,將每個(gè)RS當(dāng)前的權(quán)值和其負(fù)載信息計(jì)算出一個(gè)新的權(quán)值。當(dāng)負(fù)載值表示服務(wù)器比較忙時(shí),新計(jì)算出的權(quán)值會(huì)比當(dāng)前權(quán)值小;反之會(huì)比當(dāng)前權(quán)值大(新權(quán)值的具體算法如后所述)。算出新權(quán)值后,通過(guò)內(nèi)核通信模塊用新的權(quán)值更新內(nèi)核中相應(yīng)服務(wù)器的信息。? 因?yàn)榉?wù)器的各種性能信息對(duì)服務(wù)器的處理能力影響不一樣,根據(jù)其不同的影響力,對(duì)每個(gè)因素設(shè)定一個(gè)影響因子,不同的服務(wù)器影響因子將不相同。例如,在Web服務(wù)器集群中,對(duì)服務(wù)器RSi的主要負(fù)載因素L(Ci)

10、、L(Ti)、L(Mi)、L(Di)、L(Bi)引入影響因子Qi進(jìn)行計(jì)算。Qi=qi1,qi2,qi3,qi4,qi5=0.4,0.3,0.1,0.1,0.1時(shí),認(rèn)為服務(wù)器的CPU負(fù)載和請(qǐng)求響應(yīng)時(shí)間較其他參數(shù)重要一些。若當(dāng)前的系數(shù)Qi不能很好地反映應(yīng)用的負(fù)載,系統(tǒng)管理員可以對(duì)系數(shù)不斷地進(jìn)行修正,直到找到貼近當(dāng)前應(yīng)用的一組系數(shù)。通過(guò)下式可得出服務(wù)器RSi的負(fù)載綜合Li=Qi×L(Ci),L(Ti),L(Mi),L(Di),L(Bi)T。? 結(jié)合節(jié)點(diǎn)的初始權(quán)值和采集的綜合負(fù)載情況計(jì)算新的權(quán)值結(jié)果,即可引入如下權(quán)值計(jì)算公式:? 式中,0.65是本文想要達(dá)到的系統(tǒng)利用率,A是一個(gè)可調(diào)整的系數(shù)

11、(缺省值為5)。當(dāng)綜合負(fù)載值為0.65時(shí),服務(wù)器權(quán)值不變;而大于0.65時(shí),權(quán)值變?。恍∮?.65時(shí),權(quán)值變大。為了避免權(quán)值變成一個(gè)很大的值,對(duì)權(quán)值的范圍作一個(gè)限制其中k是可以調(diào)整的,其缺省值為10。若新權(quán)值可將新權(quán)值設(shè)為k×wi。若新權(quán)值與當(dāng)前權(quán)值的差值沒(méi)有超過(guò)設(shè)定的閥值,則將新權(quán)值設(shè)置到內(nèi)核中的IPVS調(diào)度參數(shù)中;否則避免打斷IPVS調(diào)度的開(kāi)銷(xiāo)。這樣將使權(quán)值調(diào)整到一個(gè)穩(wěn)定點(diǎn)。當(dāng)系統(tǒng)達(dá)到理想的利用率時(shí),權(quán)值是不變的。3.4 內(nèi)核通信模塊? 由于IPVS模塊工作在內(nèi)核中,因此,內(nèi)核通信模塊負(fù)責(zé)負(fù)載處理模塊及負(fù)載接收模塊與內(nèi)核的交互。主要有兩個(gè)任務(wù):(1)完成負(fù)載查詢與接收模塊取得內(nèi)核

12、RS鏈表,并返回。(2)通過(guò)調(diào)用setsockopt()函數(shù)把負(fù)載處理模塊生成的新的權(quán)值信息傳入內(nèi)核IPVS模塊。4 測(cè) 試4.1 硬件環(huán)境? 測(cè)試平臺(tái)連接拓?fù)鋱D如圖4所示。圖中設(shè)備的硬件配置如表2所示。?4.2 軟件環(huán)境5-6? 各個(gè)設(shè)備使用的操作系統(tǒng)如表2所示。真實(shí)服務(wù)器RS1、RS2都運(yùn)行Apache2.2服務(wù)器,提供Web服務(wù);安裝了簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議SNMP,負(fù)責(zé)監(jiān)控服務(wù)器的性能信息。測(cè)試儀利用工具 WAS(Web Application Stress)在客戶端向虛擬服務(wù)發(fā)起持續(xù)請(qǐng)求,觀察服務(wù)器的服務(wù)性能。WAS是Microsoft公司推出的Web服務(wù)器性能測(cè)試工具。WAS設(shè)置時(shí)將St

13、ress Level大小設(shè)置為100,StressMultiplier 大小設(shè)置為 20,測(cè)試時(shí)間為 4 分鐘,測(cè)試期間WAS請(qǐng)求真實(shí)服務(wù)器上的HTTP動(dòng)態(tài)頁(yè)面。4.3 測(cè)試內(nèi)容和結(jié)果分析? 在上述環(huán)境下,采用DR(Direct Route)方式實(shí)現(xiàn)服務(wù)器的負(fù)載均衡,其連接拓?fù)鋱D見(jiàn)圖1。? 為了測(cè)試是否會(huì)出現(xiàn)負(fù)載傾斜現(xiàn)象,將RS1和RS2的初始權(quán)值分別設(shè)為4和10,內(nèi)核LVS調(diào)度算法采用加權(quán)輪詢調(diào)度(wrr)算法。? (1)不使用動(dòng)態(tài)調(diào)度算法的情況? 靜態(tài)算法下的負(fù)載情況如圖5所示。由圖可知,RS1的配置比RS2的配置低很多,卻擁有較大的權(quán)值,所以基本一直工作在滿負(fù)荷狀態(tài),而RS2雖然配置很高但權(quán)值很低,一直處于較低的負(fù)載,其性能得不到充分發(fā)揮。這是因?yàn)榉?wù)器的權(quán)值無(wú)法動(dòng)態(tài)更改,在運(yùn)行過(guò)程中無(wú)法根據(jù)服務(wù)器的實(shí)時(shí)負(fù)載來(lái)確定服務(wù)器的權(quán)值以確定新鏈接的分配去向,造成服務(wù)器的負(fù)載傾斜。? (2)在LB上啟動(dòng)動(dòng)態(tài)負(fù)載模塊并在RS1、RS2上啟動(dòng)SNMPD進(jìn)程后,得到如圖6所示的結(jié)果。? 由圖6可知,雖然兩臺(tái)服務(wù)器的配置及初始權(quán)值不一樣,但由于動(dòng)態(tài)權(quán)值的引入,使得LB能夠按照各真實(shí)服務(wù)器的實(shí)時(shí)負(fù)載情況來(lái)分配任務(wù),使兩臺(tái)服務(wù)器的負(fù)載情況都在期望值(0.65)附近,較好地實(shí)現(xiàn)了負(fù)載的均衡,達(dá)到了預(yù)期效

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論