張福錚 黃文琦 李果 張乾坤



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