徐勝超 熊茂華 葉力洪
(廣州華商學院數據科學學院 廣州 511300)
在云平臺環境下,虛擬機的部署方法限制條件較多,包括通信限制以及硬件體系結構限制,這些限制使得部署的難度增加,部署效果越來越差[1~2]。為提高部署的成功率,國內外眾多學者開展相關研究[3~4]。
文獻[5~7]提出智能算法優化的虛擬機整合算法,并根據CPU利用率和可靠性狀態對主機進行了優先級排序,但是該方法的任務執行時間較長,資源利用率也不理想。文獻[8]提出基于全局優化理論完成虛擬機集群的部署,根據預設的虛擬機屬性判別函數,對虛擬機資源執行升序排列,進而選取升序集合中心位置的虛擬機作為聚簇起點,根據動態規劃策略從兩個方向開始進行聚簇,但該方法受到硬件架構影響。目前大部分文獻并沒有解決虛擬機部署中資源利用不充分的問題。為此本文提出一種基于感知負載的虛擬機集群部署算法。通過實驗證明,此次研究的基于負荷感知的部署算法較傳統算法應用效果好,滿足云平臺下的虛擬機集群部署需求,可實際應用意義強。
在對虛擬機集群部署之前,對資源性能描述,轉化虛擬機初始分配為裝箱形式問題,保證物理主機與虛擬機之間屬于一對多映射[9]。
首先對虛擬機內資源性能進行判斷。一般虛擬機內的資源都是根據上層負載的變化情況進行分配的物理資源,由于系統中負載是動態的,其資源分配也是動態變化的,其主要的目的就是為提高平臺中的所有物理資源的整體利用率。本文利用基于SVD(Singular Value Decomposition)奇異值分解的系統性能預測模型對一段時間內的虛擬機資源的性能進行判斷。根據上述標準化處理的結果預測虛擬機資源性能,其計算過程如下。

圖1 基于SVD的系統性能預測模型
根據上述對虛擬機資源的性能進行預測,其計算過程如下。
將數據導入線性模糊模型,同時通過奇異值分解模型分解得到更加完善的去模糊模型。

式(1)中,U為左奇異向量矩陣,V為右奇異向量矩陣,S為奇異值矩陣,其中U和V都屬于正交矩陣。削減誤差對資源性能預測的影響,得公式如下:

式(2)中,σi為奇異值矩陣對角線上的奇異值;b為誤差;μiT為正交矩陣;vi為右奇異向量;i為樣本數量。基于已有的研究結果,選取處理器(CPU)、磁盤存儲(Storage)、內存(RAM)、和帶寬(BW)這四個最獨立且對性能影響最大的參數作為實例,全面確定虛擬機與物理主機之間的匹配方式。在資源性能預測的中,需要對虛擬機和物理主機的性能進行標準化比較,就需要統一物理主機和虛擬機的性能參數[10],即虛擬機資源性能和奇異值分解的結合,標準化處理。其計算過程是:

以CPU為例,HCPU_available代表該機器中CPU的可用量,HCPU_all代表該資源池中CPU 的總量,HCPU_reserved代表CPU的留置量。至此完成前期準備工作,開始進行虛擬機部署。
根據以上資源性能描述,選擇一個虛擬機。虛擬機遷移觸發后,多個虛擬機同時處于工作狀態,遷移虛擬機需要進行合理選擇,降低成本以及資源浪費[11~13]。
在虛擬機選擇過程中,需要分析兩者之間的關系,如果兩者之間的相關性較低,表示虛擬機遷移對物理主機的影響較小。
基于上述分析,對待遷移過程中的物理主機與虛擬機的相關系數r進行計算,對所得結果進行排序,具體計算方式如下所示:

式(3)中,xi代表虛擬機在啟動至i時刻的資源利用率;yi是物理主機在啟動至i時刻的資源利用率。
除前面提到的虛擬機和物理主機之間的關系之外,內存和帶寬資源的負載也需要被考慮[14~15],原因是隨著虛擬機遷移時間地不斷延長,服務質量也會逐漸下降,而系統質量卻需要不斷提高,因此需要充分結合虛擬機內存與寬帶之間關聯性t。本文采用負荷感知法進行計算。其公式如下:

式(4)中,Mm代表虛擬機的可用內存;Bb表示物理主機的內存;Mj代表虛擬機j的內存。
在觸發虛擬機遷移時,除了加權虛擬機資源使用外,物理主機之間資源權值比不同,需要進行加權處理,并且對加權的虛擬機資源進行使用,計算資源利用權重,待遷移虛擬機最佳狀態尋找方式如下所示:

