張福錚 黃文琦 李果 張乾坤
摘 要:由于數(shù)據(jù)中心的數(shù)量以及規(guī)模持續(xù)增加,如何合理有效利用資源成為當前研究的熱點話題。為此設計一種基于OpenStack平臺的云計算資源動態(tài)調(diào)度系統(tǒng)。分析OpenStack平臺現(xiàn)有的調(diào)度策略以及虛擬機遷移技術,建立數(shù)據(jù)中心資源模型。根據(jù)多重閾值判定虛擬機遷移時機,進行目標虛擬機選取;分別為不同主體的物理資源賦予不同的權值系數(shù),計算總權重并進行排序,根據(jù)排序結果選取目的主機,以完成云計算資源動態(tài)調(diào)度。實驗結果表明,對比其他資源調(diào)度系統(tǒng),所設計系統(tǒng)數(shù)據(jù)中心不均衡度較低,且平均帶寬利用率較高,驗證了所設計系統(tǒng)的有效性。
關鍵詞:OpenStack平臺;云計算;資源動態(tài)調(diào)度;調(diào)度系統(tǒng)
中圖分類號:TN99
文獻標志碼:A
文章編號:1007-757X(2020)11-0063-03
Abstract:As the number and scale of data centers continue to increase, how to use resources reasonably and effectively has become a hot topic of current research. Therefore, a dynamic scheduling system of cloud computing resources based on OpenStack platform is designed. This paper analyzes the existing scheduling strategy and virtual machine migration technology of OpenStack platform, and establishes the resource model of data center. According to the multiple thresholds, the migration opportunity of virtual machine is determined, and the target virtual machine is selected;different weight coefficients are given to the physical resources of different entities, the total weight is calculated and sorted, and the target host is selected according to the sorting results to complete the dynamic scheduling of cloud computing resources. The experimental results show that compared with other resource scheduling systems, the designed system has lower data center imbalance and higher average bandwidth utilization, which verifies the effectiveness of the designed system.
Key words:OpenStack platform;cloud computing;dynamic resource scheduling;scheduling system
0?引言
云計算是一種新興的信息化技術,它通過軟、硬件結合實現(xiàn)數(shù)據(jù)的實時訪問以及應用[1-2]。云計算服務的存在有效簡化了信息流,同時實現(xiàn)海量數(shù)據(jù)的快速整合,為用戶提供更好的空間以及場景。
隨著科技的不斷進步以及發(fā)展,全球數(shù)據(jù)呈爆炸式增長,科技改變了數(shù)據(jù)的生產(chǎn)方式,人類的生活已經(jīng)和數(shù)據(jù)密不可分,不同行業(yè)也越來越依賴數(shù)據(jù)中存在的價值[3-4]。雖然現(xiàn)階段云計算日益成熟,但是云計算模式在給用戶帶來便利的同時也帶來了一系列問題,例如由于資源利用不合理導致能源消耗過多、二氧化碳排放量較高等問題。
相關學者對資源調(diào)度系統(tǒng)做了大量研究,文獻[5]提出基于云計算的海量微服務資源調(diào)度系統(tǒng)。采用云計算技術,設計了微服務資源調(diào)度系統(tǒng)的硬件結構和軟件實現(xiàn)流程,在調(diào)度算法設計上,采用模糊PID算法,較好地控制了資源調(diào)度中的自定義偏差,增強了系統(tǒng)的穩(wěn)定性和實時調(diào)度功能。文獻[6]提出基于BP神經(jīng)網(wǎng)絡的氣象云資源調(diào)度系統(tǒng)。利用BP神經(jīng)網(wǎng)絡學習虛擬機載量歷史數(shù)據(jù),并對其進行預測;利用預測式虛擬機載量,設計了面向多類資源的虛擬機非增序策略;采用首次適應算法對已排序的虛擬機進行云資源調(diào)度。
設計基于OpenStack平臺的云計算資源動態(tài)調(diào)度系統(tǒng),通過具體的仿真實驗數(shù)據(jù),有效驗證了所設計系統(tǒng)的優(yōu)越性以及實用性。
1?系統(tǒng)設計
1.1?OpenStack平臺資源調(diào)度策略
云數(shù)據(jù)中心資源定義的分類以及分層的方式并不是唯一的,以下將按照云計算資源映射到“計算、存儲、網(wǎng)絡”的分類標準進行建模,其中計算資源主要包含:物理服務器、虛擬服務器等;存儲主要包含:共享存儲、虛擬機等;網(wǎng)絡主要包含:交換機、路由器等。將各種不同的資源映射為用戶角度資源的一種形式,同時為用戶提供幾種典型的虛擬器服務模板進行選取,如圖1所示。
利用圖1給出數(shù)據(jù)中心資源模型[7],通過該模型能夠得到不同資源之間的相對層次關系。
以下詳細介紹不同資源實體之間的關系。
(1) 資源實體
主要是指數(shù)據(jù)中心全部相對獨立的能夠進行調(diào)度的資源。
(2) 物理服務器
它是組建數(shù)據(jù)中心的物理計算設備,各個服務器能夠提供多個不同的虛擬服務器,其中物理服務器主要包含多個CPU、內(nèi)存以及硬盤等組成。
(3) 虛擬服務器
主要是由多個物理服務器、必要的網(wǎng)絡和存儲結構組建的服務器組。
(4) 虛擬服務器集群
利用虛擬化軟件在物理服務器上形成虛擬計算平臺。
(5) 虛擬服務器集群
由虛擬網(wǎng)絡連接形成的相互隔離的多個虛擬機組成。
(6) 共享存儲
為計算資源提供較大容量的存儲空間,它能夠被所有設備應用共享。
(7) 中間件
它是一種軟件服務,組建在單一或者多個物理服務器之上,提供給用戶進行使用。
(8) 服務(應用)
軟件作為一種服務方式,組建在單一或者多個物理服務器甚至更多數(shù)據(jù)中心之上,提供給用戶的軟件服務以及集成系統(tǒng)應用。
云計算主要利用虛擬化技術對資源進行管理以及調(diào)度[8-9]。通常情況下,需要在虛擬機的宿主主機上監(jiān)控運行代理程序,采用基板管理控制器,根據(jù)智能平臺管理接口對宿主主機的狀況進行監(jiān)控管理,將服務器信息上傳給調(diào)度模塊,通過調(diào)度模塊來完成對虛擬機的管理。在計算服務系統(tǒng)中,虛擬機的數(shù)量和負載會實時變化,作為資源調(diào)度系統(tǒng)要實時進行跟蹤以及監(jiān)控,確保虛擬機資源平均分配在不同的物理機上,促使整個系統(tǒng)達到一個相對穩(wěn)定平衡的狀態(tài),降低虛擬機對資源的競爭。
以下采用CPU使用率、內(nèi)存等四維向量〈CPU,MEM,DISK,NET〉描述云計算平臺的資源池,調(diào)度策略需要兼顧四種不同的計算資源,有效避免優(yōu)化任意一類資源分配時對其他資源產(chǎn)生的影響。
當任意一臺虛擬機分配資源之后,需要通過當前資源的剩余情況對資源矢量以及負載矢量進行及時修正,這樣才能夠達到資源調(diào)度的合理性[10]。給出基于負載的資源調(diào)度策略框架圖,如圖2所示。
具體策略:列舉虛擬機集合中全部負載大于上限閾值的虛擬機;然后通過提到的實時監(jiān)測反饋均衡調(diào)度算法獲取物理資源負載最高但是并沒有超過最高上限值的物理機,最后遷移到虛擬機上,更新資源矢量以及物理機負載,給出實時監(jiān)測反饋模型,如圖3所示。
在圖3中,W代表系統(tǒng)中的權重值,根據(jù)用戶不斷發(fā)資源的請求,并且對其進行資源分配,后端服務器節(jié)點不斷向負載均衡服務器反饋現(xiàn)階段的資源負載情況[11],通過利用調(diào)度算法調(diào)整獲取當前的權值W1。
1.2?目標虛擬機選取
在系統(tǒng)運行的過程中,如果物理主機超出閾值[12-13],則能夠劃分以下兩種情況。
(1) 上限遷移觸發(fā);
(2) 下限遷移觸發(fā)。
在實際應用的過程中,需要針對不同的情況制定不同的目標虛擬機選取算法。虛擬機遷移體積的計算,如式(6)。
在選取目標虛擬機之后,就需要將目標虛擬機遷移至任意一個物理主機,OpenStack主要通過計算節(jié)點選取符合資源需求的虛擬機。
針對于上限觸發(fā)的情況,使用目標虛擬機選取現(xiàn)階段需要遷移的一臺虛擬機,主要目的是完成每一次遷移,針對目標虛擬機的選取算法都能夠確保所選取的虛擬機是最適合遷移的。
針對于下限觸發(fā)的情況,將主機中的虛擬機按照從大到小進行一一排序,根據(jù)排序結果進行目的主機選取以及遷移[14]。
1.3?云計算資源動態(tài)調(diào)度系統(tǒng)設計
綜合1.1小節(jié)以及1.2小節(jié)分析,進行云計算資源動態(tài)調(diào)度系統(tǒng)設計,給出系統(tǒng)的總體結構圖,如圖4所示。
(1) 物理層
作為整個調(diào)度系統(tǒng)的資源層,物理層主要是由控制節(jié)點以及計算節(jié)點組成,物理層能夠有確保上層服務的穩(wěn)定運行,同時物理層也是動態(tài)調(diào)度算法最關注的對象之一。
(2) 服務層
系統(tǒng)的核心部分即為服務層,通過其對物理資源進行封裝,確保系統(tǒng)硬件部分對資源的管理以及控制,同時還能夠為用戶提供虛擬機創(chuàng)建等服務。系統(tǒng)中的動態(tài)調(diào)度服務也在該層運行,確保最終資源實現(xiàn)動態(tài)調(diào)度。
(3) 業(yè)務層
業(yè)務層是整個系統(tǒng)的接口層[15-16],用戶能夠根據(jù)系統(tǒng)設定的方式對資源進行管理以及監(jiān)控,具體包含以下幾方面的功能:物理機配額查詢以及剩余資源查詢等,同時它能夠?qū)崿F(xiàn)用戶創(chuàng)建、刪除等,針對不同的用戶進行分組以及權限劃分等。
2?仿真實驗
為了驗證所設計系統(tǒng)的綜合有效性,需要進行仿真實驗測試,實驗平臺為:Pentium(R)Mobile1.73 GHz。
將所設計調(diào)度系統(tǒng)、文獻[5]調(diào)度系統(tǒng)以及文獻[6]調(diào)度系統(tǒng)分別模擬請求的虛擬機數(shù)量,對應任務的數(shù)量分別按照以下的情況進行模擬:100個到800個,分別統(tǒng)計三種調(diào)度系統(tǒng)在完成任務之后數(shù)據(jù)中心不均衡度以及帶寬平均利用率。
(1) 數(shù)據(jù)中心不均衡度/(%)
三種調(diào)度系統(tǒng)的數(shù)據(jù)中心不均衡度對比結果,如表1所示。
由表1中的實驗數(shù)據(jù)可知,所設計系統(tǒng)促使數(shù)據(jù)中心不均衡度較低,更加趨向于負載均衡的狀態(tài),但是另外兩種調(diào)度系統(tǒng)數(shù)據(jù)中心不均衡度較高,這說明所設計系統(tǒng)能夠使資源的分配達到負載均衡的目的,從而有效驗證了所設計系統(tǒng)的優(yōu)越性。
(2) 帶寬平均利用率/(%)
給出三種調(diào)度系統(tǒng)的帶寬平均利用率對比結果,如圖5所示。
分析圖5中的實驗數(shù)據(jù)可知,所設計系統(tǒng)的平均寬帶利用率均高于95%以上,而文獻[5]調(diào)度系統(tǒng)和文獻[6]調(diào)度系統(tǒng)的平均帶寬利用率在92%以下。相比另外兩種調(diào)度系統(tǒng),所設計調(diào)度系統(tǒng)的平均帶寬利用率明顯更高一些。
3?總結
IT技術的迅猛發(fā)展,促使云計算技術日益成熟,針對云計算資源動態(tài)調(diào)度系統(tǒng)存在數(shù)據(jù)中心負載不均衡、平均帶寬利用率較低等問題,設計出一種基于OpenStack平臺的云計算資源動態(tài)調(diào)度系統(tǒng)。云計算面臨的主要問題就是如何高效率、低損耗的進行資源利用,其中最為關鍵的步驟就是進行資源的調(diào)度,在需求量持續(xù)增加的情況下進行實時動態(tài)調(diào)度,確保服務的質(zhì)量,同時在需求量降低的情況下動態(tài)調(diào)度,關閉系統(tǒng)中閑置的物理機器,降低能量損耗。在未來的研究工作中,可就如何減少云計算資源動態(tài)調(diào)度時間進行更加深入的研究。
參考文獻
[1]?鄧志龍, 段哲民, 李劉濤. 環(huán)境下的資源動態(tài)調(diào)度研究[J]. 西北工業(yè)大學學報, 2016,34(4):649-654.
[2]?李達港, 李磊, 金連文,等. 基于時間序列的Openstack云計算平臺負載預測與彈性資源調(diào)度的研究[J]. 重慶郵電大學學報(自然科學版), 2016,28(4):560-566.
[3]?羅平, 王勇, 俸晧,等. 一種基于OpenStack的云計算虛擬機放置策略[J]. 桂林理工大學學報, 2018, 38(3):555-560.
[4]?齊平, 王福成, 王必晴,等. 云計算環(huán)境下基于可靠性感知的任務調(diào)度算法[J]. 計算機工程與科學, 2018,40(11):1925-1935.
[5]?郭駿, 張勇, 王琪,等. 基于云計算的海量微服務資源調(diào)度系統(tǒng)設計與實現(xiàn)[J]. 電子設計工程, 2019, 27(11):43-46.
[6]?楊立苑, 胡佳軍, 李顯風,等. 基于BP神經(jīng)網(wǎng)絡的氣象云資源調(diào)度系統(tǒng)[J]. 計算機與現(xiàn)代化, 2018,5(7):68-72.
[7]?薛濤, 馬騰. 基于資源權重最大資源利用率的動態(tài)資源調(diào)度算法[J]. 計算機應用研究, 2016,33(5):1374-1378.
[8]?肖勝. 基于云計算的智能電網(wǎng)調(diào)度系統(tǒng)設計[J]. 電源技術, 2018,42(2):288-290.
[9]?喻德曠, 楊誼, 錢俊. 云計算資源的動態(tài)隨機擾動的粒子群優(yōu)化策略[J]. 計算機應用, 2018,38(12):142-147.
[10]?周東清, 彭世玉, 程春田,等. 梯級水電站群長期優(yōu)化調(diào)度云計算隨機動態(tài)規(guī)劃算法[J]. 中國電機工程學報, 2017,37(12):3437-3448.
[11]?齊平, 王福成, 王必晴. 一種基于圖模型的可信云資源調(diào)度算法[J]. 山東大學學報(理學版), 2018,53(1):67-78.
[12]?全力, 傅明. 云計算中任務調(diào)度優(yōu)化策略的研究[J]. 計算機工程, 2018,44(8):14-18.
[13]?吳俊偉, 姜春茂. 負載敏感的云任務三支聚類評分調(diào)度研究[J]. 智能系統(tǒng)學報, 2019,14(2):316-322.
[14]?李佳, 夏云霓. 云計算資源調(diào)度問題求解的布谷鳥搜索算法[J]. 控制工程, 2019,26(1):170-174.
[15]?陳黃科, 祝江漢, 朱曉敏,等. 云計算中資源延遲感知的實時任務調(diào)度方法[J]. 計算機研究與發(fā)展, 2017,54(2):446-456.
[16]?王欣欣, 劉曉彥. 于雙適應度動態(tài)遺傳算法的云計算資源調(diào)度[J]. 計算機工程與設計, 2018,39(5):1372-1376.
(收稿日期:2020.06.08)