郭曙杰,李志華,藺凱青
(江南大學物聯網工程學院,江蘇無錫214122)
(?通信作者電子郵箱jswxzhili@jiangnan.edu.cn)
近年來,由于云計算技術的持續發展,以及隨需而變的資源共享機制和安全可靠、成本低廉的租賃方式,云計算已被確立為信息技術產業中占主導地位的計算模式[1]。云服務提供商使用虛擬化技術為用戶提供計算資源;同時,用戶與云服務提供商簽訂服務級別協議(Service Level Agreements,SLA)以保證用戶對服務質量(Quality of Service,QoS)的需求。然而隨著數據中心規模的不斷增大,云數據中心的高能耗、低資源利用率的矛盾已成為了學術界、產業界不可忽視的問題。研究表明,云數據中心的綜合資源利用率僅在10%左右,且大部分物理主機處于空閑狀態,而處于空閑狀態下的物理主機能耗僅為其滿負荷狀態的70%[2]。顯然,為了提高資源利用率、降低能耗,在不違反SLA的前提下,通過虛擬機在線遷移技術可以改變虛擬機與物理主機之間的部署關系,關閉那些低使用率的活動物理主機,從而在保障服務質量的同時降低云數據中心能耗、改善資源利用率。因此,制定一個合理的虛擬機放置方案是目前學術界聚焦的問題。
傳統的虛擬機放置問題與裝箱問題類似,即如何將n臺虛擬機部署在m臺活動物理主機上,從而起到最小化物理主機數量的作用。但是虛擬機放置還需要同時考慮虛擬機受物理主機在CPU、內存、帶寬等資源方面的約束以及數據中心的服務質量。已有研究者將傳統的裝箱問題算法應用于求解虛擬機放置優化方案中。文獻[3]提出了基于能耗感知的最適下降(Power Aware Best Fit Decreasing,PABFD)算法,PABFD算法總是將當前狀態下能耗最低的物理主機作為虛擬機放置的目標主機,有效降低了數據中心的能耗,但是這種基于貪婪選擇的策略僅局限于對能耗的優化,忽略了對數據中心服務質量下降影響的考慮。文獻[4]根據虛擬機與主機的歷史資源利用率,提出了一種資源利用率預測感知的最適降序(Utilization Prediction Aware Best Fit Decreasing,UPBFD)算法來對虛擬機進行放置,但是UPBFD算法忽略了虛擬機遷移對數據中心服務質量的影響。可見,傳統的啟發式算法[3-4]往往只針對單一的目標進行優化,因此文獻[5-7]將虛擬機放置問題描述為多目標組合優化問題,并使用仿生智能算法對問題進行求解。在文獻[5]中提出了一種基于蟻群系統的虛擬機放置方法,同時優化3個目標包括降低能耗、最小化虛擬機遷移次數,以及避免違反SLA,但是算法沒有考慮各類資源之間的負載均衡;文獻[6]中以最大化資源利用率、最小化活動物理主機數量為優化目標,提出了一種基于改進遺傳算法的虛擬機放置模型,該算法改變了遺傳算法的編碼方式,并通過交叉、變異方式避免了算法陷入局部最優;文獻[7]通過對粒子群優化算法進行改進,提出了一種新的資源感知的局部適應度策略,以提高粒子位置更新時的效率,提高了虛擬機放置的時間效率,但是算法僅考慮了對能耗和資源利用率的優化。
針對已有研究工作中存在的不足,本文提出了一種基于模糊聚類思想的虛擬機放置方案和相應的基于模糊隸屬度的虛擬機放置(Fuzzy Membership Degree based Virtual Machine Placement,FMD-VMP)算法,其目的是通過優化虛擬機與物理主機之間的映射關系來提高數據中心資源利用率,降低數據中心能耗,減小各類物理資源的違背率以保證數據中心的服務質量。
為了解決傳統距離和相似度度量方式無法準確衡量虛擬機與物理主機之間關系的問題,FMD-VMP算法首先對原始模糊聚類算法中距離度量方式進行了重新定義,將虛擬機部署到主機上的過載概率估計與虛擬機和主機間的資源匹配度相結合,作為全新的距離度量標準;然后,結合提出的距離度量方法和模糊聚類思想,定義了新的模糊隸屬度函數,從而通過計算虛擬機與物理主機之間的模糊隸屬度矩陣得到相應的映射關系,又稱虛擬機放置方案;最后,為了進一步降低數據中心能耗,使用能耗感知的方式對模糊隸屬度矩陣進行局部搜索來優化虛擬機放置結果。

