余戰(zhàn)秋
(安徽工業(yè)經(jīng)濟職業(yè)技術(shù)學(xué)院,安徽 合肥 243000)
云計算近年來得到了業(yè)界廣泛的關(guān)注.根據(jù)應(yīng)用需求及場景不同,大量的應(yīng)用構(gòu)建在公有云或私有云之上[1]。如何對位于不同云中的資源進行基于應(yīng)用負載的優(yōu)化調(diào)度是其中的一個關(guān)鍵問題,值得深入研究。將混合云的資源供給問題公式化為如下:給定一組的請求(例如并行的任務(wù))和混合云系統(tǒng)?;旌显瓢ㄒ壮龉收系乃接性?,和假定無故障的公有,主在解決如何決定一個請求將被公共云還是私有云所服務(wù),在保障了用戶的服務(wù)質(zhì)量(Quality of Service,QoS)的情況下分配用戶請求[2]?;诖耍①Y源預(yù)測模型能夠?qū)崿F(xiàn)對于虛擬機資源的跟蹤及預(yù)測。通過預(yù)測,統(tǒng)計未來的虛擬機列表中的虛擬機負載狀態(tài),運用動態(tài)調(diào)整算法啟用新的虛擬機來申請資源或者關(guān)閉虛擬機來釋放資源,保證資源的高效利用。
將時變的CPU使用率作為一個一維隨機游動的值,其中vk表示在k時刻真實使用的占總的CPU的比重,獨立的隨機變量tk表示過程噪聲,并假定它正態(tài)分布,建立以下的線性隨機差分方程:
vk+1=vk+tk
(1)
控制器的目的是使用基于使用情況追蹤的應(yīng)用程序性能模型來計算每個虛擬機需被分配的資源量.定義a為分配給VM的CPU資源,u為測量的CPU使用率.建立資源分配模型如下:
ak+1=ak+zk
(2)
uk+1=cak+wk
(3)
其中c記為真實的使用值與分配值之間的差值,可以根據(jù)服務(wù)器應(yīng)用程序或者虛擬機而更改。獨立的隨機變量zk和wk分別表示過程噪聲和量測噪聲,并假定它們滿足正態(tài)分布:
p(z)~N(0,Q)
(4)
p(w)~N(0,R)
(5)
量測噪聲方差R在每一步或者測量時都可能會發(fā)生變化,過程噪聲方差Q幾乎肯定會改變,反應(yīng)了不同的系統(tǒng)動力學(xué)[3]。然而在這里,假設(shè)在濾波過程中它們是穩(wěn)定的。
步驟一:預(yù)測
(6)
(7)
步驟二:更新
(8)
(9)
其中,增益為
(10)
得到新的k+1時刻的最優(yōu)CPU分配方案及其對應(yīng)的誤差協(xié)方差。
在系統(tǒng)運行過程中,每一個虛擬機的狀態(tài)將被監(jiān)控.如果在一個數(shù)據(jù)中心中重載的虛擬機比例超過設(shè)定的閾值時,算法將自動租用新的虛擬機[4]。相反的,當(dāng)數(shù)據(jù)中心的空閑虛擬機比例過高,算法會退還多余的虛擬機。這種方法即使在預(yù)測并不十分準(zhǔn)確的情況下,仍可以保證一定的服務(wù)質(zhì)量并降低費用。
由云租戶分別設(shè)定兩個不同的閾值,根據(jù)所有的虛擬機查詢得到的負載信息與這兩個閾值進行比較,判斷新的資源的啟用與釋放[5]。閾值A(chǔ)與私有云中虛擬機資源的申請有關(guān),閾值B與公有云中虛擬機資源的申請有關(guān)。當(dāng)小于閾值A(chǔ)時說明私有云上現(xiàn)有的虛擬機能較好地完成用戶請求,不需要額外的申請資源。當(dāng)用戶請求數(shù)量減少,私有云中虛擬機的負載降低小于閾值B,則要申請在公有云中退還虛擬機,減少資源的浪費。
圖1 Q=10時,CPU資源使用情況與分配追蹤圖
如圖1可知,控制器追蹤CPU使用情況的變化,并實時的調(diào)整資源分配。預(yù)測算法能夠很好的實現(xiàn)對于使用資源的追蹤,并且將分配值與使用值的差值保持在一個合理的范圍內(nèi).控制器能夠針對每個瞬時的資源使用變化進行動態(tài)調(diào)整,是因為有一個較高的卡爾曼增益值,使得更加傾向于信任新的觀測值而非舊的預(yù)測值.雖然在這種方式下,控制器對于任何變化的工作負載有更快的響應(yīng),但是這可能會引起不必要的資源分配調(diào)整,使得更容易出現(xiàn)資源飽和現(xiàn)象。
圖2 Q=0.7時,CPU資源使用情況與分配追蹤圖
如圖2所示,針對上述容易出現(xiàn)資源飽和的情形,調(diào)整實驗參數(shù),來獲得對系統(tǒng)更好的理解.令Q=0.7 ,這樣會得到一個較小的卡爾曼增益,通過減少對于新的觀測值的信任,使得服務(wù)性能變得更加平穩(wěn)。
在研究虛擬化技術(shù)、云環(huán)境下的預(yù)測技術(shù)和混合云資源調(diào)度技術(shù)的基礎(chǔ)上,設(shè)計了混合云原型系統(tǒng).根據(jù)構(gòu)建的混合云模型,并提出一個調(diào)度算法,包括自動資源申請以及用戶請求響應(yīng)。運用卡爾曼預(yù)測模型,對虛擬機的資源分配信息進行追蹤和預(yù)測,并統(tǒng)計每個虛擬機的負載情況。當(dāng)云中負載過重或過輕的比重大于閾值時進行資源的申請和退還。通過使用負載均衡器實現(xiàn)用戶請求的合理分配。