方曉平,陳年生,郭 宇,李 琦,周 麗
(湖北師范學院 計算機科學與技術學院, 湖北 黃石 435002)
自從2007年IBM公司宣布云計算計劃以后[1],云計算已成為近幾年研究的熱點,目前已有多家企業(yè)涉足云計算領域。其中,工業(yè)界具有代表性的企業(yè)有IBM、Google、Amazon,典型的云計算實例有Google公司的云計算平臺、IBM公司的“藍云”平臺以及Amazon公司的彈性計算云[1]。云計算是一種新興的并行計算技術,它綜合了分布式處理、并行處理和網格計算等多種技術,是這些計算機技術概念的商業(yè)實現(xiàn),適合當今巨型的信息化處理需求。它租用分布在網絡中的各個主機,以收費的形式向用戶提供主機、存儲器、帶寬等網絡中的資源,并由數據中心將數據整合,提供用戶對主機、存儲器、帶寬等資源占有的解決方案。
云計算最基本的思想是通過網絡將龐大的計算處理程序自動分拆成無數個較小的子程序,再由分散在世界各地的服務器經搜尋、計算分析之后將處理結果回傳給用戶。云計算通過虛擬化技術,整合使用大量的虛擬化資源,為用戶提供平臺即服務(Platform As A Service,PaaS),軟件即服務(Software as a Service,SaaS)和基礎設施即服務(Infrastructure As A Service,IaaS)三大服務。云計算的對象是超大規(guī)模的,資源與用戶需求各異且數量巨大, “云”中任務數量是巨大的,所以系統(tǒng)每時每刻都要處理海量數據,任務調度和資源分配是云計算中的重點和難點。云計算中的資源分配和調度是云計算研究中的關鍵問題之一。
本文在介紹云計算相關概念的基礎上,描述了目前國內外關于云計算資源分配的研究現(xiàn)狀,分析了需要解決的關鍵問題,并指出了今后的發(fā)展方向。
云計算是一種新型的計算技術,目前還沒有統(tǒng)一的定義。
維基百科定義[2]:云計算是一種基于互聯(lián)網的計算方式,通過這種方式,共享的軟硬件資源和信息可以按需求提供給計算機和其他設備。
美國國家標準與技術研究院(NIST)定義[3]:云計算是一種按使用量付費的模式,這種模式提供可用的、便捷的、按需的網絡訪問, 進入可配置的計算資源共享池(資源包括網絡,服務器,存儲,應用軟件,服務),這些資源能夠被快速提供,只需投入很少的管理工作,或與服務供應商進行很少的交互。
IBM的云計算定義[4]:云計算一詞用來同時描述一個系統(tǒng)平臺或者一種類型的應用程序.一個云計算的平臺按需進行動態(tài)地部署(provision)、配置(configuration)、重新配置(reconfigure)以及取消服務(deprovision)等。在云計算平臺中的服務器可以是物理的服務器或者虛擬的服務器.高級的計算云通常包含一些其他的計算資源,例如存儲區(qū)域網絡(SANs),網絡設備,防火墻以及其他安全設備等.云計算在描述應用方面,它描述了一種可以通過互聯(lián)網Internet進行訪問的可擴展的應用程序.“云應用”使用大規(guī)模的數據中心以及功能強勁的服務器來運行網絡應用程序與網絡服務.任何一個用戶可以通過合適的互聯(lián)網接入設備以及一個標準的瀏覽器就能夠訪問一個云計算應用程序。
盡管目前云計算定義還沒統(tǒng)一,但是從中都能反映出云計算共同的含義:
1) 建立在網絡之上。云計算是以現(xiàn)有網絡為基礎,集中了分布式計算、并行計算和網格計算,為網絡中的用戶提供服務。
2) 付費使用。云計算是一種商業(yè)計算模式。它將計算任務分布在大量計算機構成的資源池(就像網絡一樣)上,使用戶能夠按需獲取計算力、存儲空間和信息服務等網絡中的資源。
3) 虛擬化。云計算的核心是資源池。通過虛擬化技術,可以將分散在網絡中的各種底層資源按照類型整合,構成一個巨大的資源池,實現(xiàn)資源的共建共享。網絡中的各種任務將會從資源池中按照某種方式獲取自己所需的資源。
4) 動態(tài)可伸縮性。云是一種商業(yè)計算模型,面向的應用和用戶每時每刻都在變化,它的規(guī)??梢詣討B(tài)伸縮,滿足應用和用戶規(guī)模增長的需要。
總之, “云”是一些可以自我維護和管理的虛擬計算資源地,通常是一些大型的服務器集群,包括計算服務器、存儲服務器和寬帶資源等。云計算將計算資源集中起來,并通過專門軟件實現(xiàn)自動管理,無需人為參與。用戶可以動態(tài)申請部分資源,支持各種應用程序的運轉,無需為繁瑣的細節(jié)而煩惱,能夠更加專注于自己的業(yè)務,有利于提高效率、降低成本和技術創(chuàng)新。
云計算是一種新型的計算模式,它從根本上改變了傳統(tǒng)的計算機服務的觀點,將在教育、交通、商業(yè)等領域廣泛應用,它具有以下特點:
1)規(guī)模大。云將分散在Internet上的云端連接起來,云端的服務器眾多,向云端發(fā)出請求的用戶數目也巨大,而向服務器發(fā)出的請求更是種類繁多、數目驚人。
2)虛擬化。云計算通過虛擬化技術將云端的資源整合,實現(xiàn)互聯(lián)網上資源的共建共享。云計算支持用戶在任意位置、使用各種終端獲取服務。應用在“云”中某處運行,但實際上用戶無需了解應用運行的具體位置,只需要一臺筆記本或PDA,就可以通過網絡來獲取各種服務。
3)高可靠性?!霸啤笔褂昧藬祿喔北救蒎e、計算節(jié)點同構可互換等措施來保障服務的高可靠性。
4)高可伸縮性。云是一種商業(yè)計算模型,面向各種應用和用戶,它的規(guī)模可以動態(tài)伸縮,滿足應用和用戶規(guī)模增長的需要。
5)按需服務,計費使用。云計算使用虛擬化技術將計算資源、存儲資源和網絡資源等各種資源整合,形成一個巨大的資源池。用戶按照自己的需求從資源池中獲取自己想要的資源,并以計費的形式向云中的資源提供商索取服務。
云服務提供商利用云計算強大的聯(lián)網能力和安全的存儲能力,向用戶提供不同的服務。根據云計算平臺提供服務的類型,可以將云計算任務分為三類:
1) 將基礎設施作為服務IaaS(Infrastructure as a Service)
IaaS將硬件設備、處理能力、存儲空間、網絡組件等基礎資源封裝成服務供用戶使用。用戶可以掌控這些基礎資源,但是不能掌控云基礎架構。提供給消費者的服務是對所有設施的利用,包括處理、存儲、網絡和其它基本的計算資源,用戶能夠部署和運行任意軟件,包括操作系統(tǒng)和應用程序。消費者不管理或控制任何云計算基礎設施,但能控制操作系統(tǒng)的選擇、儲存空間、部署的應用,也有可能獲得有限制的網絡組件(例如,防火墻、負載均衡器等)的控制。
2) 將平臺作為服務PaaS(Platform as a Service)
提供用戶應用程序的運行環(huán)境,必須使用特定的編程環(huán)境并遵照特定的編程模型。提供給消費者的服務是把客戶采用的開發(fā)語言和工具(例如Java,python, .Net等)所開發(fā)的或收購的應用程序部署到供應商的云計算基礎設施上去??蛻舨恍枰芾砘蚩刂频讓拥脑苹A設施,包括網絡、服務器、操作系統(tǒng)、存儲等,但客戶能控制部署的應用程序,也可能控制運行應用程序的托管環(huán)境配置。
3) 將軟件作為服務SaaS(Software as a Service)
針對性更強,將某些特定應用軟件功能封裝成服務,提供專門用途的服務,以租賃的形式供應用調用。提供給客戶的服務是運營商運行在云計算基礎設施上的應用程序,用戶可以在各種設備上通過客戶端界面訪問,如瀏覽器。消費者不需要管理或控制任何云計算基礎設施,包括網絡、服務器、操作系統(tǒng)、存儲等等。
云環(huán)境中采用虛擬化技術,將服務器整體虛擬化為一個資源池,由于資源的種類多、規(guī)模大,云計算資源調度成為云計算研究的熱點之一。
云計算通過虛擬機的方式進行云計算資源管理,虛擬機是一類特殊的軟件,能夠完全模擬硬件的執(zhí)行,因此能夠在上面運行操作系統(tǒng),進而保留一整套運行環(huán)境語義。這樣,可以將整個執(zhí)行環(huán)境通過打包的方式傳輸到其他物理節(jié)點上,使得執(zhí)行環(huán)境與物理環(huán)境隔離,方便整個應用程序的部署。
云計算資源調度指的是在一個特定的云環(huán)境下,根據一定的資源使用規(guī)則,在不同的資源使用者之間進行資源調度過程。目前的資源調度策略大多數是通過虛擬機級別上的調度技術結合一定的調度策略來為虛擬機內部應用做資源調度,并且調度算法過于簡單,降低了整個算法的性能,所以在虛擬機級別上采用什么算法實現(xiàn)資源調度是目前待解決的一個難題。以往的資源分配方法大都采用了預分配的靜態(tài)資源調度算法,這種算法容易造成資源的浪費;而傳統(tǒng)的優(yōu)化算法又面臨著復雜度增大的困難。因而目前云計算資源分配調度策略研究工作主要集中在人工智能算法、負載均衡和能耗管理等三個方面進行。
云資源分配問題是一類NP問題[5~6],傳統(tǒng)的優(yōu)化算法將面臨復雜度增大、計算時間增長等問題,而人工智能算法具有啟發(fā)性,能夠以學習的方式對解空間進行人工搜索,用人工智能算法可以解決此類NP問題。文獻[7~12]用遺傳算法給出了云資源的分配方案,文獻[13~14]在解決云資源分配時使用粒子群優(yōu)化算法找到了合理的解決方案,文獻[15~18]用蟻群算法成功地解決了云資源分配問題。文獻[7]將Min-Min算法與Max-Min算法融入到標準遺傳算法中,通過這個改進的遺傳的有效地解決了云計算環(huán)境中的任務調度和資源分配問題,文獻[13]利用模擬退火算法收斂速度快和可以跳出局部最優(yōu)的特性,將模擬退火的思想融入到粒子群優(yōu)化算法之中,解決了云計算資源分配問題,并使得任務的平均運行時間減少,提高了資源的使用效率,文獻[15]在云計算資源分配中采用蟻群優(yōu)化算法,表明它與傳統(tǒng)的算法相比具有更好的性能和更優(yōu)的負載均衡。
用戶對云環(huán)境下的計算資源、存儲資源和網絡資源有服務質量的要求,同時又要滿足服務器對網絡帶寬、網絡吞吐量、延遲和抖動等的負載要求,因此,在云計算中要考慮負載均衡問題是滿足用戶需求的必然[16~17,19~20]。文獻[16]使用負載自適應改變的蟻群優(yōu)化算法解決了云計算中資源動態(tài)分配的問題,提高了云計算按需服務能力;文獻[17]提出了基于負載均衡的蟻群優(yōu)化算法解決了資源分配問題,使得整個系統(tǒng)的負載都得到了均衡;文獻[19]在云計算中加入了動態(tài)的負載均衡機制,解決了異構云條件下的負載均衡問題;文獻[20]提出了基于橫向負載均衡的云計算動態(tài)任務調度算法。
云計算以數據中心為中樞,數據中心的高能耗逐漸成為一個突出的問題,尤其是隨著云計算時代的到來,更多的計算資源和存儲資源集中在云端,給能耗的高效管理帶來了更大的挑戰(zhàn)。數據中心的高能耗問題不僅造成電能的浪費、系統(tǒng)運行的不穩(wěn)定,同時也對環(huán)境造成不良影響[21]。因此對在云資源進行分配時考慮能耗優(yōu)化問題也是研究重點[22~24]。文獻[22]提出一種高效的虛擬資源分配策略,將資源分配問題建模為多目標優(yōu)化問題,通過對多目標優(yōu)化問題求解,成功地給出了資源分配方案,并有效地減少了數據中心所消耗的能量;文獻[23]定義了高效云計算的框架,提出了能量感知的資源供應和分配算法,提高了資源的利用率,降低了能量的消耗,有效地滿足了服務質量要求;文獻[24]提出了考慮不同數據中心之間相互協(xié)同的云計算資源分配算法,提高了資源的使用效率,降低了能量的整體消耗。
盡管目前已經有很多學者給出了云計算資源分配和調度問題的解決方案,但還是存在一些關鍵的問題需要解決。
云資源提供者向消費者提供服務時,在既要使資源利用率最大化的同時,又要滿足用戶的各項需求,還要兼顧負載、能耗和任務的各項特點,因而云計算資源分配和調度問題是多目標優(yōu)化問題。而目前的研究表明,很多學者往往只考慮了問題的一方面,要么站在消費者的角度使充分滿足服務質量和用戶需求,要么是站在資源提供者的角度,只考慮資源的利用率。同時消費者所要求的服務類型也是千差萬別的,云資源提供商所提供的資源也是受各種實際情況約束的。還有就是不但要使云資源提供商所提供的資源利用率最大化,同時更要使資源的消費者所花的費用也是最小的。這些都是現(xiàn)在解決云計算資源分配問題時需要解決的問題。
云計算在異構的網絡環(huán)境下,將分布在不同結構的網絡中的數據資源分配給來自不同網絡中的任務,需要克服在不同的網絡中數據傳輸和數據協(xié)議中的不協(xié)同問題。在不同網絡環(huán)境下的虛擬機互操作問題也將是云計算中需要克服的技術難點。還有在跨數據中心進行交互時產生的巨大消耗也是在不同的平臺下進行云計算資源調度問題所要面對和解決的問題。
目前的云計算都為私有云,云計算正向公共計算網發(fā)展。而在公共計算網中進行數據傳輸和資源分配,如何保證在公共計算網中傳輸的數據安全,如何讓資源調度在一個安全的環(huán)境下進行,私有云中的數據傳輸和調度算法在公有云中是否安全等云計算資源調度中的安全問題也是云計算資源調度中需要關注的重點。
對云計算的接口標準化并指定相關的交互協(xié)議,可以支持不同的云服務提供商之間進行交互,相互合作提供更強大和更優(yōu)質的服務。
動態(tài)負載均衡對分配任務工作量、提高系統(tǒng)吞吐量、加強網絡處理能力以及縮短任務處理時間起到了很重要的作用,然而由于工作節(jié)點資源運行信息的不斷變化,現(xiàn)有的動態(tài)負載均衡策略難以很好地獲得節(jié)點信息。目前云端用戶是變址的,用戶的需求也是在動態(tài)改變的,同時云資源提供商所能提供的資源同樣是動態(tài)的。
云計算中數據中心的能量消耗是非常巨大的,這些能量消耗問題不但會影響云計算中的成本,還會降低系統(tǒng)的穩(wěn)定性,而且在數據中心運行的過程中產生的高能耗將對空氣質量、氣候變化和電網的可靠性等問題造成嚴重的影響。所以,如何降低云計算中的能耗既是云計算技術發(fā)展的過程中必須面對和解決的問題,也是云計算資源分配時必須考慮的問題。
針對目前在解決云計算資源分配和調度中的遇到的問題,指明云計算資源分配算法下一步的研究趨勢。
在云資源提供者向消費者提供服務時,提供者希望提高自己資源的利用率,而消費者則關心資源的性價比。云資源分配問題實際上是資源提供者和消費者都站在自己的角度使自己利益最大化的問題,中間有很多矛盾,是個多目標優(yōu)化問題?,F(xiàn)在很多的工作主要集中在考慮能量消耗來解決云資源分配時的多目標優(yōu)化問題。
現(xiàn)在很多云資源分配算法沒有考慮異構的負載對資源的需求各異,因此要建立一個面向不同負載類型的云資源調度模型很有必要,網絡資源分配的調度算法也是如此。當前,很多云計算資源分配算法只考慮了對計算機計算資源和存儲資源的使用,而沒有考慮網絡資源的分配。而網絡資源的分配不但會影響云服務質量問題,也會影響到不同服務的需求問題,如實時性、吞吐量和系統(tǒng)利用率問題。因此,在對云資源進行分配時,網絡資源分配對服務質量和任務實時性要求的影響,也是解決云計算資源分配必須考慮的問題。尤其在云服務傳遞網絡中,網絡帶寬是影響云服務傳遞質量的瓶頸,直接影響著云服務傳輸的性能好壞。
隨著移動云計算方式正在逐步替代傳統(tǒng)的Client-Server 方式,在移動云計算網絡中,如何有效地分配云計算資源來盡量滿足移動終端對云計算服務的需求,同時使得移動云計算網絡的云計算資源利用率和系統(tǒng)收益最大,就成為當前云計算領域中一個重要的研究課題。還有一些是針對實時任務的云資源調度。在如今的網絡環(huán)境中,需要處理很多實時性的任務,需要給很多有實時性要求的用戶提供服務。
由于在云計算資源分配的過程中不但需要站在云資源提供商的角度使資源的利用率最大化,降低能耗,更要站在消費者的角度,使消費者支付最少的費用即可滿足各種服務質量的要求。而目前在處理這類問題時已經有部分學者從市場經濟中的原理出發(fā)來解決此類問題。由于經濟學中的拍賣機制對全局信息的要求較少,而且具有分布式的結構并易于實現(xiàn),基于拍賣的資源分配近幾年引起大家的關注。在面向大眾用戶的網絡環(huán)境中,研究基于信任關系的主觀信任評價方法以保證分布式環(huán)境下的用戶交易滿意度已成為一個基礎性的課題[25]。在云計算中將信任機制結合起來也將是必然。由于消費者和云計算的服務提供商在地理上處于不同的位置,所以,提供商需要將每個消費者的需求分配給網絡上分散的合適的數據中心,以滿足消費者快速的分配時間、執(zhí)行時間和回復時間。
以往的云資源分配算法很少關注資源的可靠性問題。動態(tài)提供的資源的可靠性無論對云計算基礎運營商,還是對服務運營商都是很關鍵的。
在了解云計算定義、特點和分類基礎上,本文介紹了當前云計算資源分配策略研究現(xiàn)狀,分析了云計算資源分配的研究趨勢,為進一步研究指明方向。隨著對云計算資源分配算法研究的展開,云計算技術未來將會在教育、商業(yè)、交通等更多的應用領域中發(fā)揮巨大的作用。
參考文獻:
[1]陳 康, 鄭緯民.云計算:系統(tǒng)實例與研究現(xiàn)狀[J].軟件學報,2009,20(5):1337~1348.
[2]Danielson,Krissi.Distinguishing Cloudy Computing from Utility Computing[EB/OL].http://zh.wikipedia.org/wiki/%E4%BA%91%E8%AE%A1%E7%AE%97.(2008-03-26),[2010-08-22].
[3]Peter Mell,Timothy Grance.The NIST Definition of Cloud Computing (Draft)[S].National Institute of Standards and Technology Special Publication,2011.
[4]Boss G, Malladi P, Quan D, et al.Cloud computing(IBM 2007 White Paper)[EB/OL]. http://download.boulder.ibm.com/ibmdl/pub/software/dw/wes/hipods/Cloud_computing_wp_final_8Oct.pdf.
[5]Wei G, Vasilakos AV, Zheng Y,et al.A gametheoretic method of fair resource allocation for cloud computing services[J]. The Journal of Supercomputing, 2010,54: 252~269.
[6]Hochba D S.Approximation Algorithms for NP-Hard Problems[J].ACM SIGACT News, 1997,28:40~52.
[7]Pardeep Kumar, Amandeep Verma.Independent Task Scheduling in Cloud Computing by Improved Genetic Algorithm[J]. International Journal of Advanced Research in Computer Science and Software Engineering 2012,2(5):111~114.
[8]Zhu Kai, Song Huaguang, Liu Lijing, et al. Hybrid Genetic Algorithm for Cloud Computing Applications[C].Services Computing Conference(APSCC) 2012 IEEE Asia-Pacific. Korea IEEE,2011:182~187.
[9]Zhao Chenhong, Zhang Shanshan, Liu Qingfeng,et al. Independent Tasks Scheduling Based on Genetic Algorithm in Cloud Computing[C].Wireless Communications, Networking and Mobile Computing 2009 wicom'09 5th International Conference on Beijing:IEEE,2009:1~4.
[10]Kessaci Y, Melab N, Talbi E G.A pareto-based GA for scheduling HPC applications on distributed cloud infrastructures[C].High performance computing and simulation(HPCS),2011 International conference on Istanbu:IEEE,2011:456~462.
[11]Zheng Zhongni,Wang Rui,Zhong Hai.An approach for cloud resource scheduling based on Parallel Genetic Algorithm[C].Computer research and development(ICCRD),2011 3rd international conference on Shanghai:IEEE,2011:444~447.
[12]Ge Yujia,Wei Guiyi.GA-Based Task Scheduler for the Cloud Computing Systems[C].Web Information Systems and Mining (WISM),2010 International Conference on Sanya:IEEE,2010:181~186.
[13]Zhan Shaobin, Huo Hongying.Improved PSO-based Task Scheduling Algorithm in Cloud Computing [J].Journal of Information & Computational Science , 2012,9(13): 3821~3829.
[14]Pandey S, Wu L, Guru SM, et al.A Particle Swarm Optimization-Based Heuristic for Scheduling Workflow Applications in Cloud Computing Environments[C]. 24th IEEE International Conference on Advanced Information Networking and Applications, Derth WA:IEEE,2010: 400~407.
[15]Zhu Linan, Li Qingshui,He Lingna.Study on Cloud Computing Resource Scheduling Strategy Based on the Ant Colony Optimization Algorithm[J].IJCSI International Journal of Computer Science Issues, 2012,9(5) :54~58.
[16]Lu Xin,Gu Zilong.A load-adapative cloud resource scheduling model based on ant colony algorithm[C].Cloud Computing and Intelligence Systems(CCIS),Beijing,IEEE,2011:296~300.
[17]Li Kun,Xu Gaochao,Zhao Guangyu,et al.Cloud Task Scheduling Based on Load Balancing Ant Colony Optimization[C].ChinaGrid Conference(ChinaGrid),2011 Sixth Annual,Liaoning:IEEE,2011:3~9.
[18]Song Xiangqian,Gao Lin, Wang Jieping.Job scheduling based on ant colony optimization in cloud computing[C].Computer Science and Service System(CSSS),2011 International Conference on Nanjing:IEEE,2011:3309~3312.
[19]Zhang Bo, Gao Ji, Ai Jieqing.Cloud Loading Balance algorithm[C].Information Science and Engineering(ICISE),2010 2nd International Conference on Hangzhou:IEEE,2011:5001-5004.
[20]Mousumi Paul, Debabrata Samanta, Goutam Sanyal.Dynamic job Scheduling in Cloud Computing based on horizontal load balancing[J].J Comp Tech Appl, 2 (5):1552~1556.
[21]葉可江,吳朝暉,姜曉紅,等.虛擬化云計算平臺的能耗管理[J].計算機學報.2012,35(6):1262~1285.
[22]許 力,曾智斌,姚 川.云計算環(huán)境下虛擬資源分配優(yōu)化策略研究[J].通信學報.2012,3(z1):9~16.
[23]Anton Beloglazov , Jemal Abawajy, Rajkumar Buyya.Energy-aware resource allocation heuristics for efficient management of data centers for Cloud computing[J].Future Generation Computer Systems,2012,28,755~768.
[24]Buyya R, Beloglazov A, Abawajy J.Energy-efficient management of data center resources for cloud computing: a vision, architectural elements, and open challenges[C].Proceedings of the 2010 International Conference on Parallel and Distributed Processing Techniques and Applications, PDPTA 2010,Las Vegas, ACM,2010:1~12.
[25]王守信,張 莉,李鶴松.一種基于云模型的主觀信任評價方法[J].軟件學報,2010,21(6):1341~1352.