在云數據中心中,虛擬機的資源請求是不確定的,虛擬機放置的目的是找到一組合適的物理主機來部署待遷移虛擬機,另外不同的物理主機之間存在不同的資源配置,并且由于負載的不確定性等因素,每臺物理主機的剩余資源也是不確定的。另一方面,傳統的模糊聚類算法使用歐氏距離作為樣本間的相異性度量方式[8],而傳統聚類算法的距離度量方式不適用于虛擬機資源之間的相似性或相異性度量,針對這一問題,首先提出一種基于負載匹配度和過載風險的距離度量模型。
1.2.1 資源匹配度估算
物理主機各類資源負載均衡有助于提高數據中心資源利用率,而物理主機的實際資源負載取決于當前部署在該主機上的所有虛擬機對各類資源請求的總和,因此為了平衡負載,應當同時考慮待放置虛擬機的資源需求量和物理主機的剩余資源容量之間的匹配關系,即將待遷移虛擬機部署到與剩余資源匹配度最高的物理主機之上。為此,本文使用皮爾遜相關系數(Pearson correlation coefficient)[9]來對虛擬機請求資源和物理主機剩余資源的匹配度進行衡量。
虛擬機v j請求資源的標準差σvj和主機p i剩余資源的標準差σpi可分別通過式(2)和式(3)計算,虛擬機v j請求資源和主機p i剩余資源的協方差cov(v j,p i)可通過式(4)來計算,則虛擬機v j請求資源與主機p i剩余資源的皮爾遜相關系數ρ(v j,p i)計算如式(5)所示。

其中:vˉj為虛擬機v j的請求資源平均值,Rˉi為物理主機p i的剩余資源平均值。由于相關系數ρ(v j,p i)的取值范圍為[-1,1],因此虛擬機請求資源和物理主機剩余資源的匹配度MatchDegree可通過式(6)計算:

將其范圍約束在[0,1]中。
1.2.2 過載風險估計


式(9)中的Φ(x)表示正態分布函數。
進一步,根據1.2.1節提出的資源匹配度估算方法和1.2.2節提出的過載風險估計函數,本文提出虛擬機v l與物理主機p i之間的資源相適應性度量的距離,表示成Distance(v l,p i),由式(10)計算:

模糊C-均值(Fuzzy C-Means,FCM)聚類算法將模糊數學理論應用于樣本的聚類計算中,使用模糊邏輯重新定義了樣本到聚類簇之間的隸屬關系。將樣本與聚類簇之間的相關程度,稱為隸屬度。隸屬度的取值在[0,1]中,隸屬度越接近于1,表示該樣本屬于該聚類簇的程度越高,隸屬度越接近于0,則表示該樣本屬于該聚類簇的程度越低。隸屬度函數是用于計算樣本與聚類簇之間隸屬度的函數。在FCM算法中,樣本與聚類簇的模糊關系通常通過計算隸屬度矩陣得到了定量的分析。受此啟發,本節借助模糊隸屬度的思想研究虛擬機與物理主機之間的映射關系。
在云數據中心,可將n臺虛擬機作為樣本點,m個物理主機作為聚類中心,根據1.2節定義的資源相適度度量模型計算虛擬機放置到物理主機的適應性,并通過模糊隸屬度函數upi(v j)計算虛擬機v j隸屬于物理主機p i的程度。u p i(v j)計算如式(11)所示:

其中s為加權指數用于改變算法的模糊程度,其取值范圍一般為[1.5,2.5],本文設置為s=2。
概括上述步驟,在此提出模糊隸屬度矩陣生成(Fuzzy-Membership-Matrix Generation,FMMG)算法,如算法 1所描述。
算法1 模糊隸屬度矩陣生成(FMMG)算法。

在FMMG算法中,首先循環遍歷待放置的虛擬機以及目標物理主機,計算每臺虛擬機到各臺物理主機之間的相適度距離;然后根據式(11)得出每臺虛擬機與每臺物理主機之間的隸屬度;最后將輸出一個虛擬機與物理主機之間的映射矩陣,即待放置虛擬機與物理主機之間的隸屬度矩陣,使用U表示成式(12)所示:

