周 源,馮文龍,黃夢醒
(海南大學(xué) 信息科學(xué)技術(shù)學(xué)院,海南 ???70100)
目前云計算安全研究主要集中在云資源安全,數(shù)據(jù)安全,和用戶接入控制等方面,而對云服務(wù)系統(tǒng)的主要構(gòu)件中間件的安全研究很少。中間件的可靠性是云服務(wù)系統(tǒng)安全運(yùn)行的前提。在云計算環(huán)境下,中間件的安全包括很多方面,而實(shí)現(xiàn)安全中間件的最基本最首要的條件就是要做到負(fù)載均衡。
目前,在云計算環(huán)境下的負(fù)載均衡機(jī)制大部分都是基于云資源的,這樣的負(fù)載均衡機(jī)制在一些架構(gòu)相對簡單的云服務(wù)系統(tǒng)確實(shí)能夠?qū)崿F(xiàn)很好的均衡效果,但是卻不適用于基于中間件的復(fù)雜的云服務(wù)系統(tǒng)。本文提出的云計算環(huán)境下基于中間件的負(fù)載均衡機(jī)制充分考慮了云服務(wù)系統(tǒng)的特點(diǎn),實(shí)現(xiàn)了更細(xì)粒度的負(fù)載均衡。
云服務(wù)系統(tǒng)的體系結(jié)構(gòu)如圖1所示。
圖1 云服務(wù)系統(tǒng)體系結(jié)構(gòu)
中間件是云服務(wù)系統(tǒng)的業(yè)務(wù)邏輯組件,處于數(shù)據(jù)層之上,為客戶端提供服務(wù)。在這里,云資源指在物理資源的基礎(chǔ)上,通過虛擬化技術(shù)得到的一系列虛擬資源。
本文基于圖1所示的云服務(wù)系統(tǒng)的體系結(jié)構(gòu),提出了一種中間件負(fù)載均衡機(jī)制。首先建立一種基于中間件的監(jiān)控模型,在監(jiān)控模型中監(jiān)控影響中間件負(fù)載的參數(shù),周期性獲取各個參數(shù)的值,并對各個參數(shù)的值進(jìn)行加權(quán)計算后及時將計算結(jié)果向?qū)?yīng)的中間件處理機(jī)反饋。其次,建立一種基于中間件的負(fù)載均衡結(jié)構(gòu)模型,并根據(jù)這個結(jié)構(gòu)模型使用適當(dāng)?shù)木馑惴?,?shí)現(xiàn)各個中間件的均衡,保障云服務(wù)系統(tǒng)的安全可靠。中間件負(fù)載均衡機(jī)制總體設(shè)計如圖2所示。
圖2 中間件負(fù)載均衡機(jī)制總體設(shè)計
云計算環(huán)境下基于中間件的負(fù)載均衡算法的實(shí)現(xiàn),首先要確定負(fù)載的定義,這里負(fù)載指用戶的服務(wù)請求,然后要確定影響負(fù)載的參數(shù),并建立一個監(jiān)控機(jī)制來獲取這些參數(shù)的值。為了準(zhǔn)確地描述中間件的負(fù)載,選擇虛擬服務(wù)器的CPU利用率、內(nèi)存利用率、網(wǎng)絡(luò)利用率和中間件的處理能力、連接利用率作為影響中間件負(fù)載的參數(shù):
(1)虛擬服務(wù)器是云服務(wù)系統(tǒng)架構(gòu)的基礎(chǔ)設(shè)施,所以云服務(wù)系統(tǒng)的性能必然與虛擬服務(wù)器的配置有關(guān)。因此選擇虛擬服務(wù)器的CPU利用率、內(nèi)存利用率、網(wǎng)絡(luò)利用率作為影響中間件負(fù)載的參數(shù)。
(2)由于部署云服務(wù)系統(tǒng)的中間件時,很可能采用不同的中間件技術(shù),比如部署一個web系統(tǒng)的中間件時,應(yīng)用服務(wù)器有的使用Jboss,有的使用Weblogic,這樣會使得中間件的處理能力存在很大差別。另外,即便是使用同樣的中間件技術(shù),比如一個web系統(tǒng)的中間件都是Weblogic,但是根據(jù)部署系統(tǒng)的實(shí)際需求購買的Weblogic的版本不同,這種情況下中間件的處理能力也是可能存在差異的。因此選擇中間件的處理能力作為影響中間件負(fù)載的參數(shù)。
(3)由于軟件本身的限制,中間件一般只能進(jìn)行一定數(shù)量的連接,因此就可能出現(xiàn)這樣的情況,虛擬服務(wù)器的CPU利用率、內(nèi)存利用率、網(wǎng)絡(luò)利用率還不高,但是中間件的連接已經(jīng)超負(fù)荷了,在這種情況下,中間件處理機(jī)是不能將用戶的服務(wù)請求轉(zhuǎn)發(fā)給這個中間件的。因此選擇中間件的連接利用率作為影響中間件負(fù)載的參數(shù)。
從提高系統(tǒng)性能、增加網(wǎng)絡(luò)吞吐量、縮短中間件平均響應(yīng)時間等方面考慮,云計算環(huán)境下基于中間件的監(jiān)控模型如圖3所示,主要分為:①中間件處理機(jī)的均衡算法模塊:主要通過一種均衡算法將各個中間件反饋過來的負(fù)載信息進(jìn)行處理,并根據(jù)該均衡算法轉(zhuǎn)發(fā)服務(wù)請求到各個中間件。②中間件處理機(jī)的監(jiān)控模塊:主要用來周期性檢測其管理的中間件的可用性。③中間件的負(fù)載收集模塊:主要用來周期性收集影響中間件負(fù)載的參數(shù)的值。④中間件的負(fù)載算法模塊:主要通過一種負(fù)載算法對收集來的參數(shù)的值進(jìn)行處理。⑤中間件的警報模塊:主要用來周期性檢測云資源和中間件中影響中間件負(fù)載的各個參數(shù)的使用狀況。
圖3 監(jiān)控模型
云計算環(huán)境下基于中間件的監(jiān)控模型的各個模塊協(xié)同工作的實(shí)現(xiàn):
(1)中間件通過自身的負(fù)載收集模塊,周期性地收集影響自身負(fù)載的參數(shù)的值,并且將收集到的參數(shù)的值交給自身的負(fù)載算法模塊進(jìn)行處理。負(fù)載算法模塊將根據(jù)一個負(fù)載算法處理數(shù)據(jù),并將處理結(jié)果通過網(wǎng)絡(luò)反饋給對應(yīng)的中間件處理機(jī)。
(2)中間件處理機(jī)在收到其管理的中間件反饋過來的負(fù)載信息之后,將負(fù)載信息交給自己的均衡算法模塊進(jìn)行處理。均衡算法模塊將根據(jù)一個均衡算法對負(fù)載信息進(jìn)行處理,并將處理結(jié)果保存。
當(dāng)中間件處理機(jī)收到服務(wù)請求之后,就交給均衡算法模塊。均衡算法模塊查找負(fù)載信息處理結(jié)果,并根據(jù)均衡算法,將服務(wù)請求轉(zhuǎn)發(fā)到合適的中間件處理。
(3)根據(jù)各個影響中間件負(fù)載的參數(shù)對中間件性能影響大小,可以設(shè)置不同的閾值。
中間件的警報模塊周期性地對云資源和中間件中影響中間件負(fù)載的參數(shù)進(jìn)行檢測。當(dāng)某個參數(shù)的值在n次檢測中都超過了設(shè)定的閾值,中間件的警報模塊就告訴對應(yīng)的中間件處理機(jī),讓該中間件處理機(jī)禁止再把服務(wù)請求轉(zhuǎn)發(fā)過來。
除了對影響中間件負(fù)載的參數(shù)設(shè)定閾值,其實(shí)還有些參數(shù)也需要設(shè)置閾值,比如中間件的平均響應(yīng)時間等。
(4)中間件處理機(jī)的監(jiān)控模塊周期性地向其管理的中間件發(fā)送詢問信息,如果在規(guī)定的時間內(nèi)收到中間件的確認(rèn)信息,表明這個中間件狀況良好且這個中間件與中間件處理器之間的網(wǎng)絡(luò)連接是正常的;如果中間件處理機(jī)未收到確認(rèn)信息或者收到超時的確認(rèn)信息,將再向該中間件發(fā)出詢問信息。假如反復(fù)m次詢問都沒收到確認(rèn)信息或者只收到超時的確認(rèn)信息,則判斷中間件或網(wǎng)絡(luò)連接出現(xiàn)故障。出現(xiàn)故障之后中間件處理機(jī)就把這個中間件設(shè)為不可用,以后的服務(wù)請求就不再轉(zhuǎn)發(fā)到這個中間件。
中間件的負(fù)載狀況由虛擬服務(wù)器的CPU利用率C、內(nèi)存利用率M,網(wǎng)絡(luò)利用率N和中間件的處理能力Ability、連接利用率L決定。綜合考慮這些影響中間件負(fù)載的參數(shù),并考慮各個參數(shù)對中間件負(fù)載影響作用的大小,對中間件的負(fù)載算法進(jìn)行設(shè)計:
(1)部署中間件的時候,由于使用的中間件技術(shù)可能不同,或者是同樣的中間件技術(shù),使用不同的版本,因此會導(dǎo)致各個中間件的處理能力的不同。所以,首先對各個中間件的處理能力進(jìn)行評估,并設(shè)置權(quán)值A(chǔ)bility,處理能力越強(qiáng),Ability的值就設(shè)置的越大。Ablility的值需要通過反復(fù)測試進(jìn)行調(diào)整,對于同一個中間件在不同的系統(tǒng)環(huán)境中,Ablility的值可能有所不同。
(2)中間件上的連接分為靜態(tài)連接與動態(tài)連接,靜態(tài)連接指放在連接池中處于監(jiān)聽狀態(tài)的連接;動態(tài)連接指已經(jīng)處于接收或發(fā)送數(shù)據(jù)的連接。因?yàn)橹虚g件處理動態(tài)連接與處理靜態(tài)連接所消耗的系統(tǒng)資源不一樣,因此中間件的連接數(shù)需要通過靜態(tài)連接數(shù)與動態(tài)連接數(shù)進(jìn)行加權(quán)計算。如下所示
式中:Link——加權(quán)計算后的中間件連接數(shù),dynamicLink——動態(tài)連接數(shù),staticLink——靜態(tài)連接數(shù)。k——權(quán)重系數(shù),顯然動態(tài)連接所消耗的系統(tǒng)資源要比靜態(tài)連接要多,因此k>1,通過實(shí)驗(yàn)得到,對于不同的系統(tǒng)環(huán)境,k可能有所不同。
根據(jù)所使用的中間件的性能,可以得出各個中間件的最大連接能力,用中間件的最大連接數(shù)來表示,這個連接數(shù)是指靜態(tài)連接數(shù)。通過式1,將中間件已經(jīng)使用的靜態(tài)連接數(shù)和動態(tài)連接數(shù),統(tǒng)一歸化為以靜態(tài)連接數(shù)為基本單位的連接數(shù),則中間件的連接利用率L
TotalLink為中間件最大連接數(shù),Link由式 (1)得到,為中間件已經(jīng)使用的連接數(shù)。
其中,Load反應(yīng)中間件負(fù)載的狀況,值越大,負(fù)載越重。α、β、γ、δ、ε表示各種因素對中間件負(fù)載狀況的影響程度,值越大,影響越大,且α+β+γ+δ+ε=1。
云計算環(huán)境下基于中間件的負(fù)載均衡模型有分布式模型和集中式模型兩種。
在云服務(wù)系統(tǒng)中,如果使用集中式負(fù)載均衡模型,則客戶端的所有服務(wù)請求都通過一臺中間件處理機(jī)處理,那么這臺中間件處理機(jī)必然會成為云服務(wù)系統(tǒng)的瓶頸。而采用分布式負(fù)載均衡模型,使用多臺中間件處理機(jī)并行處理客戶端的服務(wù)請求,分?jǐn)偡?wù)請求量,就能很好的解決這個問題。因此,本文采用的云計算環(huán)境下基于中間件的負(fù)載均衡模型使用分布式模型結(jié)構(gòu),如圖4所示。所有中間件處理機(jī)通過網(wǎng)絡(luò)連接起來,使它們可以實(shí)現(xiàn)同步和數(shù)據(jù)交換。每個中間件處理機(jī)管理著數(shù)個中間件,中間件處理機(jī)與這些中間件通過網(wǎng)絡(luò)相連。
圖4 負(fù)載均衡模型
在圖4所示的云計算環(huán)境下基于中間件的負(fù)載均衡模型中,客戶端訪問云服務(wù)系統(tǒng)的流程:
(1)客戶端向云服務(wù)系統(tǒng)發(fā)起服務(wù)請求。
(2)云服務(wù)系統(tǒng)根據(jù)一定的策略,將客戶端發(fā)起的服務(wù)請求轉(zhuǎn)發(fā)給某個中間件處理機(jī)。比如基于DNS,在所有中間件處理機(jī)中選擇與用戶在地理上最接近的中間件處理機(jī)。
(3)中間件處理機(jī)收到請求后,通過均衡算法,將服務(wù)請求轉(zhuǎn)發(fā)給合適的中間件進(jìn)行處理。
建筑精裝修施工技術(shù)人員作為建筑精裝修工程建設(shè)當(dāng)中首要因素,他們奮戰(zhàn)在施工前線,貫穿精裝修工程建設(shè)各施工環(huán)節(jié),對于建筑精裝修工程總體質(zhì)量有著決定性因素,由此可見精裝修施工隊伍總體素質(zhì)是多么的重要。為此,建筑企業(yè)應(yīng)當(dāng)高度重視精裝修施工隊伍建設(shè)工作,加強(qiáng)施工隊伍專業(yè)技能以及安全責(zé)任意識等方面培訓(xùn)工作,使得施工人員具有更高的專業(yè)技能以及安全責(zé)任意識。通過相關(guān)培訓(xùn)以及教育活動,使得從業(yè)人員能夠恪守施工管理制度,有效避免違規(guī)施工作業(yè),保障精裝修項(xiàng)目順利進(jìn)行。
(4)中間件將服務(wù)請求處理之后,應(yīng)該將處理結(jié)果反饋給客戶端。此時,為了減輕中間件處理機(jī)的負(fù)擔(dān),避免中間件處理機(jī)成為系統(tǒng)的瓶頸,中間件應(yīng)該將處理結(jié)果直接反饋給客戶端,而不要再通過中間件處理機(jī)來轉(zhuǎn)發(fā)。
云服務(wù)系統(tǒng)各個中間件均衡的實(shí)現(xiàn),核心就是均衡算法的實(shí)現(xiàn)。均衡算法的主要作用是將來自客戶端的服務(wù)請求比較合理地分?jǐn)偟礁鱾€中間件,使得各個中間件能夠均衡地承擔(dān)這些服務(wù)請求,從而實(shí)現(xiàn)整個云服務(wù)系統(tǒng)的均衡性。
常用的均衡算法包括輪轉(zhuǎn)法、加權(quán)輪轉(zhuǎn)法、最小負(fù)載優(yōu)先法、加權(quán)最小負(fù)載優(yōu)先法等。本文采用最小負(fù)載優(yōu)先法:各個中間件周期性地將其Load值反饋給對應(yīng)的中間件處理機(jī),這個中間件處理機(jī)在收到這些Load值之后,根據(jù)Load值的大小排序,Load值越大表示負(fù)載越重。中間件處理機(jī)每次收到客戶端的請求之后,都將請求轉(zhuǎn)發(fā)給Load值最小的中間件。
為了驗(yàn)證本文設(shè)計的云計算環(huán)境下中間件的負(fù)載均衡機(jī)制的效果,根據(jù)圖4所示,搭建一個Web服務(wù)平臺作為仿真實(shí)驗(yàn)平臺,進(jìn)行一個簡單的仿真實(shí)驗(yàn)。平臺描述:
(1)服務(wù)器集群由兩臺PC機(jī)組成,分別為PC機(jī)a和PC機(jī)b,兩臺PC機(jī)在配置上有區(qū)別,主要參數(shù)對比見表1。
(2)中間件處理機(jī)由一臺PC機(jī)實(shí)現(xiàn)。
(3)在PC機(jī)a,b上分別布置一個中間件,為中間件a和中間件b,提供web服務(wù)。采用的中間件技術(shù)是Sun的J2EE標(biāo)準(zhǔn),使用的具體技術(shù)為EJB,JSP等,EJB容器均為Jboss。
表1 實(shí)驗(yàn)PC機(jī)配置對比
在仿真實(shí)驗(yàn)平臺中,通過比較傳統(tǒng)的基于云資源的,只考慮虛擬服務(wù)器CPU、內(nèi)存、網(wǎng)絡(luò)等參數(shù)的負(fù)載均衡機(jī)制與本文設(shè)計的負(fù)載均衡機(jī)制的均衡效果,來驗(yàn)證本文設(shè)計的負(fù)載均衡機(jī)制的性能。測試采用的評價指標(biāo)為中間件的平均響應(yīng)時間。每種算法取9個測試點(diǎn),每個點(diǎn)測試10次,取平均值作為測試結(jié)果。測試中,中間件收集負(fù)載的周期為20s,中間件對云資源和中間件中影響中間件負(fù)載的參數(shù)進(jìn)行檢測的周期為10s,n的取值為3,中間件處理機(jī)監(jiān)控中間件可用性的周期為10s,m的取值為3,式 (1),式 (3)中的權(quán)重系數(shù)k,α、β、γ、δ、ε的取值見表2,各個參數(shù)所設(shè)定的閾值見表3。
表2 各個權(quán)重系數(shù)的實(shí)驗(yàn)取值
表3 各個參數(shù)的閾值設(shè)定
經(jīng)過實(shí)驗(yàn)仿真,中間件a的平均響應(yīng)時間測試結(jié)果如圖5所示,中間件b的平均響應(yīng)時間測試結(jié)果如圖6所示。
圖5 中間件a平均響應(yīng)時間對比
圖6 中間件b平均響應(yīng)時間對比
圖5、圖6分析結(jié)果表明,當(dāng)服務(wù)請求數(shù)比較少的時候,傳統(tǒng)基于云資源的負(fù)載均衡機(jī)制與本文設(shè)計的基于中間件的負(fù)載均衡機(jī)制的均衡效果相差不大。但是隨著服務(wù)請求數(shù)的增加,基于中間件的負(fù)載均衡機(jī)制的均衡效果明顯優(yōu)于傳統(tǒng)基于云資源的負(fù)載均衡機(jī)制的均衡效果。
本文針對云服務(wù)系統(tǒng)的特點(diǎn),結(jié)合中間件處理異構(gòu)系統(tǒng)的優(yōu)勢,提出了一種在云計算環(huán)境下基于中間件的負(fù)載均衡機(jī)制。該負(fù)載均衡機(jī)制在傳統(tǒng)基于云資源的負(fù)載均衡機(jī)制的基礎(chǔ)上,充分考慮了中間件對云服務(wù)系統(tǒng)的安全可靠性的影響,提出了基于中間件的監(jiān)控模型和負(fù)載均衡算法,保證了中間件的可靠運(yùn)行,從而在一定程度上解決傳統(tǒng)負(fù)載均衡機(jī)制的局限性,提高云服務(wù)系統(tǒng)的負(fù)載均衡效果。從仿真實(shí)驗(yàn)結(jié)果和性能分析可以看出,該負(fù)載均衡機(jī)制效果良好,實(shí)現(xiàn)了負(fù)載均衡,并且能夠有效縮短處理用戶請求的中間件的平均響應(yīng)時間,具有良好的可用性。
[1]Armbrust M,F(xiàn)ox A,Griffith R,et al.A view of cloud computing [J].Communications of the ACM,2010,53 (4):50-58.
[2]WU Quanyuan.Network computing middleware [J].Journal of software,2013,24 (1):67-76 (in Chinese).[吳泉源.網(wǎng)絡(luò)計算中間件 [J].軟件學(xué)報,2013,24 (1):67-76.]
[3]Blair G S,Coulson G,Robin P,et al.An architecture for next generation middleware [C]//Proceedings of the IFIP International Conference on Distributed Systems Platforms and Open Distributed Processing,2009:191-206.
[4]TIAN Wenhong,ZHAO Yong.Cloud computing:Resource scheduling management [M].Beijing:National Defense Industry Press,2011:81-91 (in Chinese).[田文洪,趙勇.云計算:資源調(diào)度管理 [M].北京:國防工業(yè)出版社,2011:81-91.]
[5]GE Junwei,ZHANG Bo,F(xiàn)ANG Yiqiu.Study on resource monitoring model in cloud computing environment [J].Computer Engineering,2011,37 (11):31-33 (in Chinese).[葛君偉,張博,方義秋.云計算環(huán)境下的資源監(jiān)測模型研究 [J].計算機(jī)工程,2011,37 (11):31-33.]
[6]Radojevic B,Zagar M.Analysis of issues with load balancing algorithms in hosted(cloud)environments [C]//Proceedings of the 34th International Convention.IEEE,2011:416-420.
[7]LI Yuanhong.Design and implementation of dynamic load balancing based on feedback scheduling algorithm in heterogeneous environment of Hadoop [D].Nanjing:Nanjing University of Science and Technology,2012:24-36 (in Chinese).[李元洪.基于反饋的動態(tài)負(fù)載平衡調(diào)度算法在Hadoop異構(gòu)環(huán)境中的設(shè)計與實(shí)現(xiàn) [D].南京:南京理工大學(xué),2012:24-36.]
[8]Wood T,Shenoy P,Venkataramani A,et al.Black-box and gray-box strategies for virtual machine migration [C]//Proceedings of the 4th USENIX conference on Networked systems design &implementation,2007.
[9]Tian W,Zhao Y,Zhong Y,et al.A dynamic and integrated load-balancing scheduling algorithm for cloud datacenters[C]//IEEE International Conference on Cloud Computing and Intelligence Systems,2011:311-315.
[10]WANG Jun,ZHENG Di,WU Quanyuan.Resear ch of high scalable distributed load balancing middleware technologies[J].Computer Engineering,2008,34 (5):39-41 (in Chinese).[王俊,鄭笛,吳泉源.分布式高可擴(kuò)展負(fù)載平衡中間件技術(shù)研究 [J].計算機(jī)工程,2008,34 (5):39-41.]
[11]ZHAO Chunyan.Research and implementation of job seheduling algorithm in cloud computing [D].Beijing:Beijing Jiaotong University,2009:32-51 (in Chinese).[趙春燕.云環(huán)境下作業(yè)調(diào)度算法研究與實(shí)現(xiàn) [D].北京:北京交通大學(xué),2009:32-51.]
[12]FENG Xiuling.Research and design the load balancing algorithm in cloud computing [D].Beijing:Beijing University of Posts and Telecommunications,2012:6-24 (in Chinese).[馮秀玲.云計算環(huán)境下的負(fù)載均衡算法的研究與設(shè)計 [D].北京:北京郵電大學(xué),2012:6-24.]
[13] MA Hui,TAO Shaohua.Load balance middleware model based on service type [J].Computer Engineering,2010,36(12):277-278 (in Chinese).[馬慧,陶少華.基于服務(wù)類型的負(fù)載平衡中間件模型 [J].計算機(jī)工程,2010,36(12):277-278.]