其中,a=Wc(ac-rc) ,b=Wb(ab-rb) ,n=Wn(anrn)分別代表虛擬資源權值參數其能夠根據物理主機資源利用率的情況,對相應資源設置相應的權重,ac,ab,an為虛擬資源總量;rc,rb,rn分別代表當前物理主機剩余資源的一般數量;Wc,Wb,Wn為資源相對值。
依據上述權重計算結果對物理主機排序,在排序過程中,對集群進行構建,在構建時需要考慮網絡特性與其負載情況,合理分析虛擬機集群的集群流程和部署流程,從而減少虛擬機部署過程中對資源的爭奪。對物理主機上的虛擬機進行排序,根據排序后的優先級對虛擬機進行動態遷移,其公式如下:

r,t,e分別表示虛擬機與物理主機的相關系數,虛擬機內存與寬帶之間關聯性,物理主機之間資源權值比。基于上面公式得到的值,排序虛擬機隊列,隊列頭部遷移完成后,與頭部閾值相比,當物理主機閾值較低時,停止虛擬機遷移。完成遷移之后,物理主機閾值如果仍然高于第一個,需要重新選擇要遷移的虛擬機。
在上述工作處理完成的基礎上,對云計算虛擬機集群部署,主要的部署過程如圖2所示。

圖2 虛擬機集群部署流程
為驗證此次研究的基于負荷感知的虛擬機集群部署算法在實際場景中的應用效果,設置實驗環境進行實驗,并將傳統算法與其對比,對比兩個部署算法的有效性。
此次設置的實驗硬件環境中,共包含22 臺物理主機,其中20 臺是虛擬機主機(酷睿i7,六核臺式機,Win10的64位操作系統,硬盤500G),一臺能對物理節點部署,一臺能對虛擬機映像文件進行存儲與共享,交換機為華為千兆交換機,路由器為華為AX3路由器,試驗物理環境如圖3所示。

圖3 實驗物理環境
在實際的部署過程中,需要保證實驗中網絡的性能穩定性,因為在實驗中,需要及時地傳輸大量的監控信息。本文利用千兆交換機將20 臺虛擬機主機與一個單獨的局域網相連接,IP地址均為獨立狀態。
將CentOS6.0 操作系統安裝在1 個管理節點和20 個計算節點上,然后在20 個計算節點上以源代碼模式安裝Xen4.1.2,在這一過程中不需要安裝監視器,最多同時運行3 個虛擬容器,虛擬集群最大規模為60 個節點,六核平均分給3 個虛擬節點,即每個節點平均分配到2 個核。從而完成虛擬化平臺的構建。實驗過程中主要的對比結果如下內容所示。
通過CentOS6.0 操作系統統計部署時長,對比此次研究的系統與傳統的系統的虛擬機集群部署時間,對比結果如圖4所示。

圖4 不同權重下任務執行平均時間對比
由上圖可以看出,本文方法任務完成時間最短,并且受到部署數量的影響較小,而傳統算法在部署數量較多時,并且需要較長的時間,應用效果沒有本文所研究方法效果好。這些結果表明本文提出的部署方法優于傳統方法,這是因為本文方法可讓虛擬機對虛擬機需要的資源類型賦予更大的權重,從而獲得更多類似資源。
每個部署在虛擬機上的批數不同都會影響虛擬機的失效率,這主要由于在將虛擬機部署到虛擬機上后,同時執行命令的全部是虛擬機,所以每批虛擬機占用的虛擬機資源越多,失效率就越高。
在這個實驗中,假定每批中有10 個虛擬機可以執行。允許每批虛擬機執行15、20、25 和30 次。如果每批虛擬機數達到35 時,系統將發生異常,并且將放棄執行該批中尚未部署的所有虛擬機。在實際應用過程中,應該控制每個虛擬機能夠執行命令的虛擬機數量。得出虛擬機部署失敗次數,詳細的比較結果如圖5所示。

圖5 虛擬機部署失敗次數對比
分析圖5 發現,在每批少量虛擬機執行時,本文的部署方法與傳統方法的失敗次數相應減少,但是隨著虛擬機工作數量的增加,兩個方法的失敗發生率也相應增加,但資源利用率較高。對比可知,在虛擬機執行數量不斷變化的背景下,本文的部署方法的部署失敗次數都比傳統算法少,說明本文的部署方法受虛擬機數量的影響較小,均能獲得較好的應用效果。
綜上所述,本文的部署方法獲得了較好的應用效果,原因是本文的部署方法預先分析了虛擬機的資源性能,然后從多個角度對虛擬機進行了選擇與排序,從而保證集群部署的合理性,提高了部署效果。
本文完成虛擬機部署方法的設計,通過本文研究的虛擬機部署方法能提高部署成功率,并且充分滿足方法設計的需求,通過本文的部署方法能為相關領域提供幫助。但由于研究條件有限,本文的部署方法仍存在一些需要提升的地方,如虛擬機的在線遷移、安全等方面,希望在以后的研究中在對其他方面多一些思考,進一步提高應用效果。