丁 順,陳世平
?
云計(jì)算中基于包簇映射的多目標(biāo)蟻群資源分配算法
丁 順1,陳世平2
(1. 上海理工大學(xué)光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093;2. 上海理工大學(xué)信息化辦公室,上海 200093)
云計(jì)算環(huán)境中,虛擬機(jī)放置就是將虛擬機(jī)映射到物理機(jī)的過(guò)程,一個(gè)最優(yōu)的放置策略對(duì)于提高計(jì)算效率和資源利用率是非常重要的。本文中將云計(jì)算環(huán)境下虛擬機(jī)放置問(wèn)題作為多目標(biāo)組合優(yōu)化問(wèn)題進(jìn)行闡述,提出一種多目標(biāo)蟻群優(yōu)化方法,同時(shí)優(yōu)化運(yùn)營(yíng)成本和資源浪費(fèi),并將其應(yīng)用到包簇拓?fù)浣Y(jié)構(gòu)中,目標(biāo)是有效地獲得一組非支配解,同時(shí)最大限度地減少總資源浪費(fèi)和營(yíng)運(yùn)成本。實(shí)驗(yàn)將該算法與現(xiàn)有的多目標(biāo)遺傳算法(MGA)和三種單目標(biāo)算法進(jìn)行比較。結(jié)果表明,本文所提出的算法比其它算法可以達(dá)到更優(yōu)的效果,實(shí)現(xiàn)兩個(gè)目標(biāo)的折衷。
云計(jì)算;多目標(biāo)優(yōu)化;支配解;蟻群算法
近年來(lái),云計(jì)算逐漸成為一個(gè)流行的商業(yè)計(jì)算模型,它可以通過(guò)互聯(lián)網(wǎng)來(lái)托管和交付服務(wù)[1]。云計(jì)算主要有三種類(lèi)型:基礎(chǔ)設(shè)施即服務(wù)(IaaS)、平臺(tái)即服務(wù)(PaaS)和軟件即服務(wù)(SaaS)。云計(jì)算平臺(tái)的使用和部署有許多優(yōu)點(diǎn),例如可靠性、服務(wù)質(zhì)量和健壯性[2]。對(duì)于消費(fèi)者來(lái)說(shuō),云似乎是無(wú)限的,而且消費(fèi)者可以購(gòu)買(mǎi)到滿足他們需求的計(jì)算力并且響應(yīng)時(shí)間快。從提供者的角度來(lái)看,關(guān)鍵問(wèn)題是通過(guò)最小化運(yùn)營(yíng)成本來(lái)最大化利潤(rùn),在這個(gè)方面,云數(shù)據(jù)中心的電力管理就變得至關(guān)重要了,因?yàn)樗绊懥诉\(yùn)營(yíng)成本。此外,大規(guī)模計(jì)算機(jī)系統(tǒng)的能耗還引發(fā)了許多其它嚴(yán)峻的問(wèn)題,包括二氧化碳和系統(tǒng)的可靠性。云計(jì)算的出現(xiàn)在過(guò)去的幾年里對(duì)信息技術(shù)行業(yè)產(chǎn)生了巨大的影響,像亞馬遜、谷歌、IBM、微軟以及Oracle等大公司已經(jīng)開(kāi)始在世界各地建立新的托管云數(shù)據(jù)中心來(lái)提供冗余度以及確保在應(yīng)用出錯(cuò)的情況下的可靠性。
云計(jì)算中的資源分配就是虛擬機(jī)映射到物理機(jī)的過(guò)程,目前大多數(shù)關(guān)于虛擬機(jī)放置的研究都集中在一個(gè)標(biāo)準(zhǔn)上,然而許多現(xiàn)實(shí)問(wèn)題需要考慮多個(gè)標(biāo)準(zhǔn)?;谶@個(gè)原因,最近的研究?jī)A向于關(guān)注多目標(biāo)的情況。因此,在本文中將云計(jì)算環(huán)境下虛擬機(jī)放置問(wèn)題作為多目標(biāo)組合優(yōu)化問(wèn)題進(jìn)行闡述,提出一種多目標(biāo)蟻群優(yōu)化方法,同時(shí)優(yōu)化運(yùn)營(yíng)成本和資源浪費(fèi),并將其應(yīng)用到包簇拓?fù)浣Y(jié)構(gòu)中[3],旨在為大規(guī)模數(shù)據(jù)中心處理提供一種有效的解決方案。通過(guò)實(shí)驗(yàn)對(duì)該算法的性能與多目標(biāo)遺傳算法(MGA)和三種單目標(biāo)算法的性能進(jìn)行了比較,結(jié)果表明該算法比其它算法有更好的效果。
目前關(guān)于云計(jì)算資源調(diào)度的研究主要有:以提高資源利用率為目標(biāo)的資源分配策略、以降低數(shù)據(jù)中心能耗為目標(biāo)的資源分配策略以及基于經(jīng)濟(jì)學(xué)模型的資源調(diào)度。文獻(xiàn)[4]通過(guò)監(jiān)控虛擬機(jī)的狀態(tài),當(dāng)虛擬機(jī)負(fù)載減少時(shí)降低處理器的速度來(lái)降低能耗。但提出的策略并沒(méi)有建立能耗減少和應(yīng)用性能的關(guān)系,降低能耗后可能會(huì)對(duì)應(yīng)用性能造成不良的影響。文獻(xiàn)[5]提出兩級(jí)調(diào)度器:元調(diào)度器和虛擬機(jī)調(diào)度器,通過(guò)擴(kuò)展Cloudsim類(lèi)庫(kù)實(shí)現(xiàn)啟發(fā)式調(diào)度算法來(lái)提高云計(jì)算系統(tǒng)的資源利用率。文獻(xiàn)[6]設(shè)計(jì)一個(gè)基于遺傳基因的價(jià)格調(diào)節(jié)算法來(lái)處理市場(chǎng)的供需平衡,但該方法目前只考慮CPU資源,而對(duì)內(nèi)存以及帶寬等資源并沒(méi)有涉及。文獻(xiàn)[7]提出了云計(jì)算中虛擬機(jī)放置的自適應(yīng)管理框架,提出了帶應(yīng)用服務(wù)級(jí)目標(biāo)約束的虛擬機(jī)放置多目標(biāo)優(yōu)化遺傳算法,用于制定框架中的虛擬機(jī)放置策略,但是沒(méi)有考慮能耗問(wèn)題,沒(méi)有將資源控制和能耗控制結(jié)合起來(lái)。
目前云計(jì)算中虛擬機(jī)放置研究工作雖然取得一定的效果,但是還是存在一些問(wèn)題。第一,大多數(shù)關(guān)于虛擬機(jī)放置的研究都集中在一個(gè)標(biāo)準(zhǔn)上,這樣得到的最優(yōu)放置也只是某一定條件的最優(yōu)解,無(wú)法進(jìn)行各準(zhǔn)則下最優(yōu)放置的相互比較,然而由于云計(jì)算環(huán)境的復(fù)雜性,單從一個(gè)方面的改進(jìn)并不能很好的滿足云資源調(diào)度的要求,許多現(xiàn)實(shí)問(wèn)題需要考慮多個(gè)標(biāo)準(zhǔn)并進(jìn)行權(quán)衡和折衷。第二,目前大多數(shù)調(diào)度算法的計(jì)算量很大并且缺少普遍性,從而造成用戶的等待時(shí)間太長(zhǎng),用戶滿意度低。本文通過(guò)對(duì)營(yíng)運(yùn)成本和資源浪費(fèi)兩個(gè)目標(biāo)的優(yōu)化,將提出的多目標(biāo)蟻群算法應(yīng)用到包簇的拓?fù)浣Y(jié)構(gòu)中并且取得很好的效果。
多目標(biāo)進(jìn)化算法(MOEAs)是一種隨機(jī)優(yōu)化方法,通常是使用基于群體的方法去找到Pareto最優(yōu)解[8]。大多數(shù)現(xiàn)有的MOEAs在選擇的時(shí)候使用的是支配的概念,因此,我們只關(guān)注基于支配的MOEAs這一類(lèi)問(wèn)題?!爸洹备拍畹亩x如下,在不失一般性的情況下,用m個(gè)決策變量參數(shù)和n個(gè)目標(biāo)函數(shù)來(lái)描述多目標(biāo)最小化問(wèn)題。
所有沒(méi)被其它點(diǎn)支配的點(diǎn)都成為非支配點(diǎn),通常情況下,在解空間中非支配點(diǎn)聚集在一起構(gòu)成了一個(gè)面,并且它們經(jīng)常被認(rèn)為是代表一個(gè)非支配面。根據(jù)定義,在目標(biāo)空間中,非支配面上的點(diǎn)不會(huì)被其它點(diǎn)所代替。因此它們是Pareto最優(yōu)點(diǎn)(它們組成了Pareto最優(yōu)面),相應(yīng)的變量向量被稱為Pareto最優(yōu)解。
上面的概念還可以通過(guò)擴(kuò)展去找到一個(gè)非支配解集。讓我們假設(shè)一個(gè)解集中有N個(gè)解,每個(gè)解都有M個(gè)目標(biāo)函數(shù)值,在我們接下來(lái)的工作中,使用以下步驟來(lái)找到非支配解集[11]。
1)初始化i=1
4)如果解集中的解遍歷完,進(jìn)入到步驟5,否則i加1,進(jìn)入步驟2
5)所有未標(biāo)記為支配解的都是非支配解
云計(jì)算數(shù)據(jù)中心傳統(tǒng)資源管理方法以虛擬機(jī)為中心(VM-Centric)來(lái)設(shè)計(jì)資源分配模型,使用扁平、細(xì)顆粒度的資源分配方式。而這種細(xì)粒度的管理模型會(huì)導(dǎo)致所要解決的計(jì)算問(wèn)題規(guī)模巨大,對(duì)虛擬機(jī)固定的資源分配也不利于資源共享。
為了突破這些限制,文獻(xiàn)[3]提出一種包簇資源分配框架,通過(guò)分層的抽象模型來(lái)降解問(wèn)題的規(guī)模。其中“包”為虛擬機(jī)或其他包的集合。這是個(gè)遞歸定義,一個(gè)大包可以是許多小包的集合,而這些小包可能是虛擬機(jī)的集合,也可能是更小包的集合。一個(gè)資源共享的虛擬機(jī)組合被模塊化為需求包,而多個(gè)包又進(jìn)一步被抽象稱一個(gè)更高級(jí)別的包,進(jìn)而由虛擬機(jī)與包構(gòu)成一個(gè)層次化組織構(gòu)架?!按亍睘閿?shù)據(jù)中心拓?fù)渲形恢孟嘟姆?wù)器或更低級(jí)別的簇的集合,簇所擁有的資源是其組成部分的資源之和。用包和簇來(lái)將虛擬機(jī)-服務(wù)器映射問(wèn)題轉(zhuǎn)換成一系列小得多的包-簇映射問(wèn)題。
在云計(jì)算資源調(diào)度的過(guò)程中,與其它物理資源相比,主要的能源消耗是CPU和內(nèi)存,因此在本文中,在提出的包簇映射算法中我們只關(guān)注CPU和內(nèi)存這兩種資源,并且如果需要,該算法也可以通過(guò)擴(kuò)展去支持其它資源優(yōu)化。由于每個(gè)簇(服務(wù)器)上的剩余資源可能會(huì)因?yàn)椴煌陌赜成洳呗远煌?。因此,為了充分利用多維資源,下面的公式用于計(jì)算調(diào)度過(guò)程中資源浪費(fèi)的潛在成本。
其中約束如下:
蟻群優(yōu)化算法是一個(gè)用于解決組合優(yōu)化的分布式算法。該算法通過(guò)模擬螞蟻的覓食過(guò)程完成調(diào)度。首先,螞蟻隨機(jī)選擇一條路徑,當(dāng)這個(gè)螞蟻達(dá)到預(yù)期目標(biāo)時(shí),它們計(jì)算這條路徑的適應(yīng)度,螞蟻根據(jù)適應(yīng)度在路徑上設(shè)置信息素。最后,為了將螞蟻集中到高適應(yīng)度的路徑上,并盡可能快的找到最優(yōu)解,需要進(jìn)行信息素更新和行為選擇。
當(dāng)一個(gè)螞蟻經(jīng)過(guò)所有的簇后就形成了一條路徑,這條路徑就是問(wèn)題的可行解。為了確保解的質(zhì)量,避免陷入局部最優(yōu)狀態(tài),而是盡可能保證或得到的解釋全局最優(yōu)解,因此使用一個(gè)適應(yīng)度函數(shù)來(lái)評(píng)價(jià)解的優(yōu)劣性。在優(yōu)化模型問(wèn)題的基礎(chǔ)上,需要對(duì)適應(yīng)度函數(shù)進(jìn)行定義。根據(jù)文中的調(diào)度優(yōu)化模型,其中給出了兩個(gè)調(diào)度目標(biāo)并將成本最小化。因此公式8的適應(yīng)度函數(shù)也就是評(píng)價(jià)函數(shù)。
如果路徑的適應(yīng)性很高,那么此路徑的信息素就應(yīng)該加強(qiáng),從而讓更多的螞蟻找到這條路徑。因此,有必要更新路徑上每個(gè)點(diǎn)的信息素,更新規(guī)則如公式:
其中Q是一個(gè)常數(shù),它的值被取為100。F(x)和B(x)的值越小,信息素的增量就越大。好的解會(huì)被信息素的更新而,同時(shí)差的解也會(huì)被信息素的更新而減弱。經(jīng)過(guò)幾次迭代后,越來(lái)越多的螞蟻將趨向于最佳路徑。信息素蒸發(fā)因子是用來(lái)防止獲得到解只能達(dá)到局部最優(yōu)。
1)初始化包簇信息素、迭代系數(shù)、確定各個(gè)子目標(biāo)函數(shù)權(quán)重。
2)螞蟻開(kāi)始循環(huán),k++
3)隨機(jī)散布若干只螞蟻并建立搜索空間
4)計(jì)算每只螞蟻移動(dòng)到下一個(gè)節(jié)點(diǎn)的概率,螞蟻根據(jù)計(jì)算結(jié)果移動(dòng)到相應(yīng)的節(jié)點(diǎn)上
5)當(dāng)螞蟻移動(dòng)到新節(jié)點(diǎn)后,更新其經(jīng)過(guò)路徑的信息素,并對(duì)禁忌表進(jìn)行相應(yīng)的修改
6)重復(fù)執(zhí)行3)~5),直到整個(gè)蟻群中的每個(gè)個(gè)體均找到一個(gè)可行路徑為止
7)根據(jù)云計(jì)算資源調(diào)度問(wèn)題的目標(biāo)函數(shù)對(duì)所有可行路徑進(jìn)行評(píng)價(jià),并選擇當(dāng)前最優(yōu)路徑
8)對(duì)所有路徑上的信息素進(jìn)行全局更新操作
9)迭代次數(shù)增加,如果迭代次數(shù)達(dá)到最大迭代次數(shù),則停止搜索,得到云計(jì)算資源調(diào)度問(wèn)題的最優(yōu)解
為了驗(yàn)證本文所設(shè)計(jì)的蟻群優(yōu)化算法的可行和有效性,本文采用 Cloudsim[12]平臺(tái)來(lái)進(jìn)行仿真,我們模擬了一個(gè)數(shù)據(jù)中心,它里面具有不同數(shù)量的異構(gòu)服務(wù)器,每個(gè)服務(wù)器的處理器:1000、2000、3000 MIPS,內(nèi)存:1T,RAM:8 GB。每個(gè)虛擬機(jī)對(duì)資源的要求為內(nèi)存:1 GB,RAM:128 GB,CPU:250、500、750或1000 MIPS。在基于包簇的框架下,我們先對(duì)虛擬機(jī)逐層劃分包結(jié)構(gòu),直到底層的虛擬機(jī);同樣的,也對(duì)服務(wù)器劃分簇機(jī)構(gòu)。我們用不同的參數(shù)對(duì)相同的輸入進(jìn)行多次測(cè)試,從而找到問(wèn)題的最優(yōu)參數(shù)。我們將α,β,ρ,迭代次數(shù),螞蟻個(gè)數(shù)分別設(shè)置為1,2,0.5,10,5。遺傳算法的迭代次數(shù)也設(shè)置為10,種群的規(guī)模為200,Pareto分?jǐn)?shù)為0.7,遷移時(shí)間間隔為20,遷移率為0.2。
我們使用降序首次適應(yīng)算法(FFD)、動(dòng)態(tài)電壓調(diào)整(DVFS)、邏輯回歸(LR)、蟻群算法(ACO)和遺傳算法(GA)這五種算法分別測(cè)量了包簇映射的營(yíng)運(yùn)成本和資源浪費(fèi)量。FFD算法是一種單目標(biāo)算法,在該算法中,虛擬機(jī)根據(jù)請(qǐng)求的利用率進(jìn)行排序,并將其放入到第一個(gè)具有足夠資源的物理機(jī)中。DVFS是一種電功率管理技術(shù),它通過(guò)切割設(shè)備的頻率來(lái)最小化設(shè)備的能耗。從而使設(shè)備的性能保持穩(wěn)定。在Cloudsim中,DVFS被用在一個(gè)功率感知數(shù)據(jù)中心,其中虛擬機(jī)被分配給第一個(gè)具有足夠資源的服務(wù)器。LR方法通過(guò)對(duì)數(shù)據(jù)子集進(jìn)行回歸擬合來(lái)建立一個(gè)評(píng)估原始數(shù)據(jù)的曲線。為了通過(guò)另一種方法來(lái)評(píng)估我們的ACO多目標(biāo)方法,我們?cè)诰哂邢嗤繕?biāo)函數(shù)的Matlab Optimization工具箱中使用了GA。模擬結(jié)果的數(shù)值如表2所示,在這個(gè)表中,我們使用了不同數(shù)量的簇,多個(gè)包以及不同數(shù)量的任務(wù)。在運(yùn)營(yíng)成本、資源浪費(fèi)率等方面,使用不同的虛擬機(jī)放置算法進(jìn)行比較。
表1 基于包簇映射結(jié)果的比較
Tab.1 Comparison of results based on package cluster mapping
圖1表示的是不同的算法在運(yùn)營(yíng)成本上的比較。由結(jié)果可知,F(xiàn)FD算法產(chǎn)生的成本最大,原因是虛擬機(jī)映射到第一個(gè)可用的服務(wù)器的排序機(jī)制沒(méi)有考慮到其它服務(wù)器中可用的資源。圖2中表示的是不同的算法在資源浪費(fèi)上的比較。MACO算法嘗試使用所有可用的簇來(lái)映射所有的包。結(jié)果表明,在所有的目標(biāo)中MACO可以找到比MGA更好的解決方案。在30個(gè)簇、40個(gè)包、50個(gè)任務(wù)中,我們可得到FFD、DVFS、LR、MACO和MGA這四個(gè)算法的資源浪費(fèi)率分別為40%、1.67%、3.33%、0%、21.66% 。在使用FFD的25個(gè)簇中,有40%的資源沒(méi)有被利用,而對(duì)于使用MACO的12個(gè)簇中,所有的可用資源完全被利用。
圖1 營(yíng)運(yùn)成本比較
圖2 資源浪費(fèi)比較
針對(duì)云計(jì)算環(huán)境的復(fù)雜性,特別是云資源動(dòng)態(tài)變化的不確定性,本文提出一種多目標(biāo)集成的蟻群算法,算法從營(yíng)運(yùn)成本和資源浪費(fèi)兩個(gè)目標(biāo)進(jìn)行優(yōu)化。通過(guò)與單目標(biāo)和多目標(biāo)算法進(jìn)行比較,實(shí)驗(yàn)結(jié)果表明,該算法能夠在使?fàn)I運(yùn)成本低、資源浪費(fèi)少的情況下有效地進(jìn)行資源調(diào)度,是一種可行的、有效的資源調(diào)度算法。下一步的工作是結(jié)合機(jī)器學(xué)習(xí)算法進(jìn)一步優(yōu)化。
[1] Randles M, Lamb D, Odat E, et al. Distributed redundancy and robustness in complex systems[J]. Journal of Computer & System Sciences, 2011, 77(2): 293-304.
[2] 盧浩洋, 陳世平. 基于包簇映射的云計(jì)算資源分配框架[J]. 計(jì)算機(jī)應(yīng)用, 2016, 36(10): 2704-2709.
[3] Laszewski G V, Wang L, Younge A J, et al. Power-aware scheduling of virtual machines in DVFS-enabled clusters[C]// IEEE International Conference on CLUSTER Computing and Workshops. IEEE, 2009: 1-10.
[4] Jeyarani R, Ram R V, Nagaveni N. Design and Implementation of an Efficient Two-Level Scheduler for Cloud Computing Environment[C]// Ieee/acm International Conference on Cluster, Cloud and Grid Computing. IEEE, 2010:585-586.
[5] You X, Xu X, Wan J, et al. RAS-M: Resource Allocation Strategy Based on Market Mechanism in Cloud Computing[M]. IEEE Computer Society, 2009.
[6] Buyya R, Beloglazov A, Abawajy J. Energy-Efficient Management of Data Center Resources for Cloud Computing: A Vision, Architectural Elements, and Open Challenges[J]. Eprint Arxiv, 2010, 12(4): 6-17.
[7] Ikeda M, Barolli L, Koyama A, et al. Performance evaluation of an intelligent CAC and routing framework for multimedia applications in broadband networks[J]. Journal of Computer & System Sciences, 2006, 72(7): 1183-1200.
[8] Deb K, Miettinen K. Multiobjective Optimization: Interactive and Evolutionary Approaches[M]. Springer-Verlag, 2008.
[9] K. Deb, Multi-Objective Optimization Using Evolutionary Algorithms, Wiley, 2001.
[10] Deb K.Multi-objective genetic algorithms: problem difficultiesand construction of test problems.[J]. Evolutionary Computation, 2014, 7(3): 205-230.
[11] Calheiros R N, Ranjan R, De Rose C A F, et al. CloudSim: A Novel Framework for Modeling and Simulation of Cloud Computing Infrastructures and Services[J]. Computer Science, 2009.
[12] 師雪霖, 徐恪. 云虛擬機(jī)資源分配的效用最大化模[J]. 計(jì)算機(jī)學(xué)報(bào), 2013, 36(2): 252-262.
[13] 錢(qián)瓊芬, 李春林, 張小慶, 等. 云數(shù)據(jù)中心虛擬資源管理研究綜述[J]. 計(jì)算機(jī)應(yīng)用研究, 2012, 29(7): 2411-2415.
[14] 李強(qiáng), 郝沁汾, 肖利民, 等. 云計(jì)算中虛擬機(jī)放置的自適應(yīng)管理與多目標(biāo)優(yōu)化[J]. 計(jì)算機(jī)學(xué)報(bào), 2011, 34(12): 2253- 2264.
Multi-object ant Colony Resource Allocation Algorithm Based on Package Cluster Mapping in Coud Computing
DING Shun1, CHEN Shi-ping2
(1. School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology, Shanghai 200093, China; 2. Network and Information Center Office, University of Shanghai for Science and Technology, Shanghai 200093, China)
In the cloud computing environment, virtual machine placement is the process of mapping a virtual machine to a physical machine. An optimal placement strategy is very important for improving computational efficiency and resource utilization. In this paper, the problem of virtual machine placement in cloud computing environment is described as a multi-objective combinatorial optimization problem. A multi-objective ant colony optimization method is proposed, which optimizes the operation cost and resource waste at the same time and applies it to the cluster topology. Effectively get a set of non-dominated solutions while minimizing the total waste of resources and operating costs. The experiment compares the algorithm with the existing multi-objective genetic algorithm (MGA) and three single-objective algorithms. The results show that the proposed algorithm can achieve better results than other algorithms and achieve the compromise between the two objectives.
Cloud computing; Multi-objective optimization; Non-dominated solutions; Ant colony algorithm
本研究獲得國(guó)家自然科學(xué)基金項(xiàng)目(61472256、61170277); 上海市一流學(xué)科建設(shè)項(xiàng)目( S1201YLXK);上海理工大學(xué)科技發(fā)展基金(16KJFZ035、2017KJFZ033); 滬江基金(A14006)等資助。
丁順,碩士,主要研究領(lǐng)域:計(jì)算機(jī)網(wǎng)絡(luò)、云計(jì)算;陳世平,教授,主要研究領(lǐng)域:計(jì)算機(jī)網(wǎng)絡(luò)、分布式計(jì)算、云計(jì)算。
TP3
A
10.3969/j.issn.1003-6970.2018.11.001
丁順,陳世平. 云計(jì)算中基于包簇映射的多目標(biāo)蟻群資源分配算法[J]. 軟件,2018,39(11):01-06