徐勝超
(廣州華商學(xué)院 數(shù)據(jù)科學(xué)學(xué)院,廣州 511300)
近年來(lái)云數(shù)據(jù)中心的構(gòu)造與使用成了政府和各大IT 企業(yè)越來(lái)越重視的問(wèn)題,為了倡導(dǎo)綠色云計(jì)算,云數(shù)據(jù)中心的構(gòu)造目標(biāo)是低能量消耗、高服務(wù)質(zhì)量(Quality of Service,QoS)、節(jié)省物理空間和高可靠性等[1-3].一個(gè)數(shù)據(jù)中心(Data Center,DC)通常配置有大量的緊密堆積在一起物理節(jié)點(diǎn)(Physical Machines,PMs),目的是提高建筑物空間的利用率;虛擬化技術(shù)是云數(shù)據(jù)中心中最重要的技術(shù),虛擬化允許用戶對(duì)云資源的訪問(wèn)是透明與簡(jiǎn)單方便的,它通過(guò)虛擬機(jī)(Virtual Machines,VM)的形式將應(yīng)用程序封裝在虛擬機(jī)之中,通過(guò)虛擬機(jī)分配策略將其分配到具體的數(shù)據(jù)中心的物理節(jié)點(diǎn)之中執(zhí)行.所以虛擬機(jī)分配(Virtual Machine Distribution,VMD)等策略很大程度上影響了云平臺(tái)的整體性能,目前大量的文獻(xiàn)把性能指標(biāo)關(guān)注在SLA 違規(guī)比率、服務(wù)質(zhì)量QoS、系統(tǒng)能量消耗、虛擬機(jī)遷移次數(shù)等方面[4].
虛擬機(jī)分配的理想目標(biāo)是盡量利用個(gè)數(shù)比較少的云數(shù)據(jù)中心,同時(shí)提高每個(gè)數(shù)據(jù)中心的云資源利用效率,在此基礎(chǔ)上提高云數(shù)據(jù)中心的靈活性和可用性,降低硬件成本和操作成本(能量消耗,物理空間占用等)[5].
本文設(shè)計(jì)了一種用于企業(yè)的云數(shù)據(jù)中心的工作場(chǎng)景,它可以接受大量客戶端的虛擬機(jī)的請(qǐng)求,并將這些虛擬機(jī)分配到云數(shù)據(jù)中心的具體物理節(jié)點(diǎn)執(zhí)行.參考了經(jīng)典的裝箱問(wèn)題(classical in packing problem)模型,包括經(jīng)典的最好適應(yīng)算法Best-Fit-Algorithm (BFA)、首次適應(yīng)算法First-Fit-Algorithm (FFA),下次適應(yīng)算法Next-Fit-Algorithm (NFA)、最壞適應(yīng)算法Worst-Fit-Algorithm (WFA)和隨機(jī)算法Random Allocation -Algorithm (RAA)等來(lái)將大量的虛擬機(jī)放置到各個(gè)數(shù)據(jù)中心的物理節(jié)點(diǎn)完成云計(jì)算.建立了虛擬機(jī)放置過(guò)程中各種約束因素的數(shù)學(xué)模型,利用貪心算法(greedy algorithm)優(yōu)化云數(shù)據(jù)中心之間的虛擬機(jī)放置策略.測(cè)試結(jié)果表明,經(jīng)過(guò)優(yōu)化的最好適應(yīng)算法BFA 具有比較好的性能,這對(duì)于其他企業(yè)建立與構(gòu)造云數(shù)據(jù)中心有比較好參考價(jià)值.
目前學(xué)術(shù)界針對(duì)云端的虛擬機(jī)分配與遷移策略,進(jìn)行了大量的研究.主要分為兩類,第一類是針對(duì)從虛擬機(jī)到單數(shù)據(jù)中心中的物理節(jié)點(diǎn)的分配與遷移.第二類是針對(duì)從虛擬機(jī)到多個(gè)云數(shù)據(jù)中心的分配與調(diào)度.前一類關(guān)注的虛擬機(jī)在物理節(jié)點(diǎn)之間的選擇、分配和遷移;后者關(guān)注的是虛擬機(jī)在多個(gè)云數(shù)據(jù)中心的分配與放置.
針對(duì)第一類問(wèn)題,例如文獻(xiàn)[6]提出并評(píng)價(jià)了云端多虛擬機(jī)遷移的負(fù)載與性能變化;文獻(xiàn)[7]提出了一種利用動(dòng)態(tài)放置應(yīng)用程序的方法EnaCloud,實(shí)現(xiàn)云平臺(tái)的能效管理.文獻(xiàn) [8]同樣從CPU 維度對(duì)虛擬機(jī)的動(dòng)態(tài)配置問(wèn)題進(jìn)行建模,并利用改進(jìn)的蟻群算法進(jìn)行求解.文獻(xiàn)[9]提出了PS-ABC 算法,該方法能夠在長(zhǎng)期服務(wù)項(xiàng)目的局部時(shí)間段內(nèi)實(shí)現(xiàn)較好節(jié)能效果,但是在服務(wù)項(xiàng)目全局的能耗優(yōu)化問(wèn)題上,效果并不理想.文獻(xiàn)[10]在此基礎(chǔ)上提出了PS-ES 啟發(fā)式算法,不僅實(shí)現(xiàn)了當(dāng)前場(chǎng)景的能源優(yōu)化,而且也有效降低了長(zhǎng)期服務(wù)項(xiàng)目總體的能源消耗,但其考慮的維度較單一.文獻(xiàn) [11]在Beloglazov 研究的基礎(chǔ)上提出(Service Level Agreement,SLA)違規(guī)算法,引入最小能源最大利用率策略,進(jìn)一步優(yōu)化虛擬機(jī)配置方法.
針對(duì)第二類研究,主要涉及到經(jīng)典裝箱問(wèn)題,此類問(wèn)題是一個(gè)基于多約束的整數(shù)規(guī)劃問(wèn)題,同時(shí)也是一個(gè)NP-hard 問(wèn)題.即將云數(shù)據(jù)中心抽象為箱子,箱子的容量是云數(shù)據(jù)中心資源的大小,包括物理服務(wù)器個(gè)數(shù)、CPU 主頻高低、CPU 內(nèi)核個(gè)數(shù),內(nèi)存大小、空余磁盤空間大小和應(yīng)用程序類型等;虛擬機(jī)抽象為裝入的物品.例如文獻(xiàn)[12]利用裝箱問(wèn)題提出了啟發(fā)式算法,但是它們考慮的維度比較單一.文獻(xiàn)[13]提出了向量裝箱和多維裝箱問(wèn)題,文獻(xiàn)[14]采用了首次適應(yīng)減少算法(First-Fit Decreasing,FFD)來(lái)提高裝箱性能與效果.文獻(xiàn)[15]采用遺傳算法來(lái)優(yōu)化資源的消耗,能量的消耗和虛擬機(jī)的放置.文獻(xiàn)[16]將多虛擬機(jī)放置設(shè)計(jì)為一個(gè)多目標(biāo)約束滿意問(wèn)題,目標(biāo)是為了最小化物理節(jié)點(diǎn)個(gè)數(shù)和虛擬機(jī)遷移次數(shù).文獻(xiàn)[17]利用了約束編程模式,采用一個(gè)靈活和能量相關(guān)的框架來(lái)分配虛擬機(jī)到各個(gè)云數(shù)據(jù)中心.
在貪心算法方面文獻(xiàn)[18,19]提出了云計(jì)算中的基于貪心算法的任務(wù)調(diào)度及改進(jìn),把改進(jìn)任務(wù)競(jìng)爭(zhēng)時(shí)間和改進(jìn)任務(wù)執(zhí)行代價(jià)作為主要因素.實(shí)驗(yàn)結(jié)果表明貪心算法在串行調(diào)度算法的基礎(chǔ)上可以改進(jìn)任務(wù)調(diào)度的性能,但是它們并沒(méi)有將貪心算法使用到物理資源使用和低能量消耗相關(guān)的算法之中,也沒(méi)有用來(lái)優(yōu)化云端的虛擬機(jī)到數(shù)據(jù)中心的分配.
最近這三年又有文獻(xiàn)提出采用軟件的方法來(lái)提高虛擬機(jī)分配和虛擬機(jī)放置策略的性能,還有文獻(xiàn)提出需要在虛擬機(jī)遷移過(guò)程中考慮網(wǎng)絡(luò)攻擊危險(xiǎn),保證云數(shù)據(jù)中心的可靠性.例如文獻(xiàn)[20]把虛擬機(jī)遷移過(guò)程劃分為物理主機(jī)狀態(tài)檢測(cè)、虛擬機(jī)映射、虛擬機(jī)選擇、虛擬機(jī)放置4 個(gè)復(fù)雜的步驟,虛擬機(jī)映射主要通過(guò)任務(wù)粒度、軟件代價(jià)等來(lái)進(jìn)行調(diào)整;虛擬機(jī)放置屬于一類經(jīng)典裝相問(wèn)題,即把大量的虛擬機(jī)VM 放置到大量的物理節(jié)點(diǎn)之中,它提出要考慮虛擬機(jī)映射和虛擬機(jī)放置之間的相互聯(lián)系的算法來(lái)改善性能.文獻(xiàn)[21]提出了云數(shù)據(jù)中心基于安全檢測(cè)的虛擬機(jī)遷移策略.利用隔室技術(shù)及SIR (Susceptible,Infected,Recovered)模型在虛擬機(jī)遷移過(guò)程將有安全威脅的虛擬機(jī)隔離出來(lái),保證云數(shù)據(jù)中心的能量消耗與安全威脅的平衡.
本文提出的虛擬機(jī)分配策略屬于第二類方法,主要針對(duì)從虛擬機(jī)到云數(shù)據(jù)中心的分配,考慮的問(wèn)題裝箱問(wèn)題的維度不僅是硬件條件,還有軟件條件,采用貪心算法進(jìn)行優(yōu)化,即在虛擬機(jī)分配的時(shí)候只要局部的各個(gè)維度的資源最高即可得到資源,完成分配.
本文提出的云數(shù)據(jù)中心的虛擬機(jī)分配的工作場(chǎng)景如圖1,包括3 層的邏輯結(jié)構(gòu):用戶層、云服務(wù)提供者層、云數(shù)據(jù)中心集層.
圖1 貪心算法的虛擬機(jī)分配工作場(chǎng)景
用戶層Users 處于頂層.所有的應(yīng)用程序的請(qǐng)求在這一層產(chǎn)生,并形成虛擬機(jī)請(qǐng)求集(VM Request Set,VMRS)它們將被發(fā)送到下一層:云服務(wù)提供者層(Cloud Service Provider Layer,CSPL).
中間層CSPL 包括兩個(gè)子層,上面的子層全部是來(lái)自用戶層的虛擬機(jī)請(qǐng)求集.虛擬機(jī)請(qǐng)求由CPU 使用率、內(nèi)存大小、內(nèi)核數(shù)目、應(yīng)用程序類型(基于CPU的請(qǐng)求或基于I/O的請(qǐng)求)組成.下一子層是(Data Center Control Layer,DCCL)數(shù)據(jù)中心控制層,它擁有虛擬機(jī)請(qǐng)求和各個(gè)數(shù)據(jù)中心的信息,虛擬機(jī)分配過(guò)程中要考慮各種約束條件,包括資源是否滿足約束條件、用戶請(qǐng)求約束條件、用戶端和CSP 之間的SLA約束條件等.
所有的虛擬機(jī)請(qǐng)求都被放置到云數(shù)據(jù)中心被執(zhí)行,所以最下一層是(Data Center Set Layer,DCSL)云數(shù)據(jù)中心集層.數(shù)據(jù)中心集層的功能是完成被分配到每個(gè)具體的數(shù)據(jù)中心的虛擬機(jī)到其下物理節(jié)點(diǎn)的分配.
本文是假設(shè)每個(gè)云數(shù)據(jù)中心的節(jié)點(diǎn)是同構(gòu)條件下的物理節(jié)點(diǎn),同構(gòu)條件下的計(jì)算機(jī)在統(tǒng)計(jì)其計(jì)算能力和存儲(chǔ)能力的時(shí)候可以按照線性關(guān)系累加.同時(shí)該工作場(chǎng)景下的所有云數(shù)據(jù)中心在同一個(gè)地理位置,這樣各個(gè)物理主機(jī)的網(wǎng)絡(luò)帶寬基本類似.
我們把各個(gè)云數(shù)據(jù)中心的最大能量消耗和最小能量消耗分別定義為energymax和energyidle.被分配到各個(gè)云數(shù)據(jù)中心的虛擬機(jī)也定義了一個(gè)與其相關(guān)的代價(jià)變量dcprice,dcprice的數(shù)值相當(dāng)于是一種資源需求,就是混合多個(gè)維度的資源需求.虛擬機(jī)分配主要用來(lái)處理n個(gè)虛擬機(jī)的請(qǐng)求,每個(gè)虛擬機(jī)VMi由CPU 利用率,內(nèi)存大小,CPU 內(nèi)核數(shù)量和應(yīng)用程序操作類型(CPU based 或者I/O based)組成.所有的這些虛擬機(jī)的請(qǐng)求組成了虛擬機(jī)請(qǐng)求集合:{VM1,VM2,···,VMn}.每個(gè)數(shù)據(jù)中心(DC)由于k個(gè)同構(gòu)的物理節(jié)點(diǎn)組成,每個(gè)物理節(jié)點(diǎn)都有自己的CPU,內(nèi)存大小和內(nèi)核個(gè)數(shù);所有每個(gè)數(shù)據(jù)中心的所有物理節(jié)點(diǎn)組成了物理主機(jī)集合:{PM1,PM2,···,PMk}.云數(shù)據(jù)中心組成了數(shù)據(jù)中心的集合:{DC1,DC2,···,DCm}.這里每個(gè)DCj都具有一個(gè)應(yīng)用程序類型(CPU 或者 I/O),與具體的虛擬機(jī)請(qǐng)求對(duì)應(yīng),這樣方便VMi可以被分配到具體的DCj.
DC集合中的云數(shù)據(jù)中心必須記錄一個(gè)具體的價(jià)值參數(shù)dcprice,該dcprice為放置到該DC中的虛擬機(jī)的多維的資源請(qǐng)求數(shù)值,在云計(jì)算的服務(wù)等級(jí)協(xié)議SLA 協(xié)議中,在用戶User和云服務(wù)提供者CSP 之間,該價(jià)值dcprice為固定不變的.利用一個(gè)向量來(lái)表示DC集合中的所有數(shù)據(jù)中心中的價(jià)值:dcpricevector={dcprice1,dcprice2,···,dcpricem}.DC集合中的每個(gè)云數(shù)據(jù)中心必須記錄energymax值和energyidle值.這兩個(gè)值用來(lái)計(jì)算每個(gè)數(shù)據(jù)中心中的虛擬機(jī)放置后的能量消耗.可以把能量向量定義如下:
根據(jù)前面的思路,認(rèn)為把虛擬機(jī)請(qǐng)求集放置到具體的云數(shù)據(jù)中心為裝箱問(wèn)題,我們需要考慮的問(wèn)題的約束條件和維度具體包括:
1)應(yīng)用程序請(qǐng)求調(diào)度約束條件:這個(gè)約束將考慮虛擬機(jī)請(qǐng)求的所有維度參數(shù),包括虛擬機(jī)請(qǐng)求的CPU使用率、內(nèi)存大小、內(nèi)核數(shù)目、請(qǐng)求類型(基于CPU的請(qǐng)求或基于I/O的請(qǐng)求).
2)能力約束條件(capacity).這個(gè)約束主要是判斷云平臺(tái)的整體的資源使用狀態(tài),虛擬機(jī)請(qǐng)求集的整體資源需求之和必須小于或者等于云數(shù)據(jù)中心的整體資源,當(dāng)然這個(gè)資源數(shù)據(jù)必須考慮多個(gè)維度之總和.
3)放置約束條件.這里約束了如果整體資源已經(jīng)足夠,可以只從云數(shù)據(jù)中心集合中選擇一個(gè)云數(shù)據(jù)中心,它們要求盡量少的使用云數(shù)據(jù)中心.
根據(jù)前面提到的,在虛擬機(jī)分配的時(shí)候假設(shè)每個(gè)DC中有k個(gè)物理主機(jī)PM,設(shè)計(jì)CPMr(i)定 義為PMi中的第r維度的資源提供能力(capacity),那么一個(gè)數(shù)據(jù)中心中的所有物理主機(jī)在第r維度的資源提供能力可以根據(jù)式(1)進(jìn)行計(jì)算.
這里PMi的維度表示的是本文前面提到的CPU 速度、內(nèi)存大小和CPU 內(nèi)核數(shù)目.這樣m個(gè)同構(gòu)條件下的云數(shù)據(jù)中心組成的云平臺(tái)在第r維度的總體資源提供能力可以定義為式(2):
類似于式(2),我們定義n個(gè)虛擬機(jī)請(qǐng)求組成的虛擬機(jī)請(qǐng)求集的整體資源需求能力(capacity)為式(3):
這里CVMr(j)表示了第j個(gè)虛擬機(jī)申請(qǐng)?jiān)诘趓維度的資源需求.我們把DCi在第r維度的利用效率可以定義為放置到第i個(gè)數(shù)據(jù)中心的整體虛擬機(jī)請(qǐng)求資源和DCi在第r維度的總體資源提供能力的比例,見式(4).
如果VMi被分配到了DCj中,則這里有Vij=1.前面我們提到,云數(shù)據(jù)中心與3 個(gè)價(jià)值向量相關(guān),分別是dcpricevector,energymaxvector和energyidlevector.隨著DCs中的DC個(gè)數(shù)從1 到m的變化,dcpricevector會(huì)持續(xù)的增加,這3 個(gè)向量表達(dá)如下:
如果把能量最大向量和能量最小向量考慮進(jìn)去,那么云數(shù)據(jù)中心DCj的整體能量消耗可以通過(guò)公式(5)來(lái)計(jì)算.
式中,DCj的能量消耗包括新增虛擬機(jī)VMs的能量消耗和其在空閑時(shí)間內(nèi)的能量消耗.新分配虛擬機(jī)的能量消耗是通過(guò)考慮DCj在所有3 個(gè)維度的價(jià)值的最大值減去DCj在所有3 個(gè)維度的價(jià)值的最小值,然后乘以利用效率的最大值.這樣DCj的整體能量消耗(Total Energy Consumption,TEC)可通過(guò)式(6)進(jìn)行計(jì)算.
與每個(gè)數(shù)據(jù)中心關(guān)系密切的這兩個(gè)參數(shù)就是在跨數(shù)據(jù)中心進(jìn)行虛擬機(jī)分配的總價(jià)值參數(shù)dcprice和其對(duì)應(yīng)的能量消耗參數(shù)TEC.我們定義DCj的目標(biāo)函數(shù)為fnDC,它可以通過(guò)式(7)來(lái)表示.
這里ωen和ωex是總能量消耗參數(shù)和總價(jià)值參數(shù)分別對(duì)應(yīng)的權(quán)重,ωen+ωex=1.如果VMi被分配到了DCj中,這里有Vij=1.整體云計(jì)算平臺(tái)的目標(biāo)函數(shù)為式(8):
overallfnDC是所有在DC集中的每個(gè)fnDC(j)的算術(shù)總和.overallfnDC用來(lái)分析虛擬機(jī)的請(qǐng)求和目標(biāo)函數(shù)約束.目標(biāo)函數(shù)的約束條件如式(9)~式(12).
式(9)滿足了前面提到的虛擬機(jī)調(diào)度約束條件;式(10)滿足了資源使用能力約束條件;式(11)和式(12)滿足了虛擬機(jī)放置約束條件,一個(gè)虛擬機(jī)只能放置到惟一的云數(shù)據(jù)中心,因?yàn)橥ㄟ^(guò)Vij=0或Vij=1保證了這個(gè)約束條件.
虛擬機(jī)分配是一個(gè)NP-Hard 問(wèn)題,本文應(yīng)用貪心算法的啟發(fā)式算法,參考前面公式中計(jì)算的overallfnDC總體價(jià)值參數(shù)和總能量消耗TEC參數(shù),將虛擬機(jī)請(qǐng)求集放置到目標(biāo)函數(shù)最合適的云數(shù)據(jù)中心之中.
云數(shù)據(jù)中心控制層使用和收集虛擬機(jī)請(qǐng)求集的所有信息,數(shù)據(jù)中心集DCs在面向虛擬機(jī)在跨云數(shù)據(jù)中心分派的過(guò)程中,應(yīng)用了貪心算法的具體規(guī)則,例如,隨機(jī)選擇random allocation,下次適應(yīng)next fit,首次適應(yīng)first fit,最好適應(yīng)best fit和最壞適應(yīng)worst fit,最終完成虛擬機(jī)的放置.
在針對(duì)應(yīng)用程序虛擬機(jī)分配時(shí),本文把貪心啟發(fā)式算法應(yīng)用到經(jīng)典的裝箱問(wèn)題解決辦法之Random Allocation Algorithm (RAA)隨機(jī)選擇算法、下次適應(yīng)算法Next Fit Allocation (NFA)、首次適應(yīng)算法First Fit Allocation (FFA)、最好適應(yīng)算法Best Fit Allocation(BFA)和最壞適應(yīng)算法Worst Fit Allocation (WFA)之中.
利用某個(gè)企業(yè)的4 個(gè)大規(guī)模云數(shù)據(jù)中心作為測(cè)試環(huán)境,訪問(wèn)云服務(wù)器的客戶端的物理節(jié)點(diǎn)硬件組成情況如下表1,云數(shù)據(jù)中心的物理節(jié)點(diǎn)情況配置如表2,虛擬機(jī)請(qǐng)求通過(guò)一個(gè)統(tǒng)一的Web 應(yīng)用程序訪問(wèn),主要包括3 類虛擬機(jī),每個(gè)虛擬機(jī)對(duì)資源的請(qǐng)求需求如表3.
為了仿真需要,實(shí)驗(yàn)中改變虛擬機(jī)請(qǐng)求個(gè)數(shù)從25到250 個(gè),其中步長(zhǎng)為25.因?yàn)楸疚睦玫脑茢?shù)據(jù)中心中的物理主機(jī)是同構(gòu)的,且每個(gè)云數(shù)據(jù)中心中的主機(jī)個(gè)數(shù)是常量,所以針對(duì)啟發(fā)式算法而言,首次適應(yīng)算法FFA和最好適應(yīng)算法BFA的實(shí)驗(yàn)結(jié)果應(yīng)該是一樣的,所以我們的實(shí)驗(yàn)結(jié)果統(tǒng)計(jì)主要針對(duì)于RRA、WFA、BFA、NFA 四類算法.
表1 云客戶端配置
表2 云數(shù)據(jù)中心中的物理節(jié)點(diǎn)配置
表3 應(yīng)用程序端的虛擬機(jī)需求情況
表4顯示了隨著虛擬機(jī)數(shù)目的增加,被分配了云數(shù)據(jù)中心的個(gè)數(shù)的變化情況,從表可以看出,NFA,BFA及RAA 三類啟發(fā)式算法DCs隨著虛擬機(jī)的個(gè)數(shù)的增加而增加,但是在WFA 算法中,云數(shù)據(jù)中心的個(gè)數(shù)一直保持在4 個(gè),這說(shuō)明每個(gè)云服務(wù)器都被分配了虛擬機(jī).得到這個(gè)實(shí)驗(yàn)結(jié)果的原因是WFA 算法一直會(huì)分配虛擬機(jī)到那些擁有最大數(shù)量物理資源的數(shù)據(jù)中心.
表4 云數(shù)據(jù)中心個(gè)數(shù)隨的虛擬機(jī)請(qǐng)求的變化(單位:個(gè))
因此,每個(gè)虛擬機(jī)被放置到數(shù)據(jù)中心的時(shí)候,它將都被訪問(wèn)到,進(jìn)一步觀察結(jié)果可以得到,BFA 比NFA使用更加少的云數(shù)據(jù)中心個(gè)數(shù),這是因?yàn)樵诜峙涮摂M機(jī)的時(shí)候,BFA 算法首先考慮的是云數(shù)據(jù)中心,而NFA算法往往首先考慮的是數(shù)據(jù)中心中的之前的虛擬機(jī)分配情況.
表5顯示了隨著虛擬機(jī)請(qǐng)求數(shù)量的變化,云平臺(tái)的整體資源參數(shù)dcprice的變化.由于表4已經(jīng)表明被分配虛擬機(jī)的云數(shù)據(jù)中心數(shù)量是隨著虛擬機(jī)請(qǐng)求個(gè)數(shù)的增加,基于這個(gè)事實(shí),價(jià)值向量dcpricevector也就是系統(tǒng)所包含的軟硬件資源數(shù)量也是隨著云數(shù)據(jù)中心的增加而增加,整個(gè)系統(tǒng)的總體資源可以通過(guò)式(13)進(jìn)行計(jì)算.
如果VMi被分配到了DCj中,這里有Vij=1.
表5 云數(shù)據(jù)中心總價(jià)值向量隨著的虛擬機(jī)請(qǐng)求個(gè)數(shù)的變化
表5的結(jié)果表明BFA 啟發(fā)式算法比NFA 算法隨著虛擬機(jī)請(qǐng)求數(shù)量的變化,它增加得比較緩慢,它們之間的差異幾乎可以忽略;RAA 算法和WFA 算法的總體價(jià)值是不一致的,因?yàn)榭傮w價(jià)值主要依賴于虛擬機(jī)請(qǐng)求被分配到的一個(gè)具體云數(shù)據(jù)中心.
表6顯示了隨著虛擬機(jī)個(gè)數(shù)請(qǐng)求變化,云平臺(tái)的總體能量消耗情況,能量消耗的通過(guò)式(6)進(jìn)行計(jì)算,和表4和表5比較起來(lái),BFA和WFA 兩個(gè)被優(yōu)化的貪心算法之間的差異不是很大,得到這種結(jié)果的原因是能量消耗的大小主要依賴于一個(gè)具體的云數(shù)據(jù)中心的利用效率,而不是云數(shù)據(jù)中心的被分配個(gè)數(shù);WFA和RA 兩個(gè)算法中云數(shù)據(jù)中心的利用效率要低于NFA和BFA 算法.NFA和BFA 算法中的云數(shù)據(jù)中心的資源利用效率比較高;整體來(lái)所能量消耗都是隨著虛擬機(jī)請(qǐng)求個(gè)數(shù)的增加而增加.
表7顯示了隨著虛擬機(jī)請(qǐng)求個(gè)數(shù)的增加,系統(tǒng)的總體的代價(jià)函數(shù)值overallfnDC變化情況.overallfnDC主要通過(guò)式(8)來(lái)進(jìn)行計(jì)算,同時(shí)滿足式(9)~式(12)的約束條件,overallfnDC主要考慮了2 類約束條件,能量TEC和總體價(jià)值dcprice.如果兩個(gè)權(quán)重值都設(shè)置為0.5,那么能量TEC和總價(jià)值fnDC都平衡考慮.
從表7中可以看出,如果既考慮云數(shù)據(jù)中心的數(shù)量也考慮云數(shù)據(jù)中心的使用效率,那么BFA和WFA兩個(gè)算法的差異比較小.NFA和FFA 算法的差異要小于WFA和RAA 算法,因?yàn)镈Cs中被使用的個(gè)數(shù)也具有差異.
表6 云數(shù)據(jù)中心能量消耗隨著的虛擬機(jī)請(qǐng)求個(gè)數(shù)的變化(單位:kWh)
表7 云數(shù)據(jù)中心總體價(jià)值隨著的虛擬機(jī)請(qǐng)求個(gè)數(shù)的變化
所有上面的實(shí)驗(yàn)結(jié)果圖都顯示BFA 最好適應(yīng)算法在跨云數(shù)據(jù)中心的虛擬機(jī)分配的啟發(fā)式算法中具有比較好的性能.
本文運(yùn)用貪心算法優(yōu)化了傳統(tǒng)的虛擬機(jī)分配算法,云數(shù)據(jù)中心的物理節(jié)點(diǎn)規(guī)模將持續(xù)不斷擴(kuò)大,這樣將導(dǎo)致能量消耗的增加和資源規(guī)模總價(jià)值的增加,本文主要考慮了這兩個(gè)重要參數(shù),討論了虛擬機(jī)分配的三類主要約束條件.但是隨著云平臺(tái)上的應(yīng)用程序的種類增加和可用性的需求,為了完成高服務(wù)質(zhì)量QoS的需求,云數(shù)據(jù)中心的虛擬機(jī)分配需要考慮更加多的維度,這個(gè)是本文的后續(xù)工作.
計(jì)算機(jī)系統(tǒng)應(yīng)用2021年3期