劉清 喻學明 周結華 程士廣
(中國西安衛星測控中心 西安 710043)
在云計算中心提供資源服務過程中,通常會面臨各宿主服務器實際資源利用率動態波動的問題,需要對其資源進行必要的動態調度。高斯過程是一種服從正態分布的隨機過程[1~2],可作為聯合正態分布的無限維廣義延伸[3~4]因數學期望是一常數進而被核函數完全定義[1,5]。高斯過程具有邊緣分布性質,主要應用于各領域的建模和預報,可以結合先驗知識對數據做出有效的預測,特別是在時間序列分析中應用場景中可較好地解決時間序列多步前向預報問題[6~7]。云計算中心基礎資源的性能數據是典型的時間序列,可利用高斯過程在時間序列多步前向預報方面的優勢,對云資源使用趨勢進行提前預測,并基于此預測動態遷移各虛擬機在宿主服務器中的部署,以達到均衡各服務器負載和提高服務質量的目的。本文選擇高斯過程算法作為云資源預測模型,并優化核函數的加速計算方法和核矩陣求逆的時間復雜度,確定σ和l 兩個超參數最優取值,有效解決模型計算開銷呈非線性增長問題,對云資源使用時序趨勢做出有效預測。基于此預測得到待遷移的虛擬機和目標服務器的關聯關系,并通過特定的方法完成虛擬機到目標服務器的遷移工作,以實現提升云計算中心服務質量、均衡資源負載和降低運行成本的目的。
時間序列趨勢主要分為趨勢或長期動向、季節性變化、周期性變化和無規則變化[8],時序模型具有時間上的單項有序性和局部性,使得觀測值可衍生自歷史的觀測值,其周期性和趨勢性變化可被回歸模型較好地預測[8~10]在云計算中心,性能數據是典型的時間序列,可通過性能監控獲得。其中,趨勢性變化主要受業務增長影響,周期性變化則主要體現在由工作日、晝夜交替所引起的變化。因此可選擇回歸模型對云計算中心的資源使用情況進行提前預測,并基于此預測結果完成云計算中心資源動態調度
該動態調度主要涉及三個階段:
1)預測資源時序趨勢:設計回歸模,基于使用數據預測資源使用的時間序列趨勢。
2)確定遷移關聯關系:基于預測結果和特定的匹配規則,得到待遷移虛擬機與目標服務器的較優對應關聯關系。
3)完成虛擬機的遷移:根據關聯關系,采用一種基于內存頁混合拷貝的高效可靠方式將選定虛擬機遷移到目標服務器,并關閉其在源服務器中的運行和釋放其占用的相關資源。
高斯過程,是無參數化模型,基于聯系和相關性的普遍存在這一哲學理論基礎,可以得到新數據的有效預測值。高斯過程回歸,是使用高斯過程先驗對數據進行回歸分析的非參數模型[11],采用徑向基函數(RBF)作為協方差函數,能直接輸出關于預測點值的概率分布,在時間序列分析領域能得到比較好的正則化效果。
本文使用高斯回歸過程作為時間序列的預測模型。對回歸模型式(1):

高斯過程回歸取f(x)函數空間的先驗為高斯過程,表示為0 均值高斯過程,經推導可得高斯過程回歸的預測形式為式(2)[11]:

其中,X={X1,X2,…,XN},Y={y1,y2,…,yN},為給定N組學習樣本。
高斯過程回歸使用高斯過程作為先驗,核函數通常選擇徑向基函數(RBF)作為協方差函數描述了學習樣本間的相關性,預測結果與核函數有密切聯系。
核函數的選擇要求滿足Mercer定理,可選擇核函數為徑向基函數核,表示為式(3):

式中,,l 為RBF核的超參數,表示其帶寬和特征長度尺度。
可從核函數選擇和核矩陣求逆計算優化兩個方面引入核函數計算的加速方法進行算法的優化改進,并探討σ和l兩個超參數的最優取值情況。
由模型推導部分可知,高斯過程回歸要求計算核矩陣的逆矩陣式(4):

