版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 動態(tài)反饋負(fù)載均衡在LVS集群中的設(shè)計與實(shí)現(xiàn) 秦 劉, 蘭巨龍, 楊 帥, 智 時間:2008年07月14日 字 體: 大 中 小 關(guān)鍵詞:<"cblue" " target='_blank'>權(quán)值<"cblue" " ta
2、rget='_blank'>負(fù)載均衡<"cblue" " target='_blank'>調(diào)度器<"cblue" " target='_blank'>真實(shí)服務(wù)器<"cblue" " target='_blank'>處理能力 ? 摘 要: 在Linux內(nèi)核中實(shí)現(xiàn)的
3、<"cblue" " title="負(fù)載均衡">負(fù)載均衡調(diào)度算法都是靜態(tài)的,沒有動態(tài)調(diào)節(jié)機(jī)制。介紹了LVS集群原理,分析了LVS調(diào)度算法的不足,提出了一種通過實(shí)時獲取<"cblue" " title="真實(shí)服務(wù)器">真實(shí)服務(wù)器的性能數(shù)據(jù)、計算和評估真實(shí)服務(wù)器負(fù)載,并根據(jù)結(jié)果調(diào)節(jié)服務(wù)器<"cblue" " title="權(quán)值">權(quán)值的方法。經(jīng)測試,利用該方法能夠有效防止服務(wù)器負(fù)載傾斜,達(dá)到良好高負(fù)載均衡的效果。
4、? 關(guān)鍵詞: 負(fù)載均衡LVS集群負(fù)反饋? 近年來,Internet的迅速發(fā)展使得人們已經(jīng)習(xí)慣從網(wǎng)絡(luò)上獲取任何想要的資源,在這種情況下需要網(wǎng)絡(luò)服務(wù)器具備提供大量并發(fā)訪問所需服務(wù)的能力。然而,單一服務(wù)器的<"cblue" " title="處理能力">處理能力很難滿足服務(wù)要求,已成為網(wǎng)絡(luò)系統(tǒng)的瓶頸。簡單地提高單個服務(wù)器硬件性能或者更換性能更高的服務(wù)器,都不能真正地提供大量并發(fā)訪問的能力。因?yàn)閱闻_服務(wù)器的性能總是有限的,而且網(wǎng)絡(luò)請求具有突發(fā)性,即當(dāng)有重大事件發(fā)生時,網(wǎng)絡(luò)訪問量會急劇上升,從而造成網(wǎng)絡(luò)阻塞。? 利用集群技術(shù)在服務(wù)器應(yīng)用系統(tǒng)中
5、實(shí)現(xiàn)負(fù)載均衡可以有效地解決上述問題。Linux的虛擬服務(wù)器LVS(Linux Virtual Server)可以完成基于IP層和基于內(nèi)容請求分發(fā)的負(fù)載平衡調(diào)度,并在Linux內(nèi)核中實(shí)現(xiàn)這些方法,將一組服務(wù)器構(gòu)成一個能實(shí)現(xiàn)可伸縮的、高可用網(wǎng)絡(luò)服務(wù)的服務(wù)器集群。本文在分析現(xiàn)有LVS負(fù)載均衡調(diào)度算法的基礎(chǔ)上,針對其不足,提出一種可動態(tài)調(diào)整服務(wù)器權(quán)值的負(fù)載均衡調(diào)度算法。1 LVS集群介紹1.1? LVS集群的結(jié)構(gòu)1? LVS是由基于Linux操作系統(tǒng)的負(fù)載均衡服務(wù)器(LB)和基于任意支持TCP/IP平臺的支撐服務(wù)器RS(Real Server)群組成的高擴(kuò)展性和高穩(wěn)定性的虛擬服務(wù)器。在LVS集群中,服
6、務(wù)器集群的結(jié)構(gòu)對用戶是透明的,用戶訪問集群提供的網(wǎng)絡(luò)服務(wù)就像訪問一臺高性能、高可用的服務(wù)器一樣。LVS集群的通用體系結(jié)構(gòu)如圖1所示,主要由以下三部分組成:? (1) 負(fù)載<"cblue" " title="調(diào)度器">調(diào)度器(load balancer):它是整個集群對外的前端機(jī),負(fù)責(zé)將用戶的請求發(fā)送到一組服務(wù)器上執(zhí)行,但從用戶角度來看,服務(wù)來自一個IP地址。它可以是基于IP負(fù)載均衡技術(shù)的負(fù)載調(diào)度器,也可以是基于內(nèi)容請求分發(fā)的負(fù)載調(diào)度器,還可以是兩者的結(jié)合。 ? (2) 服務(wù)器池(server pool):是一組真正執(zhí)行用戶請求的服務(wù)
7、器,執(zhí)行的服務(wù)有Web、MAIL、FTP和DNS等。 ? (3) 后端存儲(backend storage):它為服務(wù)器池提供一個共享的存儲區(qū),這樣可使服務(wù)器池很容易擁有相同的內(nèi)容,提供相同的服務(wù)。? 在調(diào)度器的實(shí)現(xiàn)技術(shù)中,IP負(fù)載均衡技術(shù)是效率最高的,LVS實(shí)現(xiàn)的基于IP負(fù)載均衡技術(shù)的三種虛擬服務(wù)器方法如下:? (1) 通過網(wǎng)絡(luò)地址轉(zhuǎn)換VS/NAT技術(shù)(Virtual Server via Network Address Translation)。大多數(shù)商品化的IP負(fù)載均衡調(diào)度器產(chǎn)品都是使用此方法。? (2) IP隧道VS/TUN(Virtual Server via IP Tunnelin
8、g)。? (3) 直接路由實(shí)現(xiàn)虛擬服務(wù)器的方法VS/DR(Virtual Server via Direct Routing)。? 三種IP負(fù)載均衡技術(shù)的優(yōu)缺點(diǎn)如表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分級結(jié)構(gòu)的影響。? ?(2)加權(quán)輪詢(wrr):循環(huán)方式調(diào)度,但在循環(huán)中給每個內(nèi)容服務(wù)器分配指定權(quán)重的連接,從而充分考慮各內(nèi)容服務(wù)器處理能力之間的差異。? ?(3)最小連接(lc):將
9、新到的連接請求動態(tài)地分配給現(xiàn)有活躍連接數(shù)最少的內(nèi)容服務(wù)器。? ?(4)加權(quán)最小連接(wlc):將新到的連接請求按各內(nèi)容服務(wù)器當(dāng)前處理連接數(shù)量的比例進(jìn)行動態(tài)分配。wlc是LVS系統(tǒng)的缺省調(diào)度算法,在一般應(yīng)用中都可采用此法均衡。? ?(5)基于位置的最小連接(lblc):專門為高緩集群(cache cluster)設(shè)計的算法,屬基于內(nèi)容的均衡,盡量將對同一目的地址的連接請求分配給固定的一臺高緩集群節(jié)點(diǎn)。? (6)帶復(fù)制的基于位置的最小連接(lblcr):在集群節(jié)點(diǎn)中維護(hù)若干針對特定目的地址的高緩服務(wù)器集合,以后每當(dāng)有對匹配地址的連接請求時,盡量分配給該集合中活躍連接數(shù)最少的那臺高緩服務(wù)器,并定期將
10、該集合中負(fù)載最大的節(jié)點(diǎn)剔除。? ?(7)目標(biāo)哈希(dh):根據(jù)目標(biāo)地址查找事先設(shè)定的靜態(tài)哈希表來分配連接。? ?(8)源哈希(sh):按客戶地址查找設(shè)定的靜態(tài)哈希表來分配連接,可實(shí)現(xiàn)服務(wù)就近提供,保證服務(wù)質(zhì)量(QoS)。2? 動態(tài)負(fù)載均衡模型? 服務(wù)器的負(fù)載主要由客戶端的請求服務(wù)引起。當(dāng)客戶端的請求到來時,調(diào)度器如何選擇服務(wù)器來為此請求服務(wù)的過程成為服務(wù)器負(fù)載大小的關(guān)鍵。在LVS中,調(diào)度器通過使用上述各種調(diào)度算法來完成這個工作。但上述調(diào)度算法是一些靜態(tài)算法。? 靜態(tài)調(diào)度算法是利用事先設(shè)定好的服務(wù)器的信息調(diào)度的,決策過程的依據(jù)都是事先設(shè)定好的,如權(quán)值等,因而不能動態(tài)反映服務(wù)器的負(fù)載情況。當(dāng)客戶通
11、過TCP/UDP連接訪問服務(wù)器時,由于網(wǎng)絡(luò)服務(wù)的服務(wù)時間不同、訪問分布的不均勻性及服務(wù)所需資源千差萬別,靜態(tài)調(diào)度算法不能實(shí)時地反映后端服務(wù)器的負(fù)載情況,無法保證系統(tǒng)內(nèi)服務(wù)器真正地實(shí)現(xiàn)均衡。動態(tài)算法的主要思想是根據(jù)負(fù)反饋理論,獲得服務(wù)器的真實(shí)負(fù)載情況并作出評估,將評估的結(jié)果作為系統(tǒng)的反饋來修正負(fù)載均衡算法的參數(shù)。系統(tǒng)模型如圖2所示。? 圖2只是表示了一個服務(wù)器的反饋情況,在實(shí)際情況中,每個服務(wù)器都會向調(diào)度器反饋負(fù)載情況l(l較大表示負(fù)載較大,反之則負(fù)載較?。D中,F(w,l)表示權(quán)值和負(fù)載關(guān)系的權(quán)值調(diào)節(jié)模塊,根據(jù)服務(wù)器當(dāng)前負(fù)載情況l和當(dāng)前權(quán)值w計算得出新權(quán)值w,調(diào)度器(LB)則根據(jù)服務(wù)器新的權(quán)
12、值信息w分配用戶的請求。服務(wù)器池(RS)由多臺服務(wù)器組成,負(fù)責(zé)對客戶請求做出響應(yīng)并向權(quán)值調(diào)節(jié)模塊反饋負(fù)載信息。? 權(quán)值代表服務(wù)器的處理,通過反饋調(diào)整過的新權(quán)值w,反映了服務(wù)器的實(shí)時處理能力。而在LVS的各種調(diào)度算法中,權(quán)值是事先設(shè)定好的。根據(jù)加權(quán)輪詢調(diào)度算法(wrr)或加權(quán)最小連接調(diào)度算法(wlc),權(quán)值大的服務(wù)器會分配到相對較多的請求。這就可能出現(xiàn)負(fù)載相對不均衡的情況:當(dāng)權(quán)值較大的服務(wù)器得到較多請求時的處理能力反而比權(quán)值小的服務(wù)器的處理能力小。這時,可采用如圖2所示的負(fù)反饋模型解決負(fù)載相對的不均衡問題,即當(dāng)某個服務(wù)器的l較大時,可降低w;l較小時可增大w,從而能充分發(fā)揮服務(wù)器的處理能力,較好
13、地達(dá)到均衡負(fù)載的作用。3 動態(tài)負(fù)載均衡的實(shí)現(xiàn)? LVS系統(tǒng)中實(shí)現(xiàn)的調(diào)度算法都是靜態(tài)調(diào)度算法,為此,本文根據(jù)圖2模型引入動態(tài)負(fù)載均衡機(jī)制,對真實(shí)服務(wù)器的權(quán)值進(jìn)行動態(tài)調(diào)整。由于動態(tài)負(fù)載均衡模塊需要定時收集后端真實(shí)服務(wù)器的實(shí)時負(fù)載信息,因此,要在LB中加上負(fù)載查詢與接收模塊、負(fù)載信息處理與評估模塊和內(nèi)核通信模塊3。加入動態(tài)負(fù)載均衡模塊后,基于linux內(nèi)核的動態(tài)負(fù)載均衡流程如圖3所示。?3.1 負(fù)載采集模塊? 動態(tài)調(diào)度算法需要獲得各節(jié)點(diǎn)的系統(tǒng)性能和負(fù)載信息, 包括CPU占用率、CPU利用率、磁盤可用空間、內(nèi)存以及I/O利用率等。在Linux系統(tǒng)中,這些信息的獲取可通過簡單網(wǎng)絡(luò)管理協(xié)議SNMP來實(shí)現(xiàn)。
14、支持SNMP管理的網(wǎng)路設(shè)備,其性能數(shù)據(jù)都有一個標(biāo)準(zhǔn)MIB變量并有惟一的OID與之對應(yīng),如.4.1.20.2表示CPU最近5分鐘的平均占用率等。在所有RS的用戶空間運(yùn)行SNMP代理進(jìn)程,SNMP將負(fù)責(zé)接收和處理LB發(fā)出的SNMP請求。由于影響服務(wù)器自身性能的因素很多,負(fù)載采集不可能收集所有的信息,在此,只選取了一般應(yīng)用中影響服務(wù)器性能的五個關(guān)鍵指標(biāo):CPU占用率L(Ci)、請求響應(yīng)時間L(Ti)、內(nèi)存占用率L(Mi)、磁盤I/O占用率L(Di)、網(wǎng)絡(luò)帶寬占有率L(Bi)。3.2 定時器模塊和負(fù)載查詢與接收模塊? 負(fù)載查詢與接收模塊運(yùn)行在LB的用戶空間。對于查詢對象
15、即RS的地址的獲取,負(fù)載查詢進(jìn)程會按一定的時間間隔遍歷內(nèi)核LVS模塊的RS鏈表,并返回Real Server的地址等信息,建立用戶空間的RS鏈表。查詢進(jìn)程根據(jù)RS鏈表,針對每一個RS,發(fā)出相應(yīng)SNMP請求查詢并存儲其負(fù)載信息。? 動態(tài)反饋機(jī)制本身也是需要系統(tǒng)開銷的,因此不可能對用戶的所有請求都對服務(wù)器端的負(fù)載情況進(jìn)行查詢??刹捎妹扛粢欢ǖ臅r間間隔T(如2秒鐘),由負(fù)載查詢進(jìn)程再查詢各個服務(wù)器的情況,并相應(yīng)調(diào)整服務(wù)器的權(quán)值。這樣周期性地進(jìn)行,通過一個負(fù)反饋機(jī)制,使得服務(wù)器保持較好的利用率。3.3 負(fù)載處理與評估模塊? 該模塊負(fù)責(zé)處理與評估負(fù)載接收模塊存儲對應(yīng)于每個RS的負(fù)載信息,將每個RS當(dāng)前的
16、權(quán)值和其負(fù)載信息計算出一個新的權(quán)值。當(dāng)負(fù)載值表示服務(wù)器比較忙時,新計算出的權(quán)值會比當(dāng)前權(quán)值??;反之會比當(dāng)前權(quán)值大(新權(quán)值的具體算法如后所述)。算出新權(quán)值后,通過內(nèi)核通信模塊用新的權(quán)值更新內(nèi)核中相應(yīng)服務(wù)器的信息。? 因?yàn)榉?wù)器的各種性能信息對服務(wù)器的處理能力影響不一樣,根據(jù)其不同的影響力,對每個因素設(shè)定一個影響因子,不同的服務(wù)器影響因子將不相同。例如,在Web服務(wù)器集群中,對服務(wù)器RSi的主要負(fù)載因素L(Ci)、L(Ti)、L(Mi)、L(Di)、L(Bi)引入影響因子Qi進(jìn)行計算。Qi=qi1,qi2,qi3,qi4,qi5=0.4,0.3,0.1,0.1,0.1時,認(rèn)為服務(wù)器的CPU負(fù)載和請
17、求響應(yīng)時間較其他參數(shù)重要一些。若當(dāng)前的系數(shù)Qi不能很好地反映應(yīng)用的負(fù)載,系統(tǒng)管理員可以對系數(shù)不斷地進(jìn)行修正,直到找到貼近當(dāng)前應(yīng)用的一組系數(shù)。通過下式可得出服務(wù)器RSi的負(fù)載綜合Li=Qi×L(Ci),L(Ti),L(Mi),L(Di),L(Bi)T。? 結(jié)合節(jié)點(diǎn)的初始權(quán)值和采集的綜合負(fù)載情況計算新的權(quán)值結(jié)果,即可引入如下權(quán)值計算公式:? 式中,0.65是本文想要達(dá)到的系統(tǒng)利用率,A是一個可調(diào)整的系數(shù)(缺省值為5)。當(dāng)綜合負(fù)載值為0.65時,服務(wù)器權(quán)值不變;而大于0.65時,權(quán)值變小;小于0.65時,權(quán)值變大。為了避免權(quán)值變成一個很大的值,對權(quán)值的范圍作一個限制其中k是可以調(diào)整的,其缺
18、省值為10。若新權(quán)值可將新權(quán)值設(shè)為k×wi。若新權(quán)值與當(dāng)前權(quán)值的差值沒有超過設(shè)定的閥值,則將新權(quán)值設(shè)置到內(nèi)核中的IPVS調(diào)度參數(shù)中;否則避免打斷IPVS調(diào)度的開銷。這樣將使權(quán)值調(diào)整到一個穩(wěn)定點(diǎn)。當(dāng)系統(tǒng)達(dá)到理想的利用率時,權(quán)值是不變的。3.4 內(nèi)核通信模塊? 由于IPVS模塊工作在內(nèi)核中,因此,內(nèi)核通信模塊負(fù)責(zé)負(fù)載處理模塊及負(fù)載接收模塊與內(nèi)核的交互。主要有兩個任務(wù):(1)完成負(fù)載查詢與接收模塊取得內(nèi)核RS鏈表,并返回。(2)通過調(diào)用setsockopt()函數(shù)把負(fù)載處理模塊生成的新的權(quán)值信息傳入內(nèi)核IPVS模塊。4 測 試4.1 硬件環(huán)境? 測試平臺連接拓?fù)鋱D如圖4所示。圖中設(shè)備的硬件
19、配置如表2所示。?4.2 軟件環(huán)境5-6? 各個設(shè)備使用的操作系統(tǒng)如表2所示。真實(shí)服務(wù)器RS1、RS2都運(yùn)行Apache2.2服務(wù)器,提供Web服務(wù);安裝了簡單網(wǎng)絡(luò)管理協(xié)議SNMP,負(fù)責(zé)監(jiān)控服務(wù)器的性能信息。測試儀利用工具 WAS(Web Application Stress)在客戶端向虛擬服務(wù)發(fā)起持續(xù)請求,觀察服務(wù)器的服務(wù)性能。WAS是Microsoft公司推出的Web服務(wù)器性能測試工具。WAS設(shè)置時將Stress Level大小設(shè)置為100,StressMultiplier 大小設(shè)置為 20,測試時間為 4 分鐘,測試期間WAS請求真實(shí)服務(wù)器上的HTTP動態(tài)頁面。4.3 測試內(nèi)容和結(jié)果分析
20、? 在上述環(huán)境下,采用DR(Direct Route)方式實(shí)現(xiàn)服務(wù)器的負(fù)載均衡,其連接拓?fù)鋱D見圖1。? 為了測試是否會出現(xiàn)負(fù)載傾斜現(xiàn)象,將RS1和RS2的初始權(quán)值分別設(shè)為4和10,內(nèi)核LVS調(diào)度算法采用加權(quán)輪詢調(diào)度(wrr)算法。? (1)不使用動態(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)值無法動態(tài)更改,在運(yùn)行過程中無法根據(jù)服務(wù)器的實(shí)時負(fù)載來確定服務(wù)器的權(quán)值以確定新鏈接的分配去向,造成服務(wù)器的負(fù)載傾斜。? (2)在LB上啟動動態(tài)負(fù)載模塊并在RS
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年現(xiàn)代農(nóng)業(yè)科技合作項(xiàng)目協(xié)議
- 智能物流系統(tǒng)開發(fā)協(xié)議書
- 電商物流系統(tǒng)優(yōu)化合同
- 企業(yè)宣傳片拍攝合同
- 樣板間租賃合同
- 環(huán)??萍籍a(chǎn)品推廣合作協(xié)議書
- 2025測量技術(shù)服務(wù)合同范本
- 2025商標(biāo)交易代理合同
- 機(jī)械基礎(chǔ)實(shí)驗(yàn)報告集
- 《沙盤技術(shù)》教學(xué)大綱
- (主城一診)重慶市2025年高2025屆高三學(xué)業(yè)質(zhì)量調(diào)研抽測 (第一次)地理試卷(含答案)
- 職業(yè)培訓(xùn)師培訓(xùn)課件
- (新版)多旋翼無人機(jī)超視距駕駛員執(zhí)照參考試題庫(含答案)
- 哈利波特中英文全集
- DLT5210.1-電力建設(shè)施工質(zhì)量驗(yàn)收及評價規(guī)程全套驗(yàn)評表格之歐陽法創(chuàng)編
- 500句漢語日常對話
- 《抽搐的鑒別與處理》課件
- 2024-2030年中國凈菜加工行業(yè)產(chǎn)能預(yù)測及投資規(guī)模分析報告版
- 自來水廠建設(shè)項(xiàng)目可行性研究報告
- 承諾保證協(xié)議
評論
0/150
提交評論