通過算法1產生了虛擬機與物理主機之間的模糊隸屬度矩陣,對于虛擬機放置而言,只是得到了一個虛擬機放置的可行且可能的放置方案。雖然通過這種方式能比較好地改善虛擬機放置過程中的資源利用率,但是在虛擬機放置過程中既要考慮資源利用率,還必須考慮能耗因素,為此在本節中進一步提出基于能耗感知的局部搜索放置(Energy-Consumption-Aware-based Local Search Placement,ECA-LSP)算法,如算法2所示。

算法2描述了基于能耗感知的局部搜索放置算法,主要目的是為待遷移虛擬機最終選擇出最佳的目的主機。首先使用匹配度參數w對虛擬機v j和物理主機p i的隸屬度u p i(v j)進行判斷,w的值設置為0.5。若u p i(v j)>w,則將物理主機p i作為待遷移虛擬機v j的候選目標主機,這樣得到一個候選目標主機集合;然后計算虛擬機v j放置到每臺候選主機上的能耗情況,選擇部署虛擬機v j后能耗最低的物理主機作為v j的目標物理主機。若不存在u p i(v j)>w的情況,則將待遷移虛擬機v j部署在模糊隸屬度最高的物理主機上。
FMD-VMP由FMMG算法和ECA-LSP算法兩部分構成。如圖1所示,FMMG算法的目標是利用本文提出的模糊隸屬度函數來計算待遷移虛擬機到目標物理主機之間的模糊隸屬度,從而得到相應的模糊隸屬度矩陣。模糊隸屬度值越大,則說明該虛擬機越適合放置在該目標物理主機上。為了進一步說明不同虛擬機與物理主機之間的隸屬度關系,表1隨機選取了實驗過程中10臺待遷移虛擬機和5臺目標物理主機之間的模糊隸屬度值。

圖1 生成模糊隸屬度矩陣Fig.1 Generation of fuzzy membership matrix

表1 虛擬機與物理主機隸屬度值Tab.1 Membership values between virtual machines and physical hosts
從表1中可以看出,不同虛擬機與不同物理主機之間的模糊隸屬度差異較大,其中,虛擬機VM4與物理主機Host1之間的模糊隸屬度值最大,為0.867 9;而與物理主機Host2之間的模糊隸屬度僅為0.107 2。這說明虛擬機VM4更傾向于放置在Host1。同時結合ECA-LSP算法可知,當虛擬機與物理主機之間的隸屬度值大于匹配參數w(w=0.5)時,則該物理主機被存入候選物理主機集合。VM4與物理主機Host3的模糊隸屬度值為0.7379,因此物理主機Host1與Host3均為虛擬機VM4的候選物理主機。通過ECA-LSP算法中能耗感知的方式,將虛擬機VM4放置到候選物理主機集合中能耗最低的物理主機上。
因此FMMG算法能夠有效生成模糊隸屬度矩陣,從而使得ECA-LSP算法能夠通過相應的模糊隸屬度矩陣將虛擬機放置到最佳目標主機上。
在時間復雜度方面,假設有n臺虛擬機和m臺物理主機。在FMMG算法中,步驟5)~10)使用了兩層循環來計算隸屬度值,外層循環n次,內存循環m次,因此FMMG算法的時間復雜度為O(nm)。在ECA-LSP算法中,對候選物理主機進行遍歷,每次都需計算候選物理主機能耗,將待遷移虛擬機放置到能耗最低的候選物理主機上,此過程的時間復雜度為O(wm),其中w為2.2節中的匹配度參數。因此,FMD-VMP算法的總體時間復雜度為O(nm)。
本文使用CloudSim作為實驗仿真平臺。為了有效評價本文所提出算法的效率,實驗配置了一個由800臺異構物理主機組成的數據中心。物理主機型號分別為HP ProLiant ML110 G4(Intel Xeon 3040,2 cores×1 860 MHz,4 GB)及 HP ProLiant ML110 G5(Intel Xeon 3075,2 cores×2 660 MIPS,4 GB)。根據 Amazon Elastic Compute Cloud(EC2)[1]提供的VMS實例類型,考慮到虛擬機CPU和內存的容量不同,實驗配置了4種不同的虛擬機,表2詳細描述了實驗所用的虛擬機的硬件配置。