非參數模型特性決定了,每次的推斷都需要對所有的數據點進行矩陣求逆,若使用Cholesky分解求逆將導致n個樣本點時間復雜度大概是O(n3)[12],空間復雜度是O(n2)[12],難于適用于大量樣本的計算場景。
一方面,由于高斯過程回歸可基于少量學習樣本給出回歸問題的可靠估計,因此可考慮從學習樣本中合理選擇一個微分熵最大的子集,在不對估算造成明顯影響的前提下降低核矩陣的大小(m*n),另一方面,可將核矩陣近似為一系列低秩矩陣的乘積以簡化求逆計算。此過程的計算復雜度為O(m2n)[13],達到減少計算的目的,在m 取小值時能夠簡化計算。
由于本質上決定了樣本點相似性的度量方法,核函數會影響到了整個函數的概率分布的形狀,超參數l的變大將會導致函數更加平滑和訓練數據點之間預測方差的變小,超參數σ則直接控制方差大小。
要使得式(1)中y 出現的概率最大化,可通過最大化邊緣對數似然,得到核函數參數σ和l 最優的取值[14]。
通過具體優化實驗可得最優取值為:l=1.2,σ=0.8時最優。
在通過預測模型獲得云計算中心資源使用預測情況下,可探討對虛擬機進行必要遷移的時機和規則,以及確定待遷移的虛擬機和目標服務器。
要確定遷移條件,需要提前定義資源負載的上、下門限閾值以均衡服務器的資源負載,定義服務器資源告警梯度以觸發遷移,定義遷移優先級以避免遷移導致的擁塞和網絡風暴問題,并需要對預測值進行必要的濾波以避免因預測結果的突變而引起的遷入頻繁抖動問題,如見表1所示。

表1 遷移條件定義表
其中,為避免因預測結果的突變而引起遷移抖動,要求將持續時間小于30m的變化視為干擾進行平滑處理。資源負載門限有上、下兩個閾值,告警有紅、黃、綠三個梯度,遷移操作有1 至4 個優先級。當服務器因故障而出現紅色告警時,觸發優先級為1 級的應用遷移;當服務器資源負載超出門限上閾值而出現紅色告警時,為提升服務質量而觸發優先級為2 級的優化遷移;當服務器資源負載超出門限下閾值而出現黃色告警時,服務器資源利用率過低,需要觸發遷入以提高資源使用效率,或者遷出虛擬機以釋放服務器占用,以達到提高云計算中心資源利用率。遷入接受對象是告警為綠色梯度的正常工作服務器。
宿主服務器上通常會運行多個虛擬機,當遷移觸發時,需要根據告警梯度、遷移優先級、資源調整效果、遷移開銷等因素對虛擬機群進行綜合評估,從而找出最佳的遷移關聯關系。
在評估遷移關聯關系時,假設服務器的因素向量s=[資源負載,濾波條件,告警梯度,優先級,…],進行模糊化處理后可得服務器函數為式(5):

其中,si為第i個服務器的因素向量輸入。
假設虛擬機的因素向量v=[重要度,資源占用大小,遷移開銷,遷移加權,…]',進行模糊化處理后可得虛擬機函數為式(6):

其中,si為第i個服務器的因素向量輸入。
在進行關聯處理時,要滿足以下原則:
1)滿足告警梯度和遷移優先級的響應原則;
2)待遷移虛擬機占用資源大小與觸發遷移服務器期望資源大小匹配,且滿足貪心算法原則,以盡量避免對虛擬機業務的中斷影響。
3)遷移開銷最小化原則,降低遷移導致的能耗和網絡開銷。
4)虛擬機的遷移加權原則,將多次遷移,或者不太活躍的虛擬機設置較高的權重系數,盡量將虛擬機客戶的不滿意率降到最低。
將服務器函數Si 與虛擬機函數Vj 聯合求解可得遷移關聯函數為式(7):

從而可以得到遷移目標服務器與待遷移虛擬機之間的對應關系。
虛擬機動態遷移本質上是處理待遷移虛擬機與相關宿主服務器的資源占用轉移,主要涉及存儲、網絡關系、虛擬機內存等狀態。其中,對于存儲,因NAS 等共享存儲設備的廣泛使用,數據中心內的虛擬機遷移能夠避免遷移磁盤存儲的操作;對于網絡關系,數據中心內的局域網環境,能夠通過ARP廣播方式實現網絡連接的遷移。
因此,虛擬機內存等狀態將成為遷移的關鍵內容,相關研究文獻提出了虛擬機遷移的原則,并通常劃分為推送復制(push)、停機拷貝(slop-andcopy)、按需復制(pull)三個階段[15]。其中,也有文獻[16~17]綜合考慮現有遷移方式中存在的問題,提出一種更高效可靠的基于內存頁混合拷貝方式的虛擬機在線遷移技術。
為避免虛擬機在目標節點的缺頁問題,提高虛擬機遷移后重啟階段在宿主服務器本地對內存數據和vCPU 狀態的優先命中率,可在虛擬機內存狀態遷移的起始階段就采用內存頁的迭代拷貝設計,以降低虛擬機遷移失敗的風險和減少遷移總時間,進一步提保障云計算中心的服務質量。遷移流程如圖1 所示。

