余國清,周蘭蓉
(湖南信息職業(yè)技術(shù)學(xué)院 計算機(jī)工程學(xué)院,長沙 410200)
大數(shù)據(jù)云中心虛擬機(jī)資源高效分配應(yīng)用研究
余國清,周蘭蓉
(湖南信息職業(yè)技術(shù)學(xué)院 計算機(jī)工程學(xué)院,長沙 410200)
為降低大數(shù)據(jù)云中心的能量消耗和實現(xiàn)資源的優(yōu)化配置,提出一種虛擬機(jī)資源高效分配策略;提出的策略對選定的特征上具備相似性任務(wù)分組的聚類進(jìn)行定義,將各組任務(wù)映射到定制化的高效虛擬機(jī)類型;其高效指的是以最低限度的資源損耗成功執(zhí)行任務(wù);虛擬機(jī)的相關(guān)參數(shù)為核數(shù)量、內(nèi)存量和存儲量;虛擬機(jī)分配基于日志中提取的歷史數(shù)據(jù),并以任務(wù)的使用模式為基礎(chǔ);提出的資源分配策略以任務(wù)的實際資源使用量為基礎(chǔ),實現(xiàn)了能源消耗的降低;實驗結(jié)果表明:不同聚類任務(wù)下,提出的虛擬機(jī)資源分配策略可以大幅節(jié)約能源消耗,具有較低的平均任務(wù)拒絕次數(shù)。
大數(shù)據(jù); 資源分配; 虛擬機(jī); 能量消耗;聚類
大數(shù)據(jù)云計算[1]讓很大一部分的IT業(yè)發(fā)生轉(zhuǎn)變,隨著云服務(wù)的采用和普及率急速上升,能量消耗成為云數(shù)據(jù)中心的主要關(guān)注點之一。越來越多的研究著眼于降低云數(shù)據(jù)中心的能源消耗,同時滿足高效的服務(wù)水平要求。虛擬化技術(shù)[2]是能夠降低數(shù)據(jù)中心的能源消耗的一項關(guān)鍵技術(shù)。這一技術(shù)通過工作負(fù)載的遷移與合并,能夠?qū)崿F(xiàn)高效的資源利用和負(fù)載平衡[3]。由此,通過將虛擬機(jī)遷移出低負(fù)載的服務(wù)器,并使這些服務(wù)器進(jìn)入更低的能耗狀態(tài),可以實現(xiàn)相當(dāng)可觀的能源節(jié)約。
大量的文獻(xiàn)通過基于硬件或基于軟件的各種解決方案,對虛擬化或非虛擬的數(shù)據(jù)中心中的能量管理進(jìn)行了研究[4]。該領(lǐng)域中的大部分研究沒有利用從對現(xiàn)實云后端的trace的分析中得出的知識,但沒有考慮到云計算中工作負(fù)載的變化情況。
如文獻(xiàn)[5]研究了谷歌集群數(shù)據(jù)中的服務(wù)器特征和資源利用情況。還探索了在不同的時間周期中,對于每個架構(gòu)類型,失敗、被終止和被驅(qū)逐的任務(wù)所導(dǎo)致的資源損耗。文獻(xiàn)[6]研究了云數(shù)據(jù)中心和其他Grid/HPC系統(tǒng)之間的差異,考慮到谷歌數(shù)據(jù)中心中的工作負(fù)載和主機(jī)負(fù)載。該研究證明了較高的作業(yè)提交率和較短的作業(yè)長度,會導(dǎo)致云環(huán)境中的主機(jī)負(fù)載的差異變大。由此確定了云與網(wǎng)格之間在工作負(fù)載上的主要差別。對于任務(wù)聚類,文獻(xiàn)[7-8]中提出的方法使用K均值算法,并在一個有限的范圍(1~10)內(nèi)改變類的數(shù)量。然后,通過考慮推導(dǎo)出的聚類中的變化程度和類內(nèi)平方和推導(dǎo)出最優(yōu)值的k。其最大缺點是聚類數(shù)量必須手動調(diào)整。
本文利用從工作負(fù)載特征中得出的知識來確定高效的虛擬機(jī)配置。對數(shù)據(jù)中心上的請求進(jìn)行高效地分配,降低了基礎(chǔ)設(shè)施的能源消耗。并考慮到每個集群的使用模式,以識別虛擬機(jī)在CPU、內(nèi)存和磁盤容量方面的配置。
首先,對選定的特征上具備相似性任務(wù)分組的聚類進(jìn)行定義;下一步,分配能夠高效執(zhí)行屬于該聚類的任務(wù)的虛擬機(jī)類型。此處的高效指的是以最低限度的資源損耗成功執(zhí)行任務(wù)。虛擬機(jī)的相關(guān)參數(shù)為核心數(shù)量、內(nèi)存量和存儲量。由于本文研究中任務(wù)所需的存儲量較小,假定分配給虛擬機(jī)的磁盤容量為10 GB,該容量完全能夠滿足虛擬機(jī)上的操作系統(tǒng)安裝和任務(wù)磁盤使用需求。
針對每個虛擬機(jī)類型進(jìn)行任務(wù)數(shù)量估計所采取的步驟如算法1所示。為避免虛擬機(jī)過載[9],每個虛擬機(jī)中最大任務(wù)數(shù)量被設(shè)定為150。相對于虛擬機(jī)容量,資源要求較小的情況下,允許對這一數(shù)量進(jìn)行提升。接下來,對于允許的每個任務(wù)數(shù)量i(i在1至150之間),從任務(wù)聚類中隨機(jī)選擇出i個任務(wù),并計算出平均CPU利用率,報告CPU錯誤并將其存儲在tmperror中。
然后,算法根據(jù)tmperror尋找具有最低CPU使用估計錯誤的i并將其作為虛擬機(jī)的任務(wù)數(shù)量。將這一過程重復(fù)500次,這樣就可以收集到足夠的數(shù)據(jù)來得出結(jié)論。隨后將每次迭代中虛擬機(jī)的任務(wù)數(shù)量存儲到Minerror中。根據(jù)Minerror,每個虛擬機(jī)類型的任務(wù)數(shù)量為在大部分迭代中表現(xiàn)出最少的估計錯誤的數(shù)量。即該算法選擇出最有可能導(dǎo)致較少的估計錯誤的任務(wù)數(shù)量。
算法1:每個虛擬機(jī)類型的最優(yōu)任務(wù)數(shù)量估計
輸入:任務(wù)聚類
輸出:每個聚類的任務(wù)數(shù)量
1)對于每個任務(wù)聚類 do
2)平均CPU←任務(wù)聚類的平均CPU使用率
3) for 從1至500的kdo
4)for 從1至500的ido
5)聚類樣本←任務(wù)聚類的i個不放回抽樣
6)avgCPUs←聚類樣本的平均CPU使用率
8)tmperror[k]?CPUerror
9)最小值的索引號
10)每個聚類的任務(wù)數(shù)量←模式
對每個虛擬機(jī)中的最大任務(wù)數(shù)量進(jìn)行估計的目的是降低估計誤差,在此之后,需要對虛擬機(jī)的類型進(jìn)行定義。為此,需要對虛擬機(jī)中運行的典型任務(wù)的資源使用情況進(jìn)行估計。這里使用本文選定的數(shù)據(jù)集平均資源使用量和每個任務(wù)聚類的方差,對一個聚類中的每個任務(wù)的資源使用情況進(jìn)行估計。即:
第一步是計算出trace的第二天里每個任務(wù)的平均資源使用情況;
第二步是對于每個聚類,將該組中任務(wù)的平均資源利用情況的置信區(qū)間設(shè)為98%。
第三步是使用計算出的置信區(qū)間的上界作為指定聚類中一個典型任務(wù)的資源需求估計。
在得出需求(RD)和一個虛擬機(jī)類型(nT)中的任務(wù)數(shù)量之后,使用下式推導(dǎo)出虛擬機(jī)的規(guī)格。
(1)
通常,應(yīng)用上述操作,可以確定每個聚類的虛擬機(jī)類型。然后將得到的虛擬機(jī)類型存儲在虛擬機(jī)類型倉庫中,由任務(wù)映射器完成分配。應(yīng)用該操作得出的虛擬機(jī)類型如表1所示。在本文提出的基于使用量的資源分配策略中,任務(wù)數(shù)量nT被用作虛擬機(jī)的任務(wù)容量。下一節(jié)將對本文提出的策略進(jìn)行簡短討論。
表1 虛擬機(jī)配置
在不同的聚類中,駐留在虛擬機(jī)中的任務(wù)數(shù)量也不相同。本文根據(jù)駐留在虛擬機(jī)中的任務(wù)使用模式來定制虛擬機(jī)配置。提出的所有策略均使用相同的虛擬機(jī)配置。然而,每個任務(wù)聚類的虛擬機(jī)任務(wù)容量是不同的。具體資源分配策略詳述如下:
1)使用量的資源分配(Utilization-based Resource Allocation, URA):在該策略中,根據(jù)映射到虛擬機(jī)中的任務(wù)資源的平均使用量,以98%的置信區(qū)間計算出分配到每個虛擬機(jī)的任務(wù)數(shù)量。舉例來說,如果歷史數(shù)據(jù)顯示:一個聚類中的任務(wù)平均使用1 GB的內(nèi)存,而該聚類中的任務(wù)將被分配到具有RAM為4 GB的虛擬機(jī)上,URA將分配4個此類任務(wù),而不會考慮用戶在提交相應(yīng)的作業(yè)時所聲明的估計內(nèi)存用量。且每個虛擬機(jī)類型的任務(wù)容量與式(1)中的nT相等。
2)請求量的資源分配(Requested Resource Allocation, RRA):在該策略中,所考慮的虛擬機(jī)類型與URA相同;但是,分配到虛擬機(jī)的任務(wù)數(shù)量則是以提交任務(wù)的平均請求量為基礎(chǔ)。如前文所述,資源請求量與任務(wù)一起提交。本文將RRA作為基準(zhǔn),在數(shù)據(jù)中心能源消耗和服務(wù)器利用率方面做進(jìn)一步比較。
URA的評價結(jié)果中推導(dǎo)出其他4個策略。在這方面,本文研究了虛擬機(jī)的使用情況,以更好的理解任務(wù)拒絕的原因(CPU、內(nèi)存或磁盤),以及在發(fā)生拒絕情況時每個虛擬機(jī)中的運行任務(wù)數(shù)量。
對于每個虛擬機(jī),算法2給出了確定每個虛擬機(jī)運行任務(wù)的最小數(shù)量,這使得虛擬機(jī)資源利用率超過其容量的90%,且不會造成任務(wù)被拒絕的情況。算法2中vmtol表示虛擬機(jī)數(shù)量,clindex表示聚類索引,sour表示資源。
算法2:
輸入:虛擬機(jī)聚類列表={VMlist1,...,VMlist18};
虛擬機(jī)列表聯(lián)合索引={VMID1,...,VMIDvmtol}clindex;
sour列表={CPU,內(nèi)存,磁盤};
輸出:nTclindex,sour={ntVMID1,...,ntVMIDvmtol}
1)forclindex←1至18 do
2)虛擬機(jī)ID列表←虛擬機(jī)聚類列表(clindex)
3) for 虛擬機(jī)ID列表中的虛擬機(jī)ID do
4)對于每個 資源列表中的資源 do
5)找到運行任務(wù)的最小數(shù)量,使得虛擬機(jī)資源利用率為其容量的90%至100%。
對于由算法2聚類索引確定的聚類,可以得出每個虛擬機(jī)類型的nt。然后,對于每個被考慮的資源(包括CPU、內(nèi)存和磁盤),在每個聚類中將虛擬機(jī)的nt聚集到nT(clindex,sour)集合中。本文提出的4種策略可確定駐留在每個虛擬機(jī)中的任務(wù)數(shù)量。這些策略是基于每個聚類nT(clindex,sour)中推導(dǎo)出的估計值,即平均、中位數(shù)、第一個分位數(shù)和第三個分位數(shù)。
1)平均資源分配策略(avgRA):對于每個任務(wù)聚類,設(shè)m為集合nT(clindex,sour)的長度,對于平均任務(wù)數(shù)量,有:
(2)
單獨估計出每種資源的nTavg。在該策略中,駐留在每種虛擬機(jī)類型中的任務(wù)數(shù)量等于每種資源所得到的最小值的nT,即:
nTmin=min(nTavg,CPU,nTavg,內(nèi)存,nTavg,磁盤)
(3)
2)中位數(shù)資源分配策略(MeRA):在該策略中,nTclindex,sour集合的第二個分位數(shù)(中位數(shù))被用于確定分配到每個虛擬機(jī)類型的任務(wù)數(shù)量。與之前的策略一樣,使用每種資源得出的最小數(shù)量確定虛擬機(jī)的任務(wù)容量。
3)第一個分位數(shù)資源分配策略(FqRA):在該策略中,nTclindex,sour集合的首個分位數(shù)(一個有序集的k分位數(shù)即截至第一個25*k%的數(shù)據(jù),對于第一個、第二個和第三個分位數(shù),k分別等于1、2和3)被用于確定分配到每個虛擬機(jī)類型的任務(wù)數(shù)量。該策略使用了每種資源得出的最小數(shù)量。此處資源指的依然是虛擬機(jī)的CPU、內(nèi)存或磁盤容量。
4)第三個分位數(shù)資源分配策略(ThqRA):在該策略中,nTclindex,sour集合的第三個分位數(shù)被用于確定分配到每個虛擬機(jī)的任務(wù)數(shù)量。與之前的策略一樣,使用每種資源得出的最小數(shù)量來確定虛擬機(jī)的任務(wù)容量。
本文在可用trace中,對資源利用度量和請求進(jìn)行歸一化,并為每列單獨執(zhí)行歸一化操作。如文獻(xiàn)[10]所述,根據(jù)任何一個機(jī)器上所發(fā)現(xiàn)的某種資源的最高數(shù)量進(jìn)行歸一化操作。在這一背景下,為了更好地理解數(shù)據(jù),本文假定每列的資源數(shù)量最高。為了消除放置約束,僅對被調(diào)度到三個可用平臺中的一個平臺任務(wù)進(jìn)行考慮。
提出的系統(tǒng)針對每個聚類進(jìn)行模擬,在每個處理窗口中(實驗中設(shè)置該過程為1分鐘),將任務(wù)分配到相對應(yīng)的虛擬機(jī)類型。模擬運行時間設(shè)為24小時。單獨報告每個任務(wù)聚類的資源使用量和被拒絕任務(wù)數(shù)量。具體實驗及結(jié)果分析如下:
本文使用表2中列舉的3個服務(wù)器配置定義一個數(shù)據(jù)中心。設(shè)計理念來自于在本文研究的trace周期內(nèi)的數(shù)據(jù)中心及其主機(jī)配置。一般集群中的主機(jī)在CPU、內(nèi)存和磁盤容量方面是異構(gòu)的[11-12]。然而,相同平臺ID的主機(jī)有著相同的架構(gòu)。
表2 平臺中的可用服務(wù)器配置
本文應(yīng)用第一個擬合算法,作為尋找對新實例化的虛擬機(jī)進(jìn)行托管的第一個可用機(jī)器的放置策略。該算法首先在運行主機(jī)中進(jìn)行搜索,以查找是否有足夠的虛擬機(jī)可用資源。然后報告能夠提供虛擬機(jī)所需資源的第一個運行主機(jī)。如果沒有發(fā)現(xiàn)放置虛擬機(jī)的運行主機(jī),那么將啟動一個新的主機(jī)。新主機(jī)從可用主機(jī)列表中選出,該列表中包含主機(jī)ID及其配置,從trace日志中得出。本文提出的所有算法使用同一個主機(jī)列表,以確保放置策略不會影響到模擬結(jié)果。
如表3所示,長度較長的任務(wù)聚類表現(xiàn)出的使用差異相對較低。這使得資源分配策略可以對資源的使用估計和預(yù)測更加準(zhǔn)確和高效,因為所需的采樣數(shù)據(jù)較少,且可以對預(yù)測窗口進(jìn)行加寬。長度較短的任務(wù)聚類則與之相反:在這些聚類中可以觀察到更大的差異,因此,在預(yù)測中需要更頻繁的采樣和更窄的時間窗口。
表3給出了每個算法的虛擬機(jī)容量。在URA策略中,基于實際使用量對任務(wù)進(jìn)行分配。由于任務(wù)的請求資源和實際用量之間存在差異,URA中的虛擬機(jī)任務(wù)容量要高于其他算法。因此,在大多數(shù)的聚類中,RRA在一個虛擬機(jī)中容納的任務(wù)數(shù)量最少。而在URA策略之外,ThqRA有著最高的虛擬機(jī)任務(wù)容量。
表3 不同分配策略下各聚類的虛擬機(jī)任務(wù)容量
在任務(wù)拒絕率方面,如果算法的虛擬機(jī)任務(wù)容量較大,則任務(wù)拒絕率也比較高。因此,在大部分聚類中,文獻(xiàn)[8]的任務(wù)拒絕率最高。但是本文RRA和ThqRA在任務(wù)拒絕率上的差異幾乎可以忽略不計。因此,每個虛擬機(jī)中任務(wù)數(shù)量最低的RRA策略在模擬實驗中任務(wù)被拒絕的情況最少。
表4 不同方法每分鐘的平均拒絕次數(shù)
由于各算法的主機(jī)使用量均比較少,本文策略在能耗方面表現(xiàn)更優(yōu)。本文使用如下公式計算機(jī)每個活動節(jié)點的能耗:
(4)
式中,v表示第個節(jié)點上運行的虛擬機(jī)數(shù)量,存儲器單元數(shù)為M,虛擬機(jī)的任務(wù)數(shù)量用u表示,cpui jk表示虛擬機(jī)中的k個任務(wù)的處理器情況,mui jk分別表示存儲器的使用情況。
與其他方法的性能比較如表5所示。可以發(fā)現(xiàn),本文方法的能耗明顯減少,其在云環(huán)境下的性能評價更優(yōu)。因此可擴(kuò)展性也更強(qiáng)。在大部分聚類中,文獻(xiàn)[5-8]的平均任務(wù)拒絕率較高,使得任務(wù)執(zhí)行的延時也很高。因此,這些策略適用于低優(yōu)先級且執(zhí)行中延時敏感度較低的任務(wù)。而本文方法可以執(zhí)行較高的延時敏感度任務(wù)。
表5 各方法框架的性能比較 %
本文提出了一個端到端的架構(gòu),并根據(jù)工作負(fù)載定制虛擬機(jī)配置的方法。在對任務(wù)進(jìn)行聚類并映射到虛擬機(jī)時,考慮的是每個聚類的實際資源使用量,而非用戶請求的資源量。在模擬實驗中,本文在每個任務(wù)聚類中對提出的算法進(jìn)行了性能比較,結(jié)果表明本文提出的策略具有一定優(yōu)勢。
未來將研究能量感知的虛擬機(jī)放置算法,考慮每組任務(wù)的特征和約束。此外,還將根據(jù)每組任務(wù)的規(guī)格選擇正確的策略。
[1] 曹 潔, 曾國蓀, 匡桂娟,等. 支持隨機(jī)服務(wù)請求的云虛擬機(jī)按需物理資源分配方法[J]. 軟件學(xué)報, 2017, 28(2):457-472.
[2] 羅 杰, 張之明, 高志強(qiáng),等. 基于效益最大化的云虛擬機(jī)資源分配研究[J]. 計算機(jī)應(yīng)用研究, 2016, 33(10):2963-2966.
[3] 鄭顧平, 王秋萍. 基于負(fù)載預(yù)測的虛擬機(jī)資源優(yōu)化分配方案[J]. 科學(xué)技術(shù)與工程, 2016, 16(23):223-228.
[4] 吳偉美, 陳 勛, 段班祥,等. 虛擬機(jī)資源概率配置的云計算SEFFD算法[J]. 計算機(jī)與現(xiàn)代化, 2016(10):15-20.
[5] 高任飛, 武繼剛, 周 瑩,等. 極小通訊延遲的虛擬機(jī)分配算法[J]. 計算機(jī)科學(xué)與探索, 2016, 10(7):924-935.
[6] 王煜煒, 劉 敏, 房秉毅,等. 面向網(wǎng)絡(luò)性能優(yōu)化的虛擬計算資源調(diào)度機(jī)制研究[J]. 通信學(xué)報, 2016, 37(8):105-118.
[7] 常春雷, 楊大偉, 陳 斌,等. 基于虛擬機(jī)智能動態(tài)資源調(diào)度策略技術(shù)的研究[J]. 電氣時代, 2016(11):68-71.
[8] 李明陽, 嚴(yán) 華. 改進(jìn)粒子群算法在云計算負(fù)載均衡中的應(yīng)用研究[J]. 計算機(jī)測量與控制, 2016, 24(10):219-221.
[9] 鄧 莉, 姚 力, 金 瑜. 云計算中基于多目標(biāo)優(yōu)化的動態(tài)資源配置方法[J]. 計算機(jī)應(yīng)用, 2016, 36(9):2396-2401.
[10] 劉 鎏, 虞紅芳, 鄭少平. 面向業(yè)務(wù)動態(tài)變化的虛擬機(jī)遷移技術(shù)研究[J]. 計算機(jī)應(yīng)用研究, 2016, 33(2):534-539.
[11] 梁 鑫, 桂小林, 戴慧珺,等. 云環(huán)境中跨虛擬機(jī)的Cache側(cè)信道攻擊技術(shù)研究[J]. 計算機(jī)學(xué)報, 2017(2):317-336.
[12] 栗少萍, 秦召廣. 異構(gòu)網(wǎng)絡(luò)下車聯(lián)網(wǎng)的注水資源分配算法研究[J]. 電子設(shè)計工程, 2016, 24(9):139-143.
Application Research on Efficient Allocation of Virtual Machine Resources in Large Data Cloud Center
Yu Guoqing,Zhou Lanrong
(College of computer engineering, Hunan Information College,Changsha 410200,China)
To reduce the energy consumption and optimize the allocation of resources in big data cloud center, a virtual machine resource allocation strategy is proposed. The proposed method defines the clustering of the selected features with similar task grouping, and maps the tasks of each group to the customized efficient virtual machine type. And this efficiency is the successful implementation of tasks with minimal resource depletion. The parameters of virtual machine are the number of cores, memory and storage. The virtual machine is based on the historical data extracted from the log trace, and it is based on the usage pattern of the task. The proposed resource allocation strategy is based on the actual resource usage of the task, and the energy consumption is reduced. The experimental results show that the proposed virtual machine resource allocation strategy can save energy consumption and reduce the average number of tasks in different cases of clustering.
big data;resource allocation;virtual machine;energy consumption; clustering
2017-04-20;
2017-05-11。
湖南省科學(xué)技術(shù)廳科技計劃項目(2011FJ3086)。
余國清 (1971-),男,湖南常德人,碩士,副教授,主要從事數(shù)據(jù)分析,模式識別等方向的研究。
1671-4598(2017)08-0272-03
10.16526/j.cnki.11-4762/tp.2017.08.070
TP391
A