表2 虛擬機類型Tab.2 Virtual machinetypes
為了使基于CloudSim的仿真結果評估具有適用性,實驗使用了三種真實的工作負載,分別為:云服務提供商Bitbrains[14]公 開 的 數 據 集 ,以 下 稱 為 Bitbrains 數 據 集 ;PlantLab[20]公司記錄的任務請求,以下稱為PlantLab數據集;以及阿里巴巴開放的計算機集群真實數據集(Alibaba Cluster Data V2018)[15],以下稱為Alibaba數據集。
為了比較本文提出的FMD-VMP算法與現有算法的性能,實驗選擇了文獻中[16]提出的6種性能評價指標:能耗(Energy Consumption,EC)、服務等級協議違背率(SLA Violation,SLAV)、虛 擬 機 遷 移 次 數(Virtual Machine Migrations,VMM)、遷 移 導 致 的 性 能 下 降(Performance Degradation due to Migration,PDM)、每臺活動物理主機的服務等級協議違背時間(SLA violation Time per Active Host,SLATAH)、數據中心能耗和服務質量的綜合評價指標(Energy and SLA Violation,ESV)。
實驗將本文所提出的FMD-VMP算法與基于蟻群的虛擬機放置方法(Ant Colony System based Virtual Machine Placement,ACS-VMP)[5]、基于遺傳算法的虛擬機優化放置方法(Genetic Algorithm based Virtual Machine Placement,GAVMP)[17]、首次適應降序算法(First Fit Decreasing,FFD)[11]、基于資源利用率感知的最適降序算法(UPBFD)[4]等方法進行比較,其中ACS-VMP與GA-VMP算法為智能優化算法,FFD與UPBFD算法為傳統的近似算法。文獻[16]將虛擬機整合過程描述為物理主機過載檢測、待遷移虛擬機選擇和虛擬機放置等階段,并提出了相應的算法。本實驗使用文獻[16]提出的四分位算法(Inter Quartile Range,IQR)和絕對平均值算法(Mean Absolute Deviation,MAD)作為物理主機過載檢測方法,最少遷移時間(Minimum Migration Time,MMT)算法和最大相關性(Maximum Correlation,MC)算法作為虛擬機選擇算法,并將其組合為MAD-MMT算法、IQR-MC算法分別與五種虛擬機放置算法進行實驗,得到10個不同的虛擬機整合方法。因此,基于Bitbrains數據集和Alibaba數據集的對照實驗各有10組,共進行了20組對照實驗。
3.3.1 有效性
實驗根據3.2節提出的6種性能評價指標,對所提出的算法與現有算法進行綜合性能評估。表3為兩種過載檢測與選擇方法結合五種虛擬機放置算法選取了10 d的Bitbrains數據進行實驗,將10 d的結果匯總取平均值。

