摘 要: 基于因特網平臺研究云計算受到地理位置、網絡環境等因素的諸多限制,因此采用云計算模擬器研究云計算具有重要意義。主要介紹了3種現有的云計算數據中心資源調度模擬器CloudSim、CloudAnalyst和CloudSched以及基于這3種模擬器的資源調度算法,最后介紹了云計算模擬器的研究熱點。
關鍵詞: 云計算;云計算模擬器;資源調度
隨著云計算的飛速發展,云數據中心的規模和密度日益增大,這給云數據中心的管理帶來了諸多值得研究的問題,例如如何集中管理和動態使用數據中心里的虛擬機,以提高云計算的彈性和靈活性,從而降低運營成本,改善服務質量并降低管理風險;如何幫助用戶構建動態、靈活、高效、適應業務增長的云計算基礎架構,使企業在不增加運營成本的同時,保障業務的可持續發展。如果在真實的因特網平臺上對這些問題展開研究會極其困難,也不現實,因為它需要考慮應用程序的開發者無法控制和處理的網絡基礎設施和環境。由于開發者無法對網絡條件進行準確地預測或控制,這將最終影響策略的評價質量。
基于上述原因,如果想要對云數據中心資源調度等問題進行研究,可以通過建立模擬器的方式來解決。現有的云計算模擬器主要有CloudSim、CloudAnalyst和CloudSched 3種。通過這3種模擬器,可以進行一些資源調度算法的研究,從而可以找到降低云數據中心的運營成本的有效解決方案。
1 云計算模擬器介紹
1.1 CloudSim模擬器
1.1.1 CloudSim簡介
CloudSim是Buyya云計算研究小組研制的云計算仿真軟件,由澳大利亞墨爾本大學的網格實驗室和Gridbus項目在2009年正式宣布推出。它是通用的和可擴展的云計算模擬框架,支持模擬云計算基礎設施和管理服務。CloudSim具有以下功能[1]。
(1)支持大規模云計算環境的建模和仿真,包括在單一物理計算節點上的數據中心。
(2)獨立的云模擬平臺,可以對數據中心、服務代理、部署和分配策略進行建模。
(3)支持多個模擬系統之間的網絡連接的仿真。
(4)可用的虛擬引擎,有助于在一個數據中心節點上創建和管理多個、獨立和協同的虛擬服務。
(5)可以在時間共享和空間共享的處理虛擬服務的CPU核心之間靈活的切換。
1.1.2 CloudSim體系結構
CloudSim體系結構如圖1所示。共分為4層,從下到上分別是SimJava層、GridSim層、CloudSim層和UserCode層。
SimJava是離散事件仿真引擎[2],通過更高級的仿真框架才能實現其功能。GridSim工具包支持高層次軟件組件用于多重網格基礎設施和網格的資源、數據集、工作量跟蹤及信息服務等組件的建模。CloudSim通過擴展GridSim來支持以虛擬云為基礎的數據中心環境。云供應商想要研究其主機分配不同策略的效果,就需要在該層通過編程擴展核心虛擬機的配置功能實現分配策略。UserCode層提供了關于主機、虛擬機、應用、用戶及應用類型和代理調度策略的配置相關功能的代碼。云程序開發人員可以在該層開發用戶需求分布、應用的配置和云可用性場景,并執行CloudSim支持的以定義云配置的Robust測試。
CloudSim有Cloudlet、DataCenter、DataCenterBroker、Host、VM和VMScheduler等幾個重要的類[3],了解各個類的參數和作用,對研究云計算調度算法具有重要意義。例如,DataCenterBroker實現了用戶任務到虛擬機的映射;VMScheduler類實現虛擬機的調度策略,主機是采用時間共享策略還是空間共享策略把CPU分配給虛擬機。用戶也可以使用自己的策略來覆寫該類,從而完成主機對虛擬機的CPU分配。
1.2 CloudAnalyst模擬器
1.2.1 CloudAnalyst簡介
CloudAnalyst[4]是基于CloudSim開發的可視化模擬器。同樣是由Buyya云計算研究小組開發的云計算仿真軟件。開發CloudAnalyst的主要目的是在當前配置下,實現各個用戶群和數據中心之間的最優調度。CloudAnalyst具有如下特性。
(1)簡單易用的用戶接口。
(2)仿真中使用到的屬性的高可配置性和高可擴展性。
(3)實驗可重復測試。
(4)實驗結果的可圖形化輸出。
CloudAnalyst用戶界面如圖2所示。
1.2.2 CloudAnalyst主要模型及組件
(1)Region。該組件將全球劃分為6個區域,分別代表世界的各大洲。Data Centers和User Base等模型都位于這6個區域中。
(2)Internet。CloudAnalyst中的網絡屬性模擬了真實世界的網絡屬性,包括了網絡數據傳輸時延和帶寬等重要屬性。
(3)Cloud Application Service Broker。該組件主要實現把用戶的請求分配到某個具體的數據中心,具體分配算法有最小時延算法、最佳性能算法和動態路由算法3種。
(4)User Base。該組件是單個用戶的集合,用來一起提交用戶任務,從而提高系統性能。
(5)InternetCloudlet。用戶任務組:一組用戶任務的集合。
(6)Data Center Controller。該組件主要管理數據中心,例如虛擬機的創建和撤銷等。
(7)VmLoadBalancer。虛擬機負載均衡器決定了采用何種調度算法將虛擬機分配給用戶任務。主要有輪轉算法、動態監控算法和節流分配算法。
(8)GUI。該組件主要是實現模擬器的圖形界面。采用CloudAnalyst模擬器可以模擬云計算的復雜環境,例如用戶群的分布、用戶群的動態屬性以及各個區域的網絡設施狀況。使用CloudAnalyst可以方便地研究云計算模擬實驗并節約成本。
1.3 CloudSched模擬器
1.3.1 CloudSched簡介
CloudSched是由電子科技大學的田文洪云計算研究小組基于CloudSim開發的輕量型云計算模擬器[5]。該模擬器支持可視化建模和模擬在云基礎設施上配置的大規模應用程序。使用該模擬器可以生成用戶信息、用戶和數據中心數量、數據中心位置以及資源數量等信息。使用這些信息,CloudSched產生用戶請求,并將用戶請求分配到云中的虛擬機去處理。
CloudSched支持多種調度算法,云計算資源調度研究者通過仿真,可以找到合理分配虛擬機資源、滿足用戶需求、減少業務成本等較優的資源調度策略和算法。CloudSched的模擬框架如圖3所示。
1.3.2 CloudSched主要模型及組件
(1)ScheduleDomain。該類為調度算法主函數所在的類,包括調度域中物理節點的初始化,調用其他類完成對任務隊列中用戶任務的處理,如生成任務請求、分配調度任務、刪除調度任務等。
(2)CreateRandVM。該類主要是產生需要的任務請求,把任務請求以VmTaskInfo類的形式記錄在文本文件中。任務請求包括的屬性主要有任務編號、任務到達時間、任務開始時間、任務結束時間等。
(3)VmTaskInfo。該類是產生任務請求和接受任務請求交互的一個類。包括任務編號、任務選擇的調度域類型、任務請求的虛擬機編號等。
(4)Server。該類為虛擬機和物理機的父類,包括的屬性主要有CPU大小、內存大小、網絡帶寬大小、CPU利用率、內存利用率、網絡帶寬利用率以及平均利用率等。
(5)PhysicalMachine。該類為物理機類,繼承了Server類,增加了虛擬機列表屬性。
(6)VirtualMachine。該類為虛擬機類,繼承了Server類,增加了一個判斷虛擬機類別的方法。虛擬機類型1、2、3為CPU型,類型4、5、6為內存型,類型7、8為網絡型。
(7)Allocate_Alg。該類主要是分配虛擬機到物理機上,可以設計分配算法來研究虛擬機調度。
(8)Migrate。該類依據不均衡的屬性(CPU、內存、網絡),判斷虛擬機是否需要遷移。
(9)Sort。該類主要實現CPU利用率、內存利用率、網絡帶寬利用率等硬件資源的排序。
(10)Balancelevel。該類的主要實現計算數據中心的不均衡度和物理機的不均衡度。
(11)Record。該類主要是把虛擬機分配的過程以及結果記錄到文本文件中,方便查看。
(12)PrintPM。該類主要把虛擬機分配過程以及結果打印到控制臺,方便查看結果。
利用CloudSched模擬器同樣可以很好地實現大規模分布式環境下的資源調度算法研究。
表1給出了CloudSim、CloudAnalyst以及CloudSched這3種云計算模擬器的比較。
2 基于模擬器的資源調度算法
下面介紹幾種基于CloudSim、CloudAnalyst和CloudSched的資源調度算法。
2.1 基于CloudSim的資源調度算法
為了盡量減小云數據中心電能的消耗和二氧化碳的排放量,BELOGLAZOV A等人基于CloudSim提出了云數據中心節能的虛擬機調度算法[6-7]。參考文獻[6]提出了有效的虛擬化數據中心資源管理策略。該策略在保證服務質量SQL的同時,利用虛擬機遷移技術不斷把虛擬機整合到少量服務器上,并關閉多余的服務器,從而降低電能消耗。參考文獻[7]建立了CPU電能消耗模型,根據當前CPU的利用率、虛擬機網絡拓撲以及主機節點的熱狀態,通過整合虛擬機減少主機節點的電能消耗。
2.2 基于CloudAnalyst的資源調度算法
CloudAnalyst模擬器自帶的有3種調度算法,分別是輪轉算法、動態監控算法和節流分配算法[8]。
(1)輪轉算法:采用Round-robin算法分配虛擬機。
(2)動態監控算法:監控每個虛擬機上的任務數,分配用戶請求使每個虛擬機負載平衡。
(3)節流分配算法:預先為虛擬機設置一個最大用戶任務請求數值,當用戶任務超過該數值時,不再接受用戶請求。
2.3 基于CloudSched資源調度算法
為了使云數據中心的物理服務器的CPU、內存和網絡帶寬等資源均衡使用,田文洪提出了一種基于CloudSched的滿足需求特性的調度算法[9]。該算法分別計算了物理服務器上的CPU利用率、內存利用率和網絡帶寬利用率的方差,得到每個物理服務器的負載均衡值,然后將虛擬機分配到負載均衡值最小的物理服務器上。如果負載最小的物理服務器不能分配,則換次小的進行分配,直到能分配為止。
表2給出了上述幾種資源調度算法的比較。
3 云計算模擬器及資源調度算法的研究熱點及發展趨勢
3.1 云計算模擬器研究熱點及發展趨勢
當前云計算模擬器的研究熱點主要集中到模擬器的功能擴展上。例如,當前隨著當前云計算數據中心規模的逐漸擴大,二氧化碳的排放量越來越大,數據中心的電能消耗也越來越多。由于節能減排的要求,需要研究更加節能的資源調度算法,這就需要所采用的模擬器能夠模擬出云計算數據中心的電能消耗量。有些云計算模擬器還不能達到這些要求,例如CloudAnalyst的模擬結果只包含了所有數據中心的平均響應時間、最小(大)響應時間、用戶群以及數據中心處理請求的平均響應時間、最小(大)響應時間等。因此可以在CloudAnalyst上進行擴展,擴展出想要的功能,例如能夠模擬數據中心的電能消耗等。
隨著云計算的發展,云計算模擬器會集成更多的功能。例如,現有模擬器還無法模擬出數據中心二氧化碳的排放量。可以在模擬器中添加二氧化碳排放量模塊,從而計算出云數據中心在提供云計算服務時具體的二氧化碳排放量大小。同時,現有模擬器還不能仿真聯合云,可以研究如何在模擬器中添加支持聯合云的功能,從而仿真出聯合云環境下云計算服務的響應時間等一些性能指標。總之,模擬器會朝著更加符合真實、實用的云計算環境添加所需要的功能。
3.2 資源調度算法研究熱點及發展趨勢
對于云計算模擬器的另一項研究就是基于云計算模擬器研究出更多有效的資源調度算法,從而能夠降低云數據中心和企業的運營成本。現在已經出現了一些比較有效的資源調度算法,它們大多以保證數據中心的負載均衡[9-12]、最大效益[13-15]、云服務質量[16-18]為優化目標。隨著政府對節能減排的迫切要求,將來會出現更多圍繞降低能耗的資源調度算法。BELOGLAZOV A等人已經在以節能減排為優化目標的資源調度算法方面走在了前列,研究出了一些比較優秀的資源調度算法[6-7,20-21],云計算資源調度研究者可以在其研究的基礎上進行更深入的研究。同時,仿真云計算市場的資源調度算法也很重要。可以基于云計算市場,在云計算模擬器中內置新的云計算資源定價和部署策略來仿真云計算服務。
本文介紹了當前云計算的CloudSim、CloudAnalyst和CloudSched 3種模擬器,并對基于這3種模擬器的資源調度算法進行了分析和比較。當前云計算模擬器還存在很多研究熱點,例如需要對模擬器的節能功能進行擴展、所設計的資源調度算法需要考慮節能減排、云計算市場定價等。隨著研究的深入,現階段的研究者越來越關注數據中心的能耗問題以及市場定價問題。將來會涌現出更多的節能減排資源調度算法以及云計算市場的資源調度算法,從而更好地提高云數據中心的性能。
參考文獻
[1] CALHEIROS R N, RANJAN R,BUYYA R, et al. CloudSim: a toolkit for modeling and simulation of cloud computing environments and evaluation of resource provision-ing algorithms[J]. Software: Practice and Experience, 2011,41(1):23-50.
[2] BUYYA R, RANJAN R, CALHEIROS R. Modeling and simulation of scalable cloud computing environment and the cloudSim toolkit: challenges and opportunities[A]. Proceedings of the 7th High Performance Computing and Simulation Conference[C]. Germany:IEEE,2009:21-24.
[3] CALHEIROS R N, RANJAN R. CloudSim:A novel framework for mode ling and simulation of cloud computing infrastructures and services[R/OL]. [2014-2-20]http://www.buyya.com/gridbus/reports/CloudSim-ICPP2009.pdf.
[4] WICKREMASINGHE B, PROF A, BUYYA R. CloudAnalyst: A cloudSim-based tool for modelling and analysis of large scale cloud computing environments[J]. IEEE Computer Society, 2010,AINA:446-452.
[5] TIAN W, ZHAO Y, XU M, et al. A Toolkit for modeling and simulation of real-time virtual machine allocation in a cloud data center[J]. Automation Science and Engineering, 2013,1(99):1545-5955.
[6] BELOGLAZOV A, BUYYA R. Energy efficient allocation of virtual machine in cloud data centers[C]. 2010 10th IEEE/ACM International Conference on Cluster, Cloud and Grid Computing.. Washington DC: IEEE Computer Society, 2010:577-
578.
[7] BELOGLAZOV A, BUYYA R. Energy efficient resource management in virtualized cloud data centers [C].Proceedings of the 10th IEEE/ACM International Conference on Cluster, Cloud and Grid Computing. Melbourne: IEEE, 2010:826-831.
[8] WICKREMASINGHE B, CALHEIROS R N, BUYYA R. CloudAnalyst: A cloudSim-based visual modeller for analysing cloud computing environments and applications[A]. Proceedings of the 24th IEEE International Conference on Advanced Information Networking and Applications. Perth: IEEE,2010:446-452.
[9] TIAN W H, LU G. Analysis of integrated scheduling algorithms for resources in cloud datacenters[C]. Technical Report, University of Electronics and Science Technology of China,2010:9.
[10] 鄭洪源,周良,吳家祺.Web服務器集群系統中負載平衡的設計與實現[J].南京航空航天大學學報,2006,38(3):347-351.
[11] 李文娟,張啟飛,平玲娣,等.基于模糊聚類的云任務調度算法[J].通信學報,2012,33(3):146-154.
[12] TIAN W H, LI U X R, JIN C, et al. LIF: A dynamic scheduling algorithm for cloud data centers considering multi-dimensional resources[J]. Journal of Information and Computing Science, 2013,10(12):3925-3937.
[13] TANG Q. Energy-efficient, thermal-aware task scheduling for homogeneous, high performance computing data genters: A Cyber-Physical Approach[J]. IEEE Transaction on Paralleland Distributed Systems,2008,19(11):1458-1472.
[14] BUYYA R, YEO C S, VENUGOPAL S. Market-oriented cloud computing: vision, hype, and reality for delivering it services as computing utilities[C]. Proceedings of the 10th IEEE International Conference on High Performance Computing and Communications. 2008:5-13.
[15] DE ASSUNCAO M D, DI COSTANZO A, BUYYA R. Evaluating the cost-benefit of using cloud computing to extend the capacity of clusters[C]. Proceedings of the 18th ACM International Symposium on High Performance Distributed Computing. New York: ACM Press, 2009:141-150.
[16] 師學霖,徐恪.云虛擬機資源分配的效用最大化模型[J].計算機學報,2013,36(2):252-262.
[17] 孫大為,常桂然,李鳳云,等.一種基于免疫克隆的偏好多維QoS云資源調度優化算法[J].電子學報,2011,39(8):1824-1831.
[18] HAO FANG, LAKSHMAN T V, MUKHERJEE S, et al. Enhancing dynamic cloud-based services using network virtualization[J]. Computer Communication Review, 2010,40(1):67-74.
[19] CHANHAN S S, JOSHI R C. A heuristic for QoS based independent task scheduling in grid environment[A]. Proceed-ings of International Conference on Industrial and Informa-tion Systems. 2010:102-106.
[20] BELOGLAZOV A, BUYYA R. Adaptive threshold-based approach for energy-efficient consolidation of virtual machines in cloud data centers[C]. Proceedings of the 8th International Workshop on Middleware for Grids, Clouds and e-Science. New York: ACM,2010.
[21] BELOGLAZOV A, ABAWAJY J, BUYYA R. Energy-aware resource allocation heuristics for ecient management of data centers for cloud computing[J]. Future Generation Computer Systems, 2011, DOI: 10.1016/j.future.