李春艷++王茜
摘要:在云計算平臺的資源調(diào)度過程中,需要根據(jù)資源池所承載業(yè)務平臺的負荷情況,及時調(diào)整業(yè)務平臺所分配的資源。通過對不同類型的資源進行劃分,來分析觸發(fā)不同資源調(diào)整的條件,在此基礎上探討云計算平臺不同資源下的各種調(diào)整策略,以此希望提高云計算平臺資源調(diào)度整體的效率和性能。
關鍵詞:云計算;云計算平臺;資源調(diào)度;優(yōu)化算法
中圖分類號:TP393 文獻標識碼:A 文章編號:1007-9416(2017)02-0146-02
隨著云計算平臺的規(guī)?;瘧茫絹碓蕉嗟臉I(yè)務平臺部署在云資源池上。因此在云計算平臺資源管理過程中,為提高資源的利用效率和平臺的整體運行性能,需要對業(yè)務平臺的資源調(diào)度進行動態(tài)調(diào)整。但在各種不同的情況下如何對各種資源進行調(diào)整?具體的調(diào)整策略是什么?這些是云計算平臺資源管理中需要去進一步研究的問題。
1 云計算概述
云計算是能提供動態(tài)資源池和虛擬化的下一代高效率和高可靠性的服務平臺[1]。
1.1 云計算定義
云計算的定義可以從幾個方面理解。狹義上是基于互聯(lián)網(wǎng),將各種服務器資源按照用戶的需求進行獲取。從廣義的角度上看,可解釋為基于互聯(lián)網(wǎng)獲取用戶所需的各種服務,也就是各種服務的交付使用模式。因此,可將云計算定義為一種服務模式,它是按照用戶所需要的各種服務提供相關資源,并將相關資源進行管理和調(diào)度。云計算的概念美國國家標準技術(shù)研究院(NIST)給出了定義:
云計算是一種以互聯(lián)網(wǎng)為基礎,以便捷、按照用戶具體需求的方式訪問以某種策略進行配置的資源共享池的模式。同時資源共享池盡量以較少的成本和供應商交互,快速計算、提供或回收各種資源[2][3]。云計算具有封裝性、可擴展、可靠性、容錯控制,、并行處理能力、按需服務、經(jīng)濟性等多個特點[4]。
1.2 資源池
云計算將各種計算任務分配至由大量計算資源構(gòu)成的資源池中。這些計算資源共同虛擬構(gòu)成了云計算平臺的資源池,具體包括存儲資源、計算資源、網(wǎng)絡資源。云計算的本質(zhì)是如果高效率的進行資源池的管理和調(diào)度,從而為用戶高速、安全的提供需要服務。
2 云計算平臺資源調(diào)度
2.1 云計算平臺資源調(diào)度目的
2.1.1 以降低能耗為優(yōu)化目標
大型數(shù)據(jù)中心每年消耗的電能是一個中等城市電量的好幾倍,所以降減能耗是一個非常重要的目的。
2.1.2 以提高服務質(zhì)量和資源利用率為目標
云計算的核心問題是如何將資源進行合理的調(diào)度和分配,使得用戶盡快得到所需資源進行計算服務,同時提高各種資源的調(diào)度效率,優(yōu)化資源利用率。
2.1.3 保證服務質(zhì)量Q0S
任何服務提供商衡量標準都是服務質(zhì)量Q0S[5]。對于云計算,在提供各種服務的時候也需要最大的保證Q0S,進一步體現(xiàn)云計算的優(yōu)越性。
2.1.4 虛擬化特性
云計算提供的各種資源和服務整體來說對于用戶是經(jīng)過了封裝的。終端用戶使用云計算平臺執(zhí)行各種服務,是不用具體知道具體方法[6]。執(zhí)行這些服務請求的是服務器,甚至只是虛擬出來的服務器。這種架構(gòu)對用戶來說不存在對設備的依賴,減少了使用的復雜性[7]。
2.2 云計算平臺資源調(diào)度解決方案
云計算應用核心的技術(shù)是資源的管理和調(diào)度,尤其是資源的合理調(diào)度與分配。近幾年來,針對云計算資源調(diào)度問題,相關的研究單位和研究人員也提出了許多解決方案。
2.2.1 為滿足客戶需求,完成時間最佳資源分配(CORA)問題[8]
完成時間建立客戶/工作效用函數(shù)。在資源調(diào)度時,考慮到不同工作對資源需求的異構(gòu)性和工作完成時間敏感度的不同,以客戶對工作完成時間的敏感度為效用函數(shù),以工作對資源的需求量和集群資源容量限制為約束條件,來優(yōu)化求解集群中所有工作最小效用的最大值。
2.2.2 基于博弈理論的資源分配算法[9]
①單個參與者的獨立優(yōu)化問題:使用二進制整數(shù)規(guī)劃方法處理;②多個參與者的綜合優(yōu)化問題:使用進化算法處理。
同時進化算法將優(yōu)化和公平兩個原則都考慮進去,給出較好的折衷資源分配方法。
2.2.3 基于蟻群優(yōu)化的計算資源分配算法[10]
①首先預測所有可用節(jié)點的計算質(zhì)量;
②根據(jù)云計算環(huán)境的特點,利用蟻群優(yōu)化算法得到一組最優(yōu)的計算資源。
2.2.4 一些商業(yè)的虛擬機資源管理工具[11]
如VMware Capacity Planner和IBM WebSphere CloudBurst。這種方法考慮的較多的是CPU、內(nèi)存等的相關資源分配,對于網(wǎng)絡資源方面的調(diào)度問題沒有過多的進行考慮。
2.3 云計算平臺資源調(diào)度相關算法
對于資源的調(diào)度優(yōu)化是云平臺性能優(yōu)化的重點。
2.3.1 FIFO
相對于來說,最簡單的調(diào)度算法。將用戶提交的作業(yè)全部放在隊列中,依照先進先出的方式進行調(diào)度。
2.3.2 Capacity
這種調(diào)度算法將資源平均分配給所有的作業(yè),如果這些提交的作業(yè)對于資源的需求比較相同的時候,是效率較高的,但是沒有考慮到作業(yè)的多樣性,有一定的局限。
2.3.3 Fair
這種資源調(diào)度算法,首先要根據(jù)用戶組或者其它具體情況進行綜合配置,為每個用戶組提供一個獨立的資源池,然后采用公平共享的原則對作業(yè)就行共享資源的劃分。
2.3.4 Deadline Scheduler
這種調(diào)度算法將作業(yè)規(guī)定了一個時間,在這個規(guī)定的時間內(nèi)必須完成,如果沒有完成直接回收資源。預防。
3 云計算平臺資源調(diào)度優(yōu)化方案
3.1 提高云計算平臺資源利用率的方法
對于提高一個云計算平臺資源利用率有以下兩個方法:
3.1.1 保持整個集群的所有節(jié)點都處于一種幾乎滿載的狀況
通過多隊列的調(diào)度策略,通過作業(yè)等待隊列與運行隊列的調(diào)度執(zhí)行的緩沖與配合,來保持所有的資源都在使用。
3.1.2 提高單個節(jié)點的使用效率
通過將作業(yè)以某種方式進行類型的劃分,然后依據(jù)作業(yè)的類型來分配節(jié)點資源提高單個節(jié)點的使用效率。
3.2 云計算平臺資源調(diào)度優(yōu)化方案
一個節(jié)點的計算資源有多種,考慮算法的資源的調(diào)度運行情況和實際情況,將所有的Reduce作業(yè)類型簡單分成CPU和磁盤資源依賴型。
對于作業(yè)類型的劃分有兩種模式。
3.2.1 用戶指定作業(yè)類型
用戶可以將作業(yè)依賴類型參數(shù)指定為:
CPU資源依賴型(CPU_dependant);磁盤資源依賴型(Disk_ dependant);
對于沒有指定參數(shù)的作業(yè)類型,則直接安裝原算法中指定的類型進行處理。但是這種作業(yè)配置要求用戶對于作業(yè)類型和算法要有一定的專業(yè)知識,所以對于沒有這方面知識的用戶來說比較困難。
3.2.2 作業(yè)在調(diào)度執(zhí)行程序中指定作業(yè)類型
①首先等待作業(yè)根據(jù)條件進入運行隊列,調(diào)度器選取Map任務執(zhí)行。
②將任務統(tǒng)稱為Pilot,對它進行資源分析,確定是屬于哪種作業(yè)。
通過對作業(yè)整體類型進行劃分,將一道作業(yè)分解為Map-Shuffle和Reduce-compute過程。確定作業(yè)類型的具體方式如下[12]:
(3.1)
MID、MOD、SID、SOD: Map和Reduce任務copy階段輸入和輸出數(shù)據(jù)的大??;
MTCT:Pilot任務的整個生命周期;
DIOR:磁盤I/O比率,根據(jù)這個比率的數(shù)值來對具體的作業(yè)類型劃分。
3.2.3 優(yōu)化的指定作業(yè)類型
如果出現(xiàn)數(shù)據(jù)本地化不佳的任務,需要從其他節(jié)點上下載Map任務的輸入,因此MTCT較大,根據(jù)3.2計算出來的數(shù)值很可能是CPU依賴型。但是,實際上這類型的任務以磁盤依賴型任務較多。將3.1進行優(yōu)化得出以下作業(yè)類型劃分的方式[13]:
CPU依賴型:
(3.2)
磁盤依賴型:
(3.3)
CIR、COR:Pilot任務combine輸入和輸出結(jié)果;
:參數(shù)因子,用來根據(jù)實際情況進行調(diào)節(jié);
MTET:任務執(zhí)行時間;
任務的執(zhí)行時間:MTET(MAP_TASK_EXEC_TIME)。
3.3 云計算平臺資源調(diào)度優(yōu)化算法
在多隊列作業(yè)調(diào)度中引入多級調(diào)度策略,首先為每個用戶組設置了兩個作業(yè)隊列。
①作業(yè)等待隊列。按照作業(yè)優(yōu)先級以及提交時間順序進行綜合排序,在初始化進入作業(yè)運行隊列開始調(diào)度。
②作業(yè)運行隊列。為每個作業(yè)隊列分配一定的資源配額,配額管理方法與Capacity調(diào)度算法一致。運行隊列還可分為可共享型隊列和非可共享型隊列兩類??晒蚕硇完犃兄械馁Y源配額回收中加入了搶占共享機制。
依據(jù)作業(yè)類型的特點和需求,在云計算資源歸一化的基礎上,實現(xiàn)資源調(diào)度的優(yōu)化。其中算法流程圖如圖1。
本文重點研究與分析了各種不同的資源管理調(diào)度方法、同時充分考慮云計算平臺運行的實際情況,針對不同的資源分析觸發(fā)這些資源調(diào)整的條件,并提出具體算法。此外,針對算法如何更加優(yōu)化,比如,資源搶占、防止乒乓效益等,這也是云服務提供商非常關心的問題。因此,資源分配策略的不斷改進和優(yōu)化,需要更多的研究和探索。
參考文獻
[1]李喬,鄭嘯.云計算研究現(xiàn)狀綜述[J].計算機科學,2011,38(4):30-35.
[2]S. Ghemawat,H.Gobioff, S.T.Leung.The Google File System. Communications of the ACM. Volume 37,Issue 5,pp.29-43,2003.
[3]L.A.Barroso J.Dean U.H lzle.Web Search for a Planet:The Google Cluster Architecture.IEEE Micro.Volume23,Issue 2,pp. 22-28, 2003.
[4]吳朱華編著.云計算核心技術(shù)剖析[M].北京:電子工業(yè)出版社,2011:79-82.
[5]趙立威,方國偉.讓云觸手可及微軟云計算實踐指示[M].北京:電子工業(yè)出版社,2010:153-155.
[6]韓建民,鹿玲杰.資源調(diào)度機制在計算機控制系統(tǒng)中的應用.計算機應用[J],2013,41(2):5-6.
[7]I.Menken, G.Blokdijk. Cloud Computing Virtualization Specialist Complete Certification Kit - Study Guide Book and Online Course. Emereo Pty Ltd. 2009.
[8]何福貴,侯義斌.基于有限優(yōu)先級的動態(tài)調(diào)度分組算法.北京工業(yè)大學學報,2013,34(8):11-12.
[9]張鵬飛.云計算數(shù)據(jù)中心調(diào)度算法研究[J].電子世界,2014(3):3-66.
[10]林偉偉,齊德昱.云計算資源調(diào)度研究綜述[J].云計算資源調(diào)度研究綜述,2012(10):127-134.
[11]C. Guo, G. Lu, et al. Secondnet: A data center network virtualizat ion architecture with bandwidth guarantees[C].The 6th International Conference, USA ,December 2010,1-12.
[12]HIEU B T,NOBUYAMA E. A local voting method by scanning high-confidence level voters for vanishing point detection[C]/ /Proc ofSICE Annual Conference.2011:790-795.
[13]何一舟.MapReduce的性能分析與優(yōu)化[D].武漢:華中科技大學,2011:68-74.