表3 BitBrains數據集測試結果Tab 3 Test resultson BitBrainsdataset
由表3可知,在使用MAD-MMT、IQR-MC為過載檢測和選擇方法時:FMD-VMP在EC、VMM以及ESV等三個性能評價指標上的結果優于其他四種放置方法;同時在SLAV指標上,僅次于ACS-VMP放置方法。
首先對EC指標進行分析,FMD-VMP消耗的電能最少,GA-VMP的能耗表現在MAD-MMT過載檢測與選擇策略下僅略高于FMD-VMP;但使用IQR-MC作為過載檢測和選擇方法時,GA-VMP的能耗有顯著的增長,其能耗高于FMD-VMP、UPBFD以及FFD三種放置算法,這是由于GA-VMP未對能耗進行約束,且容易陷入局部最優結果,造成能耗不穩定;UPBFD與FFD也有較為優秀的節能效果,同時兩者在兩種過載檢測與選擇方法下的能耗結果都非常穩定;ACS-VMP消耗的能源在MAD-MMT以及IQR-MC過載檢測與選擇方法下均為最高的,而FMD-VMP比ACS-VMP最高節約了48.7%的能耗。這是因為最小化能源消耗不是ACS-VMP的優化目標,FMD-VMP考慮了數據中心的能耗,并對能耗進行了優化。所以,FMD-VMP有效地降低了數據中心的能耗,提高了數據中心的節能效果。
虛擬機遷移會增加網絡負載并導致性能下降,從而對數據中心的能耗以及服務質量產生負面影響[18],因此虛擬機放置方法應當盡量降低虛擬機遷移次數。在表3中,在MADMMT和IQR-MC方法下,FMD-VMP算法運行過程中產生的虛擬機遷移次數均少于其他對比算法。在使用IQR-MC方法時,FMD-VMP算法的虛擬機遷移次數為ACS-VMP算法的86.7%。由表3可知,FFD算法的虛擬機遷移次數是最多的,為FMD-VMP算法的1.8倍。綜上所述,FMD-VMP算法能夠有效地減少虛擬機的遷移次數,這是因為FMD-VMP算法考慮了物理主機在下一輪虛擬機放置前的負載變化,充分利用各項資源的同時降低數據中心的過載風險,從而減少虛擬機的遷移次數。
SLAV數值能夠有效體現數據中心的服務質量。FMDVMP的SLAV值在兩種過載檢測和選擇方法中都僅次于ACSVMP放置算法。在使用IQR-MC方法時,FMD-VMP的SLAV值比ACS-VMP高了12.16%,這是因為FMD-VMP在優化數據中心服務質量的同時,還考慮了數據中心的資源利用率以及能耗等方面的優化。經過計算可以發現,在MAD-MMT和IQR-MC過載檢測和選擇方法下,FMD-VMP方法的SLAV值比除了ACS-VMP之外的三種放置方法降低了55.67%~73.29%。UPBFD和FFD的SLAV值相對較高,因為UPBFD和FFD作為近似算法,優先將虛擬機放置到最符合當前需求的物理主機上,沒有考慮到虛擬機放置是一個負載動態變化的過程。GA-VMP算法的SLAV值雖然高于FMD-VMP和ACSVMP,但是也在一定程度上優化了數據中心的服務質量。
ESV指標能夠綜合判斷數據中心的能耗情況以及服務等級協議違背情況。由表3可知,FMD-VMP算法結合任意一種過載檢測和選擇方法,其ESV值對比其他四種放置算法均為最小值,因此FMD-VMP算法在能耗以及服務質量的綜合表現上是最優的。FFD算法的ESV值最高,其在IQR-MC策略中的ESV值為FMD-VMP算法的4.25倍。
表4為各放置方法結合MAD-MMT和IQR-MC過載檢測與選擇方法在Alibaba數據集上進行的實驗,由于Alibaba數據集數據量較大,因此選取了部分數據進行實驗,并取實驗數據的平均值。由表4可知。FMD-VMP算法在EC、SLAV、VMM以及ESV等四個指標上均取得了最優結果。

表4 Alibaba數據集測試結果Tab 4 Test resultson Alibaba dataset
EC指標代表了數據中心在運行過程中所消耗的電能,合適的虛擬機放置方法能夠減小數據中心的能耗。在表4中,以IQR-MC作為過載檢測與選擇方法時,使用FMD-VMP放置算法所產生的能耗比其他算法降低了10.97%~24.63%。這是因為FMD-VMP對數據中心資源負載情況進行了評估,提高了資源利用率,從而減少了活動物理主機的數量,有效降低了數據中心的能耗。FMD-VMP、ACS-VMP、UPBFD以及FFD的EC值在兩種過載檢測與選擇方法下都較為穩定,而GAVMP的EC值波動較大,使用IQR-MC方法比使用MAD-MMT方法增加了30.74%。這是由于GA-VMP容易陷入局部最優,導致實驗結果不穩定。
對SLAV指標進行分析,SLAV值越低說明數據中心的服務等級協議違背率越低,服務質量越好。由表4可知,FMDVMP的SLAV值最低,UPBFD與FFD的SLAV值相對較高,這是因為UPBFD與FFD在進行虛擬機放置時沒有考慮物理主機各類資源的過載風險。ACS-VMP與GA-VMP在SLAV指標上也有一定程度的優化,有利于提升數據中心的服務質量。
從表4中可以明顯看出,在虛擬機遷移方面,FMD-VMP算法明顯優于其他算法。在使用MAD-MMT過載檢測與選擇方法時,FMD-VMP的VMM值比ACS-VMP、UPBFD、GA-VMP、FFD分別降低了59.71%、55.90%、60.11%、60.49%。這是因為FMD-VMP算法通過對物理主機過載風險以及各類資源負載情況進行評估,判斷物理主機的負載狀態,減少了虛擬機遷移次數。
從表4可以發現,FMD-VMP算法的ESV指標對比其他算法有明顯的優勢。FMD-VMP在放置過程中通過評估數據中心的過載風險,來提高數據中心的服務質量,同時通過提高各類資源的利用率,來減少活動物理主機數量,從而減少能源消耗。因此ESV值遠遠小于其余對比算法。
表5為兩種虛擬機過載檢測與選擇方法結合五種虛擬機放置方法,在PlanetLab數據集上執行后得到的各類指標均值。由表可知,使用MAD-MMT作為過載檢測與選擇方法時,FMD-VMP在EC、VMM以及ESV等三個指標上優于其他放置算法;使用IQR-MC作為過載檢測與選擇方法時,FMD-VMP在EC、SLAV以及ESV指標上優于其他算法。因此,FMDVMP算法在PlanetLab數據集上具有良好的表現。