圖1 虛擬機遷移流程示意圖
整個遷移流程,首先在虛擬機正常運行情況下,將某一時刻虛擬機的內存數據保存并迭代拷貝至關聯服務器;然后掛起虛擬機,并將此刻該虛擬機的vCPU 狀態拷貝至關聯服務器;最后在關聯服務器本地命中拷貝的虛擬機內存數據和vCPU 狀態,命中成功后啟動該虛擬機,命中失敗時向源服務器發送缺頁請求。對于源服務器,如果在設定時間內沒有收到目的服務器發送的異常請求,則表明遷移成功,可終止遷移的虛擬機運行和釋放其占用的相關資源。
在實驗中,基于我國自主知識產權的燕云管理平臺,部署9 臺服務器模擬云計算中心環境,設定觸發遷移的相關條件參數取值定義如下表2所示。

表2 遷移觸發參數表
將對資源利用率預測結果作為下一次調度開始之前以時序頻率為間隔的一系列預測數據點,選擇高斯過程回歸作為預測模型定期進行云計算中心資源使用情況的時序預測,并根據具體需要預測的步數,代入上面得到的模型公式(2)對未知參數進行估計,使得平均絕對誤差或殘差平方和最小化,計算出預測結果。
實驗對選定的某服務器X 的CPU 實時利用率為負載表征,將00:00 至23:59 資源利用率數據離散記錄為151 個數值。分析預測結果,最終得到預測結果與實際觀測值的對比如圖2所示。

圖2 高斯過程回歸模型預測結果示意圖
上圖所示的預測結果示意圖中可知,選擇的試驗服務器X 的CPU 資源預測數據與觀測數據基本一致,雖然存在一定波動情況,但可以看出預測模型預測值與實際觀測值之間擬合度較好,基本可以達到對資源利用率進行預測的初始目的。
對整個實驗環境的9 臺服務器,采用本文動態資源調度技術前后在線的服務器數量也呈現明顯變化,如圖3所示。

圖3 服務器在線對比果示意圖
由上圖4 可知,采用本文動態資源調度技術前9 臺服務器均24 小時在線提供基礎資源服務。采用本文動態資源調度技術后,在資源使用高峰時需要9 臺服務器均在線,以滿足資源使用的峰值需求;而在資源使用低谷時,通過虛擬機的在線動態遷移,只需3 臺服務器在線提供資源服務即能滿足客戶的資源使用需求,另外6 臺空閑服務器可關閉以節約成本。
基于預測結果和預先定義的遷移觸發條件,進行動態資源調度遷移。采用上述相同的統計方法,對服務器X 動態資源調度場景下的CPU 資源占用情況進行采集,并與之前同時段24 小時觀測的值進行對比,如下圖4所示。

圖4 服務器X資源使用對比果示意圖
由上圖可知,原服務器X 的CPU 資源使用率,隨著上下班等周期因素的影響而出現從25%到95%的較大范圍波動,平均為58%。采用本文動態資源調度技術后,服務器X的CPU資源使用率平均為85.16%,其曲線能夠保持相對平穩。這樣,既能保證較好的資源服務質量,又能充分發揮服務器的使用效率。
隨著趨勢的周期變化,基于資源使用時序預測結果,動態遷移虛擬機使得客戶對云計算中心提供的資源服務有較好的滿意度,同時通過釋放空閑服務器使得服務器資源使用率提高147%左右。
云計算中心的資源,使用呈現典型的時間序列變化的周期特征,可使用回歸模型對其進行提前的預測,并基于對預測結果的分析處理和特定的虛擬機遷移觸發規則,動態調度資源的使用。一方面,基于對云計算中心資源使用預測模型的探討,選擇高斯回歸算法作為基礎模型,并從核函數計算加速以降低了計算的時間復雜度,確定σ和l 兩個超參數分別取值為1.2 和0.8 時高斯過程回歸模型推薦效果最優。另一方面,當預測結果觸發虛擬機遷移時,采用內存頁混合拷貝方式的虛擬機在線遷移技術,動態調度資源的使用,使得提供資源服務的服務器資源利用率能夠比較穩定的維持在85%左右。本文研究,通過優化后的高斯過程回歸模型能直接輸出較好的云計算中心資源利用率預測,并基于此預測結果進行云計算中心內部的統一資源動態調度使用,將資源率用率提高147%左右,達到了保障資源服務質量和節約資源成本的目的,為云計算中心建設提供了一個參考方法。