周永福,徐勝超
(1.河源職業(yè)技術(shù)學院電子與信息工程學院,廣東 河源 517000; 2.廣州華商學院數(shù)據(jù)科學學院,廣東 廣州 511300)
在云計算網(wǎng)絡環(huán)境中,容器云資源的動態(tài)配置主要解決如何調(diào)用不同的資源來連接云計算終端,并在此基礎上提供可靠、高效的服務[1-2]。容器云資源動態(tài)配置的目標是實現(xiàn)各種資源在網(wǎng)絡上的有效共享。云資源規(guī)模在不斷擴增的同時,手動或人工管理資源的方式變得非常不現(xiàn)實,必須研究一種有效的管理手段,來適應云計算網(wǎng)絡負載的變化,降低資源管理人員的工作難度[3]。
在上述背景下,相關學者對資源配置問題進行了深入研究,并取得了一些研究成果,如:文獻[4]提出了一種容器云環(huán)境虛擬資源優(yōu)化配置方法,根據(jù)資源配置方案,分析物理機選取策略對資源配置能耗的影響;構(gòu)建主機利用率、容器利用率與數(shù)據(jù)資源能耗之間的關系,建立數(shù)學模型,并設置相應的目標函數(shù);根據(jù)建立的目標函數(shù),通過最佳能耗優(yōu)先物理機選擇算法實現(xiàn)資源配置。實驗結(jié)果表明,該方法在數(shù)據(jù)中心節(jié)能方面具有一定的優(yōu)勢,但是存在資源利用率較低的問題。文獻[5]提出了一種大數(shù)據(jù)環(huán)境下基于譜機器學習的云物流資源配置方法,該方法將云物流資源作為研究對象,依據(jù)多粒度理論建立云資源配置模型,并采用機器學習算法對該模型進行求解,最后通過實驗研究驗證該方法的有效性。結(jié)果表明,該方法的資源配置準確率較高,但是需要消耗大量的時間,配置效率較低。
基于以上研究背景,本文將雙層規(guī)劃應用到容器云資源動態(tài)配置算法設計中,從資源利用率和完成時間2個方面提升算法的性能。
采用動態(tài)的方式配置容器云資源時,需要先在容器云資源配置行為的應用場景中分析容器云資源動態(tài)配置決策問題[6-7],容器云資源配置行為的應用場景如圖1所示。
圖1 容器云資源配置行為的應用場景
從圖1可以看出,容器云資源配置行為的應用場景提供的中間層包括代理申請模塊和配置決策模塊,代理申請模塊是根據(jù)接收到的命令,自動執(zhí)行對容器云資源進行添加、刪除等行為操作[8];容器云資源配置決策模塊是將容器云資源的運行狀態(tài)作為輸入,根據(jù)云資源配置決策算法的設計,將云資源的動態(tài)配置命令傳輸給代理申請模塊。
根據(jù)以上描述,容器云資源動態(tài)配置決策模塊在容器云資源配置行為的應用場景中是一個核心組成部分[9-14],因此,容器云資源動態(tài)配置決策模塊在容器云資源動態(tài)配置中是一個需要重點解決的問題。先將容器云資源動態(tài)配置過程看成是一個強化學習的過程,再針對容器云資源構(gòu)建調(diào)度模型,達到容器云資源動態(tài)配置的目的。
基于容器云資源配置行為的應用場景,將中間層劃分為代理申請模塊和配置決策模塊,利用模塊間的關系,分析容器云資源動態(tài)配置決策問題。
容器云資源能否進行動態(tài)配置,決定著云計算服務的質(zhì)量。當云計算服務被多個用戶使用時,容器云資源在調(diào)度過程中就會根據(jù)不同用戶的需求,將容器中不同的云資源分配給不同的用戶[15-20]。容器云資源調(diào)度模型的構(gòu)建步驟如下:
Step1計算出容器云資源調(diào)度任務的表達式,構(gòu)建計算調(diào)度時間矩陣。
假設容器云資源參與調(diào)度任務的集合為J,P表示容器云資源的待分配集合,那么容器云資源的調(diào)度任務可表示為:
(1)
其中,Ji表示第i個調(diào)度任務,Pj表示第j個調(diào)度任務中的待分配容器云資源。
Step2求解容器云資源調(diào)度時間矩陣。
假設ETC,ij表示容器云資源的調(diào)度任務Ji在分配容器云資源Pj時消耗的時間,那么可以計算出容器云資源調(diào)度時間矩陣,表示為:
(2)
Step3求解容器云資源調(diào)度任務Ji在分配云資源Pj的最短時間ECT,ij,那么可以得到容器云資源調(diào)度任務的最短時間矩陣,即:
(3)
Step4獲取容器云資源調(diào)度所需的條件。
一般情況下,對容器云資源進行調(diào)度就是利用最短的時間解決容器云資源的調(diào)度問題[21]。令xij描述云資源調(diào)度任務是否可以獨立完成容器云資源Pj的分配,容器云資源調(diào)度任務的目標函數(shù)為:
(4)
那么構(gòu)建的約束條件為:
(5)
Step5求解容器云資源調(diào)度的目標函數(shù)。
容器云資源在執(zhí)行調(diào)度任務過程中的約束條件為:
(6)
其中,xij∈{0,1}。
通過定義容器云資源的調(diào)度任務,求解得到容器云資源調(diào)度時間,利用容器云資源調(diào)度任務的最短時間矩陣,獲取容器云資源調(diào)度所需的條件,求解容器云資源調(diào)度的目標函數(shù),構(gòu)建容器云資源調(diào)度模型。
在1.2節(jié)構(gòu)建的目標函數(shù)基礎上,為了進一步提升資源配置效果,提出基于雙層規(guī)劃的容器云資源動態(tài)配置算法。多目標優(yōu)化方法通常通過求取各目標的加權(quán)和,然后采用單目標的優(yōu)化技術(shù),實現(xiàn)目標優(yōu)化。采用該方法處理優(yōu)化問題時,會由于不同性質(zhì)的目標之間單位不一致,存在不易比較的問題,并且優(yōu)化目標僅為各目標的加權(quán)和,優(yōu)化過程中各目標的優(yōu)度進展不可操作。因此,本文采用雙層規(guī)劃方法對云資源進行配置研究。雖然與多目標優(yōu)化方法的目的相同,都是求取問題的最優(yōu)解,但是在雙層規(guī)劃模型中,該模型以對偶理論為基礎,目標函數(shù)中的一組變量被約束為另一優(yōu)化問題的最優(yōu)解,簡單來說,就是一個優(yōu)化問題的參數(shù)受限于另一個優(yōu)化問題,這2個問題相互影響。上下層的優(yōu)化問題在優(yōu)化過程中是相互輔助的,下層優(yōu)化是在上層優(yōu)化條件下實現(xiàn)的,反過來下層優(yōu)化問題的最優(yōu)反饋能夠優(yōu)化上層的目標函數(shù)。該方法可以同時考慮全局和個體的需求,從全局出發(fā),滿足不同的目標需求,并且不需要對目標進行求解,具有操作簡便的優(yōu)勢。下面通過數(shù)學公式的形式對雙層規(guī)劃模型進行描述:
(7)
其中,(A)和(B)分別表示上下層規(guī)劃;D和d分別表示上下層規(guī)劃的目標函數(shù);S和s分別表示約束條件;x和y均表示決策變量。
將雙層規(guī)劃模型引入到容器云資源動態(tài)配置中,運用雙層規(guī)劃理論來分析容器云資源動態(tài)優(yōu)化配置問題[22-23]。
容器云資源動態(tài)配置過程中包含了2個優(yōu)化目標,其一是容器云資源在每一個節(jié)點上的最大利用率,對應雙層規(guī)劃模型的上層規(guī)劃問題,其二是容器云資源在虛擬機上的最小重復配置次數(shù),對應雙層規(guī)劃模型的下層規(guī)劃問題,將其稱為最小遷移次數(shù),即:
(8)
(9)
(10)
(11)
每一個容器云資源都配置完成之后,針對容器云資源的配置結(jié)果是否合理,來對其進行進一步優(yōu)化[24-25],容器云資源動態(tài)配置結(jié)果在優(yōu)化時的目標函數(shù)為:
(12)
與優(yōu)化目標函數(shù)對應的約束條件為:
(13)
對目標函數(shù)進行求解,得到雙層規(guī)劃模式下的容器云資源進行調(diào)度的表達式為:
(14)
根據(jù)上述確立的目標函數(shù)與約束條件,給出容器云資源動態(tài)配置算法的具體實現(xiàn)步驟:
1)確定容器云資源在物理主機和虛擬機上的配置參數(shù);2)在虛擬機上建立物理主機矩陣,對容器云資源的配置狀態(tài)進行描述,配置完成,用ηij=1描述,否則ηij=0;3)設定上層目標函數(shù),即容器云資源在每一個節(jié)點上的最大利用率;4)設定下層目標函數(shù),即容器云資源在虛擬機上的最小重復配置次數(shù)[26-27];5)對容器云資源動態(tài)配置問題進行約束,若同時滿足步驟3和步驟4,則實現(xiàn)目標,若不滿足上述目標函數(shù),則返回至步驟1。
綜上所述,通過構(gòu)建容器云資源動態(tài)配置結(jié)果在優(yōu)化時的目標函數(shù),結(jié)合約束條件,設計容器云資源動態(tài)配置算法,實現(xiàn)了容器云資源的調(diào)度。
為了驗證基于雙層規(guī)劃的容器云資源動態(tài)配置算法在容器云資源動態(tài)配置方面的優(yōu)越性,引入文獻[4]方法和文獻[5]方法進行實驗測試。本次測試在CloudSim云計算環(huán)境中搭建容器云資源動態(tài)配置的實驗測試環(huán)境,網(wǎng)絡帶寬為80 Mbit/s、內(nèi)存為8 GB,操作系統(tǒng)為Windows10,并通過Matlab7.1仿真軟件對實驗結(jié)果進行處理,以此保證實驗結(jié)果的準確性。實驗所用數(shù)據(jù)來自Microsoft Azure數(shù)據(jù)集,容器云資源動態(tài)配置實驗過程中的具體的實驗參數(shù)設置情況如下:
1)容器云資源的收費標準為5 元/h;2)用戶對容器云資源的需求,模擬的是某網(wǎng)站的訪問量;3)劃分容器云資源提供的服務類型。
實驗參數(shù)的具體設置情況如表1所示。
表1 實驗參數(shù)設置
3種容器云資源動態(tài)配置算法的容器云資源利用率測試結(jié)果如圖2所示。
從圖2的結(jié)果可以看出,在容器云資源數(shù)量一定的情況下,基于雙層規(guī)劃的容器云資源動態(tài)配置算法在容器云資源動態(tài)配置方面比較均衡,說明虛擬機上的容器云資源利用率比較充分,始終在95%以上;文獻[5]的容器云資源動態(tài)配置算法的容器云資源利用率也很高,幾乎都在90%以上;而文獻[4]的容器云資源動態(tài)配置算法將動態(tài)配置任務執(zhí)行綜合能耗和截止時間作為評價目標,導致虛擬機之間的容器云資源動態(tài)配置負載無法均衡,容器云資源利用率的波動偏大。
圖2 容器云資源利用率測試結(jié)果
3種容器云資源動態(tài)配置算法的完成時間對比結(jié)果如圖3所示。
從圖3的結(jié)果可以看出,隨著容器云資源動態(tài)配置任務量的增加,3種動態(tài)配置算法的完成時間也越來越長。文獻[5]的容器云資源動態(tài)配置算法不僅改進了傳統(tǒng)方法的尋優(yōu)劣勢,還考慮了容器云資源的動態(tài)性,比文獻[4]的容器云資源動態(tài)配置算法在完成時間上短;文獻[4]的容器云資源動態(tài)配置算法存在收斂速度慢的問題,導致容器云資源配置的完成時間偏長;而基于雙層規(guī)劃的容器云資源動態(tài)配置算法將客戶需要等待的最短時間、配置任務完成所耗費用等目標作為單一的目標評價函數(shù),取得了比較好的配置效果。
圖3 容器云資源配置的完成時間對比結(jié)果
為了進一步驗證本文算法的有效性,將云資源在虛擬機上的重復配置次數(shù)作為實驗指標,對3種方法進行測試,結(jié)果如表2所示。
表2 重復配置次數(shù)對比結(jié)果
由表2中的數(shù)據(jù)可知,采用本文算法對容器云資源進行動態(tài)配置時,云資源在虛擬機上的重復配置次數(shù)較低,明顯低于文獻[4]算法和文獻[5]算法。說明本文算法達到了預期目標,即容器云資源在虛擬機上的重復配置次數(shù)最小,說明該算法具備一定的實際應用前景。
為了提升云資源的利用率,降低資源配置時間,本文提出了一種基于雙層規(guī)劃的容器云資源動態(tài)配置算法,該方法的主要創(chuàng)新點如下:
1)通過分析容器云資源動態(tài)配置決策問題,構(gòu)建了容器云資源調(diào)度模型,實現(xiàn)對資源配置問題的初步分析。
2)通過構(gòu)建雙層規(guī)劃模型,解決了傳統(tǒng)多目標優(yōu)化方法多目標之間不易比較的問題,通過上下層之間的關聯(lián),有效解決了目標優(yōu)化問題,不僅有效提升了云資源利用率,而且減少了資源配置時間。
3)實驗結(jié)果顯示,該配置算法具有較高的云資源利用率和配置效率,驗證了其應用價值。
雖然本文方法在一定程度上提升了資源配置效果,但是在雙層規(guī)劃中由于沒有考慮到資源的多樣性特點,下一步的工作是主要針對資源的多樣化特點,研究出適應不同云資源的配置方法。