表5 PlanetLab數據集測試結果Tab 5 Test results on PlanetLab dataset
在EC指標方面,ACS-VMP算法的能耗最高,這是因為ACS-VMP算法主要對數據中心的服務質量進行了優化,導致在能耗優化方面有所欠缺;而FMD-VMP算法的能耗為ACSVMP算法能耗的60.06%,是因為FMD-VMP等算法將能耗作為優化目標之一。
FFD、UPBFD等傳統虛擬機放置算法在SLAV和VMM指標上表現較差,因為這些算法通過貪心選擇的方式,僅考慮了數據中心的能耗的優化,忽視了數據中心服務質量,從而導致VMM次數增加。而VMM次數的增加又會進一步影響數據中心的服務質量。
ESV指標是對放置算法在EC和SLAV兩方面的綜合判斷。由于FMD-VMP算法在EC和SLAV指標上均有良好的表現,因此其ESV值是最小的。而FFD、UPBFD算法盡管在EC指標上表現較好,但SLAV值過高,數據中心服務質量較差,因此ESV值也較高。由表5可知,以IQR-MC作為過載檢測和選擇方法時,FFD算法的ESV值為FMD-VMP算法的3.19倍。
為了對數據中心的服務質量進行更深入分析,圖2對PDM指標進行了對比,PDM指標衡量了虛擬機遷移導致的數據中心性能下降,圖2(a)為五種對比算法使用MAD-MMT和IQR-MC過載檢測與選擇方法,在Bitbrains數據集上得到的PDM值;圖2(b)為在Alibaba數據集上得到的結果;圖2(c)是在PlanetLab數據集上得到的PDM值,一共進行了6組實驗。
從圖2中可以看出,在六組實驗中,對比其他四種放置算法,FMD-VMP算法的PDM均值是最小的,同時PDM值的波動范圍也是最小的。這是因為PDM指標衡量的是虛擬機遷移導致的數據中心性能下降程度,由表3、表4和表5可知,FMDVMP算法的虛擬機遷移次數是最少的,從而有效降低了PDM值。
SLATAH代表每個活動物理主機的SLA違背時間,能夠更加詳細地描述數據中心的SLA違背情況[19]。從圖3的仿真結果可以看出,在Bitbrains數據集和Alibaba數據集上,FMDVMP算法在SLATAH明顯優于其他算法。這是因為FMDVMP算法通過對物理主機各類資源的過載概率進行估計,對具有過載風險的物理主機進行及時的虛擬機遷移,從而減少了物理主機處于過載狀態的時間。ACM-VMP算法在Bitbrains數據集上的SLATAH值僅次于FMD-VMP算法,但在Alibaba數據集上的表現較差;而FMD-VMP算法在三種數據集上的SLATAH值都較為穩定。這是因為Alibaba數據集對于內存資源的請求較多,對CPU資源的請求較少;而PlanetLab數據集僅包含CPU資源的使用情況,使得ACS-VMP算法無法更好地均衡資源負載。

