江小平,張 濤,李成華,江 騰
(中南民族大學(xué) 智能無(wú)線通信湖北省實(shí)驗(yàn)室,武漢 430074)
隨著信息技術(shù)日益進(jìn)步,特別是隨著智能手機(jī)、平板電腦等可隨時(shí)隨地訪問(wèn)網(wǎng)絡(luò)的產(chǎn)品日益普及,并發(fā)訪問(wèn)流媒體應(yīng)用的用戶數(shù)越來(lái)越多,需要面對(duì)十萬(wàn)規(guī)模抑或是百萬(wàn)規(guī)模的大并發(fā)流媒體服務(wù)的挑戰(zhàn),傳統(tǒng)的服務(wù)技術(shù)在服務(wù)器I/O能力、帶寬、海量存儲(chǔ)、部署成本等方面都受到了前所未有的考驗(yàn).云計(jì)算技術(shù)是分布式計(jì)算、集群技術(shù)和虛擬化等技術(shù)的綜合發(fā)展,采用云計(jì)算技術(shù)實(shí)現(xiàn)流媒體服務(wù)將會(huì)受到越來(lái)越多的關(guān)注.
本文結(jié)合流媒體服務(wù)原理和云計(jì)算的資源虛擬化、彈性可擴(kuò)展等技術(shù)特征,首先提出了一種基于云計(jì)算技術(shù)的流媒體服務(wù)平臺(tái)體系結(jié)構(gòu),為了提高計(jì)算資源利用率以及減少服務(wù)拒絕率,提出了一種針對(duì)流媒體云服務(wù)平臺(tái)的自適應(yīng)負(fù)載均衡調(diào)整方法.
圖1給出了本文設(shè)計(jì)的體系架構(gòu)示意圖.服務(wù)體系分為三層:服務(wù)控制層,流媒體內(nèi)容輸出層,流媒體內(nèi)容存儲(chǔ)層.整個(gè)服務(wù)平臺(tái)共享一個(gè)IP地址,集群中只有控制服務(wù)器對(duì)客戶方可見(jiàn),平臺(tái)從用戶角度來(lái)看就像是一臺(tái)高性能的服務(wù)器.所有的服務(wù)請(qǐng)求首先到達(dá)控制服務(wù)器,由控制服務(wù)器將請(qǐng)求根據(jù)負(fù)載均衡的策略分發(fā)給云平臺(tái)內(nèi)的以虛擬機(jī)形式存在的流輸出服務(wù)器,本文提出的自適應(yīng)負(fù)載均衡算法在控制層服務(wù)器中實(shí)現(xiàn).采用云計(jì)算的分布式存儲(chǔ)技術(shù)實(shí)現(xiàn)流媒體內(nèi)容共享式存儲(chǔ)服務(wù),存放所有用戶需求的流媒體文件.
圖1 流媒體云服務(wù)平臺(tái)的體系架構(gòu)
相關(guān)文獻(xiàn)[1,2]表明,常用的負(fù)載調(diào)度算法有8種,它們分別是輪詢算法(RR)、加權(quán)輪詢算法(WRR)、最小連接算法(LC)、加權(quán)最小連接算法(WLC)、目的哈希算法(DH)、源哈希算法(SH)、基于位置的最小連接算法(LBLC)、帶復(fù)制的基于局部性最小連接算法(LBLCR).
上述算法中,后4種算法屬于動(dòng)態(tài)調(diào)度算法,一般用于Cache集群,不是本文研究的重點(diǎn).本文主要針對(duì)流媒體服務(wù)的網(wǎng)絡(luò)請(qǐng)求,進(jìn)行面向云計(jì)算平臺(tái)下的負(fù)載均衡算法研究,對(duì)前4種算法進(jìn)行分析比較,對(duì)比結(jié)果如表1所示.
表1 4種常見(jiàn)算法的比較
靜態(tài)分配算法簡(jiǎn)單,復(fù)雜度較低,但是在實(shí)際應(yīng)用中,由于后端服務(wù)器節(jié)點(diǎn)資源在任務(wù)運(yùn)行時(shí)是動(dòng)態(tài)變化的,不適合云資源平臺(tái)下的大規(guī)模并發(fā)訪問(wèn).所以,有必要采取一種機(jī)制,使得負(fù)載均衡器能夠了解集群系統(tǒng)中各個(gè)服務(wù)器節(jié)點(diǎn)的負(fù)載狀況,并能夠根據(jù)負(fù)載的變化作出調(diào)整.
在云計(jì)算平臺(tái)中,高可變的負(fù)載導(dǎo)致集群對(duì)資源需求不斷發(fā)生變化,固定資源模式下的集群管理難以滿足需求,基于資源自適應(yīng)的調(diào)整方法[3]更適合于云計(jì)算平臺(tái)下的資源調(diào)度.同時(shí),本文根據(jù)服務(wù)器資源的綜合負(fù)載和服務(wù)請(qǐng)求連接數(shù)作為該服務(wù)器的負(fù)載指標(biāo),提出了Least Comprehensive Load Value and Connection Scheduling(LCVC)算法.見(jiàn)圖2.
圖2 面向云資源的自適應(yīng)調(diào)整方法
首先,負(fù)載調(diào)度器上運(yùn)行的Monitor Daemon每隔一個(gè)時(shí)間周期收集服務(wù)器的負(fù)載信息(CPU、內(nèi)存、網(wǎng)絡(luò)帶寬的資源利用率)計(jì)算出一個(gè)綜合負(fù)載值[4].綜合負(fù)載值V的計(jì)算公式如下:
其中:cpuuti,memuti,netuti分別為服務(wù)器實(shí)例的CPU,內(nèi)存和網(wǎng)絡(luò)帶寬的利用率[2],V值越大,服務(wù)器負(fù)載越重.
對(duì)于空閑和阻塞狀態(tài),傳統(tǒng)基于經(jīng)驗(yàn)的判定方法可很好的工作,比如通過(guò)對(duì)服務(wù)器實(shí)例的指定度量(CPU、內(nèi)存、網(wǎng)絡(luò)帶寬的資源利用率)設(shè)置經(jīng)驗(yàn)閾值.在一個(gè)時(shí)間周期內(nèi),V<1.6即資源利用率均為15%時(shí),該實(shí)例處于空閑狀態(tài);V>200即資源利用率均為85%,該實(shí)例處于阻塞狀態(tài);1.6 由于集群各節(jié)點(diǎn)實(shí)例都可能處于不同狀態(tài),故將實(shí)例根據(jù)狀態(tài)劃分到各個(gè)負(fù)載均衡調(diào)度域,每個(gè)調(diào)度域使用特定的負(fù)載均衡算法.LVS是以連接為粒度基于IP的負(fù)載均衡集群架構(gòu),內(nèi)核管理軟件IPVS通過(guò)調(diào)度IP來(lái)管理服務(wù)器實(shí)例.當(dāng)服務(wù)器實(shí)例處于空閑狀態(tài)時(shí),實(shí)例的IP被寫(xiě)入RR算法腳本的調(diào)度隊(duì)列,實(shí)例進(jìn)入空閑調(diào)度域,IPVS對(duì)空閑調(diào)度域中的服務(wù)器實(shí)例采用RR調(diào)度算法;同樣的,當(dāng)處于阻塞狀態(tài)時(shí),阻塞實(shí)例的IP被剔除出調(diào)度隊(duì)列,同時(shí)云控制端啟動(dòng)新的服務(wù)器實(shí)例,新實(shí)例的IP隨啟動(dòng)直接寫(xiě)入LCVC算法腳本調(diào)度隊(duì)列,新實(shí)例進(jìn)入理想調(diào)度域,IPVS對(duì)理想調(diào)度域中的服務(wù)器實(shí)例采用LCVC調(diào)度算法. LCVC算法的基本原理可描述為:假設(shè)某集群內(nèi)有一組服務(wù)器S={S0,S1,…,Sn-1},C(Si)表示服務(wù)器Si的當(dāng)前連接數(shù),V(Si)表示服務(wù)器Si的綜合負(fù)載值.當(dāng)前的新連接請(qǐng)求會(huì)被送到服務(wù)器,當(dāng)且僅當(dāng)服務(wù)器滿足以下條件: C(Sm)×V(Sm)=min{C(Si)×V(Si)},0≤i≤n-1. 也就是說(shuō),新增的資源進(jìn)入理想調(diào)度域時(shí),綜合負(fù)載值和連接數(shù)都是最小的,在較短時(shí)間內(nèi)(遠(yuǎn)小于動(dòng)態(tài)檢測(cè)周期),網(wǎng)絡(luò)服務(wù)請(qǐng)求都會(huì)被調(diào)度到該服務(wù)器實(shí)例中,從而實(shí)現(xiàn)系統(tǒng)集群的自適應(yīng)調(diào)整動(dòng)態(tài)負(fù)載均衡. 測(cè)試環(huán)境使用了4臺(tái)聯(lián)想PC機(jī)(配置:雙核CPU,內(nèi)存2GB)和一臺(tái)惠普服務(wù)器(配置:4個(gè)雙核CPU,內(nèi)存16GB),100MB的校園內(nèi)網(wǎng)帶寬組成.實(shí)驗(yàn)環(huán)境選用CentOS 6.3操作系統(tǒng),Eucalyptus[5]開(kāi)源云計(jì)算平臺(tái),Xen[6]虛擬機(jī)以及VLC流媒體服務(wù)器,構(gòu)建了云服務(wù)流媒體平臺(tái),同時(shí)服務(wù)器的集成采用LVS負(fù)載均衡集群架構(gòu),集群采取Hadoop分布式結(jié)構(gòu)共享服務(wù)器資源,測(cè)試軟件為L(zhǎng)oadRunner. 測(cè)試中,客戶機(jī)端利用LoadRunner向負(fù)載均衡器分別發(fā)送并發(fā)連接數(shù)為100、200、300、400的并發(fā)請(qǐng)求,測(cè)試系統(tǒng)的相關(guān)特性[7].見(jiàn)表2. 表2 吞吐率與時(shí)延 表2分別記錄了負(fù)載均衡器中調(diào)度算法RR和LCVC時(shí)客戶端單位時(shí)間的吞吐率(每秒收到的字節(jié)數(shù))和時(shí)延(客戶端收到第一字節(jié)的時(shí)間),可以看出,當(dāng)連接數(shù)較小時(shí),兩個(gè)算法的吞吐率是一樣的,但LCVC算法的時(shí)延要大些.而當(dāng)連接數(shù)增加時(shí),LCVC算法的吞吐率大、時(shí)延要小,明顯優(yōu)于RR算法.這表明,在負(fù)載小時(shí),由于LCVC算法的復(fù)雜度高,所以時(shí)延相對(duì)稍大;當(dāng)負(fù)載增加,網(wǎng)絡(luò)流媒體服務(wù)大規(guī)模被點(diǎn)擊應(yīng)用時(shí),LCVC算法的優(yōu)勢(shì)逐漸顯現(xiàn)出來(lái). 本文設(shè)計(jì)了一個(gè)云計(jì)算分布式共享存儲(chǔ)的流媒體服務(wù)平臺(tái).為了適應(yīng)云資源系統(tǒng)彈性可擴(kuò)展特性和滿足系統(tǒng)集群的負(fù)載均衡要求,本文提出了最低綜合負(fù)載最小連接算法.新的算法克服了傳統(tǒng)負(fù)載算法由于任務(wù)規(guī)模不對(duì)稱和服務(wù)器資源不對(duì)稱這兩個(gè)方面的局限性,有效地實(shí)現(xiàn)了集群在大規(guī)模部署和彈性伸縮過(guò)程中的負(fù)載均衡. [1]章文嵩,金士堯.可伸縮網(wǎng)絡(luò)服務(wù)的研究與實(shí)現(xiàn)[J] .計(jì)算機(jī)工程與科學(xué),2001(3):36-40. [2]Zhang Wensong.LVS document[EB/OL].[2001-11-24].http://www.linuxvirtualserver.org/Documents.html. [3]周歡云,王 偉,張文博.面向云環(huán)境的自適應(yīng)集群調(diào)整方法[J] .計(jì)算機(jī)科學(xué)與探索,2011,5(4): 347-355. [4]鄭洪源,周 良,吳家祺.Web 服務(wù)器集群系統(tǒng)中負(fù)載平衡的設(shè)計(jì)與實(shí)現(xiàn)[J].南京航空航天大學(xué)學(xué)報(bào),2006,38(3):347-351. [5]Eucalyptus Systems Inc.Eucalyptus[EB/OL].[2012-12-02].http://www.eucalyptus.com/. [6]Barham P,Dragovic B,Fraser K.Xen and the art of virtualization[C]//ACM.ACM Symposium on Operating Systems Principles.New York:ACM Press,2003:164-177. [7]Giladi R.SPEC as a performance evaluation measure[J].Computer,1995,28(8): 33-42.4 系統(tǒng)測(cè)試與性能分析
5 結(jié)束語(yǔ)