圖2 五種算法在3個數據集上的PDM指標對比Fig.2 Comparison of PDMindicator of fivealgorithmson threedatasets
綜上所述,本文所提出的FMD-VMP算法在Bitbrains數據集、Alibaba數據集以及PlanetLab數據集上實驗結果均優于其他四種對比算法,有效地降低了數據中心的能耗,提高了資源利用率,并改善了數據中心的服務質量。
3.3.2 高效性
本節將從數據中心的內存資源利用率、CPU資源利用率和帶寬資源利用率等方面來對FMD-VMP算法的高效性進行說明。數據中心每五分鐘進行一次虛擬機整合,因此在一天之內會進行288次虛擬機整合。仿真實驗使用MAD-MMT算法作為物理主機過載檢測與虛擬機選擇算法。

圖3 五種算法在3個數據集上的SLATAH指標對比Fig.3 Comparison of SLATAH indicator of fivealgorithms on threedatasets
由于PlanetLab數據集不包含內存使用數據,因此圖4(a)和圖4(b)分別表示在Bitbrains數據集和Alibaba數據集上的活動物理主機的內存的平均利用率。從圖4(a)中可以看出,ACS-VMP在內存資源利用率上優于其余四種對比算法,這是因為ACS-VMP通過降低活動物理主機的數量提高CPU資源利用率。FMD-VMP算法的內存資源利用率在55%~80%,僅次于ACS-VMP算法,但在資源利用率穩定性方面優于ACSVMP算法。在使用Alibaba數據集時,FMD-VMP算法的結果是最優的,從圖4(b)中可以明顯看出,FMD-VMP算法的內存利用率始終保持在90%以上,遠高于UPBFD、FFD以及GAVMP算法,而ACS-VMP算法的內存資源利用率在80%~90%不斷波動,沒有很好的穩定性。
圖5展示了虛擬機整合時物理主機CPU資源利用率。從圖5(a)可以看出,在虛擬機整合前半階段ACS-VMP算法的CPU利用率是最高的并且始終保持在70%以上,而在虛擬機整合的后半階段CPU利用率逐漸下降并且曲線波動劇烈,這與圖4(a)的內存利用率情況相對應,這說明ACS-VMP算法沒能有效平衡數據中心各類資源的負載。結合圖4和圖5可以發現,FMD-VMP算法盡管在Alibaba數據集的CPU利用率上略低于ACS-VMP算法,但是在內存資源利用率方面相較于其他四種算法有較大的優勢。這表明FMD-VMP算法對于虛擬機的遷移更加高效,從而改善了物理主機的綜合資源利用率。在圖5(c)中,FMD-VMP算法始終保持在較高的CPU資源利用率上,盡管利用率峰值略低于GA-VMP算法,但其利用率波動更小,降低了對數據中心資源負載的不良影響。

圖4 物理主機內存平均利用率Fig.4 Averagememory utilization of physical hosts

圖5 物理主機CPU平均利用率Fig.5 Average CPUutilization of physical hosts
由于Alibaba數據集和PlanetLab數據集不包含帶寬數據,因此圖6為Bitbrains數據集上實驗結果。從圖6可以看出,運行不同的虛擬機放置算法所得到的帶寬平均利用率都比較低,均不超過0.08。這表明虛擬機對于帶寬的資源請求量較低。因此當虛擬機部署的物理主機數量較少時,數據中心的帶寬利用率將會升高。這也是FMD-VMP算法在帶寬利用率上取得優勢的原因。

圖6 物理主機帶寬平均利用率Fig.6 Averagebandwidth utilization of physical hosts
綜合上述實驗分析可以看出,FMD-VMP算法能夠有效保證數據中心的服務質量、降低能耗、減少虛擬機遷移。通過對數據中心相關指標的深入分析,進一步說明了FMD-VMP算法能夠提高數據中心各類資源的綜合利用率,并穩定負載降低物理主機過載風險。
本文提出了一種基于模糊隸屬度的虛擬機放置方法:首先,將虛擬機和物理主機的資源匹配度與物理主機的過載風險相結合,作為距離度量指標;然后,根據模糊隸屬度矩陣進行局部搜索,確定最優目標主機,形成最終的虛擬機放置方案。實驗結果表明,該虛擬機放置方法在降低能耗、保持負載均衡、提高資源利用率的同時保證了數據中心的服務質量。