摘 要: 基于因特網(wǎng)平臺研究云計算受到地理位置、網(wǎng)絡(luò)環(huán)境等因素的諸多限制,因此采用云計算模擬器研究云計算具有重要意義。主要介紹了3種現(xiàn)有的云計算數(shù)據(jù)中心資源調(diào)度模擬器CloudSim、CloudAnalyst和CloudSched以及基于這3種模擬器的資源調(diào)度算法,最后介紹了云計算模擬器的研究熱點。
關(guān)鍵詞: 云計算;云計算模擬器;資源調(diào)度
隨著云計算的飛速發(fā)展,云數(shù)據(jù)中心的規(guī)模和密度日益增大,這給云數(shù)據(jù)中心的管理帶來了諸多值得研究的問題,例如如何集中管理和動態(tài)使用數(shù)據(jù)中心里的虛擬機(jī),以提高云計算的彈性和靈活性,從而降低運營成本,改善服務(wù)質(zhì)量并降低管理風(fēng)險;如何幫助用戶構(gòu)建動態(tài)、靈活、高效、適應(yīng)業(yè)務(wù)增長的云計算基礎(chǔ)架構(gòu),使企業(yè)在不增加運營成本的同時,保障業(yè)務(wù)的可持續(xù)發(fā)展。如果在真實的因特網(wǎng)平臺上對這些問題展開研究會極其困難,也不現(xiàn)實,因為它需要考慮應(yīng)用程序的開發(fā)者無法控制和處理的網(wǎng)絡(luò)基礎(chǔ)設(shè)施和環(huán)境。由于開發(fā)者無法對網(wǎng)絡(luò)條件進(jìn)行準(zhǔn)確地預(yù)測或控制,這將最終影響策略的評價質(zhì)量。
基于上述原因,如果想要對云數(shù)據(jù)中心資源調(diào)度等問題進(jìn)行研究,可以通過建立模擬器的方式來解決。現(xiàn)有的云計算模擬器主要有CloudSim、CloudAnalyst和CloudSched 3種。通過這3種模擬器,可以進(jìn)行一些資源調(diào)度算法的研究,從而可以找到降低云數(shù)據(jù)中心的運營成本的有效解決方案。
1 云計算模擬器介紹
1.1 CloudSim模擬器
1.1.1 CloudSim簡介
CloudSim是Buyya云計算研究小組研制的云計算仿真軟件,由澳大利亞墨爾本大學(xué)的網(wǎng)格實驗室和Gridbus項目在2009年正式宣布推出。它是通用的和可擴(kuò)展的云計算模擬框架,支持模擬云計算基礎(chǔ)設(shè)施和管理服務(wù)。CloudSim具有以下功能[1]。
(1)支持大規(guī)模云計算環(huán)境的建模和仿真,包括在單一物理計算節(jié)點上的數(shù)據(jù)中心。
(2)獨立的云模擬平臺,可以對數(shù)據(jù)中心、服務(wù)代理、部署和分配策略進(jìn)行建模。
(3)支持多個模擬系統(tǒng)之間的網(wǎng)絡(luò)連接的仿真。
(4)可用的虛擬引擎,有助于在一個數(shù)據(jù)中心節(jié)點上創(chuàng)建和管理多個、獨立和協(xié)同的虛擬服務(wù)。
(5)可以在時間共享和空間共享的處理虛擬服務(wù)的CPU核心之間靈活的切換。
1.1.2 CloudSim體系結(jié)構(gòu)
CloudSim體系結(jié)構(gòu)如圖1所示。共分為4層,從下到上分別是SimJava層、GridSim層、CloudSim層和UserCode層。
SimJava是離散事件仿真引擎[2],通過更高級的仿真框架才能實現(xiàn)其功能。GridSim工具包支持高層次軟件組件用于多重網(wǎng)格基礎(chǔ)設(shè)施和網(wǎng)格的資源、數(shù)據(jù)集、工作量跟蹤及信息服務(wù)等組件的建模。CloudSim通過擴(kuò)展GridSim來支持以虛擬云為基礎(chǔ)的數(shù)據(jù)中心環(huán)境。云供應(yīng)商想要研究其主機(jī)分配不同策略的效果,就需要在該層通過編程擴(kuò)展核心虛擬機(jī)的配置功能實現(xiàn)分配策略。UserCode層提供了關(guān)于主機(jī)、虛擬機(jī)、應(yīng)用、用戶及應(yīng)用類型和代理調(diào)度策略的配置相關(guān)功能的代碼。云程序開發(fā)人員可以在該層開發(fā)用戶需求分布、應(yīng)用的配置和云可用性場景,并執(zhí)行CloudSim支持的以定義云配置的Robust測試。
CloudSim有Cloudlet、DataCenter、DataCenterBroker、Host、VM和VMScheduler等幾個重要的類[3],了解各個類的參數(shù)和作用,對研究云計算調(diào)度算法具有重要意義。例如,DataCenterBroker實現(xiàn)了用戶任務(wù)到虛擬機(jī)的映射;VMScheduler類實現(xiàn)虛擬機(jī)的調(diào)度策略,主機(jī)是采用時間共享策略還是空間共享策略把CPU分配給虛擬機(jī)。用戶也可以使用自己的策略來覆寫該類,從而完成主機(jī)對虛擬機(jī)的CPU分配。
1.2 CloudAnalyst模擬器
1.2.1 CloudAnalyst簡介
CloudAnalyst[4]是基于CloudSim開發(fā)的可視化模擬器。同樣是由Buyya云計算研究小組開發(fā)的云計算仿真軟件。開發(fā)CloudAnalyst的主要目的是在當(dāng)前配置下,實現(xiàn)各個用戶群和數(shù)據(jù)中心之間的最優(yōu)調(diào)度。CloudAnalyst具有如下特性。
(1)簡單易用的用戶接口。
(2)仿真中使用到的屬性的高可配置性和高可擴(kuò)展性。
(3)實驗可重復(fù)測試。
(4)實驗結(jié)果的可圖形化輸出。
CloudAnalyst用戶界面如圖2所示。
1.2.2 CloudAnalyst主要模型及組件
(1)Region。該組件將全球劃分為6個區(qū)域,分別代表世界的各大洲。Data Centers和User Base等模型都位于這6個區(qū)域中。
(2)Internet。CloudAnalyst中的網(wǎng)絡(luò)屬性模擬了真實世界的網(wǎng)絡(luò)屬性,包括了網(wǎng)絡(luò)數(shù)據(jù)傳輸時延和帶寬等重要屬性。
(3)Cloud Application Service Broker。該組件主要實現(xiàn)把用戶的請求分配到某個具體的數(shù)據(jù)中心,具體分配算法有最小時延算法、最佳性能算法和動態(tài)路由算法3種。
(4)User Base。該組件是單個用戶的集合,用來一起提交用戶任務(wù),從而提高系統(tǒng)性能。
(5)InternetCloudlet。用戶任務(wù)組:一組用戶任務(wù)的集合。
(6)Data Center Controller。該組件主要管理數(shù)據(jù)中心,例如虛擬機(jī)的創(chuàng)建和撤銷等。
(7)VmLoadBalancer。虛擬機(jī)負(fù)載均衡器決定了采用何種調(diào)度算法將虛擬機(jī)分配給用戶任務(wù)。主要有輪轉(zhuǎn)算法、動態(tài)監(jiān)控算法和節(jié)流分配算法。
(8)GUI。該組件主要是實現(xiàn)模擬器的圖形界面。采用CloudAnalyst模擬器可以模擬云計算的復(fù)雜環(huán)境,例如用戶群的分布、用戶群的動態(tài)屬性以及各個區(qū)域的網(wǎng)絡(luò)設(shè)施狀況。使用CloudAnalyst可以方便地研究云計算模擬實驗并節(jié)約成本。
1.3 CloudSched模擬器
1.3.1 CloudSched簡介
CloudSched是由電子科技大學(xué)的田文洪云計算研究小組基于CloudSim開發(fā)的輕量型云計算模擬器[5]。該模擬器支持可視化建模和模擬在云基礎(chǔ)設(shè)施上配置的大規(guī)模應(yīng)用程序。使用該模擬器可以生成用戶信息、用戶和數(shù)據(jù)中心數(shù)量、數(shù)據(jù)中心位置以及資源數(shù)量等信息。使用這些信息,CloudSched產(chǎn)生用戶請求,并將用戶請求分配到云中的虛擬機(jī)去處理。
CloudSched支持多種調(diào)度算法,云計算資源調(diào)度研究者通過仿真,可以找到合理分配虛擬機(jī)資源、滿足用戶需求、減少業(yè)務(wù)成本等較優(yōu)的資源調(diào)度策略和算法。CloudSched的模擬框架如圖3所示。
1.3.2 CloudSched主要模型及組件
(1)ScheduleDomain。該類為調(diào)度算法主函數(shù)所在的類,包括調(diào)度域中物理節(jié)點的初始化,調(diào)用其他類完成對任務(wù)隊列中用戶任務(wù)的處理,如生成任務(wù)請求、分配調(diào)度任務(wù)、刪除調(diào)度任務(wù)等。
(2)CreateRandVM。該類主要是產(chǎn)生需要的任務(wù)請求,把任務(wù)請求以VmTaskInfo類的形式記錄在文本文件中。任務(wù)請求包括的屬性主要有任務(wù)編號、任務(wù)到達(dá)時間、任務(wù)開始時間、任務(wù)結(jié)束時間等。
(3)VmTaskInfo。該類是產(chǎn)生任務(wù)請求和接受任務(wù)請求交互的一個類。包括任務(wù)編號、任務(wù)選擇的調(diào)度域類型、任務(wù)請求的虛擬機(jī)編號等。
(4)Server。該類為虛擬機(jī)和物理機(jī)的父類,包括的屬性主要有CPU大小、內(nèi)存大小、網(wǎng)絡(luò)帶寬大小、CPU利用率、內(nèi)存利用率、網(wǎng)絡(luò)帶寬利用率以及平均利用率等。
(5)PhysicalMachine。該類為物理機(jī)類,繼承了Server類,增加了虛擬機(jī)列表屬性。
(6)VirtualMachine。該類為虛擬機(jī)類,繼承了Server類,增加了一個判斷虛擬機(jī)類別的方法。虛擬機(jī)類型1、2、3為CPU型,類型4、5、6為內(nèi)存型,類型7、8為網(wǎng)絡(luò)型。
(7)Allocate_Alg。該類主要是分配虛擬機(jī)到物理機(jī)上,可以設(shè)計分配算法來研究虛擬機(jī)調(diào)度。
(8)Migrate。該類依據(jù)不均衡的屬性(CPU、內(nèi)存、網(wǎng)絡(luò)),判斷虛擬機(jī)是否需要遷移。
(9)Sort。該類主要實現(xiàn)CPU利用率、內(nèi)存利用率、網(wǎng)絡(luò)帶寬利用率等硬件資源的排序。
(10)Balancelevel。該類的主要實現(xiàn)計算數(shù)據(jù)中心的不均衡度和物理機(jī)的不均衡度。
(11)Record。該類主要是把虛擬機(jī)分配的過程以及結(jié)果記錄到文本文件中,方便查看。
(12)PrintPM。該類主要把虛擬機(jī)分配過程以及結(jié)果打印到控制臺,方便查看結(jié)果。
利用CloudSched模擬器同樣可以很好地實現(xiàn)大規(guī)模分布式環(huán)境下的資源調(diào)度算法研究。
表1給出了CloudSim、CloudAnalyst以及CloudSched這3種云計算模擬器的比較。
2 基于模擬器的資源調(diào)度算法
下面介紹幾種基于CloudSim、CloudAnalyst和CloudSched的資源調(diào)度算法。
2.1 基于CloudSim的資源調(diào)度算法
為了盡量減小云數(shù)據(jù)中心電能的消耗和二氧化碳的排放量,BELOGLAZOV A等人基于CloudSim提出了云數(shù)據(jù)中心節(jié)能的虛擬機(jī)調(diào)度算法[6-7]。參考文獻(xiàn)[6]提出了有效的虛擬化數(shù)據(jù)中心資源管理策略。該策略在保證服務(wù)質(zhì)量SQL的同時,利用虛擬機(jī)遷移技術(shù)不斷把虛擬機(jī)整合到少量服務(wù)器上,并關(guān)閉多余的服務(wù)器,從而降低電能消耗。參考文獻(xiàn)[7]建立了CPU電能消耗模型,根據(jù)當(dāng)前CPU的利用率、虛擬機(jī)網(wǎng)絡(luò)拓?fù)湟约爸鳈C(jī)節(jié)點的熱狀態(tài),通過整合虛擬機(jī)減少主機(jī)節(jié)點的電能消耗。
2.2 基于CloudAnalyst的資源調(diào)度算法
CloudAnalyst模擬器自帶的有3種調(diào)度算法,分別是輪轉(zhuǎn)算法、動態(tài)監(jiān)控算法和節(jié)流分配算法[8]。
(1)輪轉(zhuǎn)算法:采用Round-robin算法分配虛擬機(jī)。
(2)動態(tài)監(jiān)控算法:監(jiān)控每個虛擬機(jī)上的任務(wù)數(shù),分配用戶請求使每個虛擬機(jī)負(fù)載平衡。
(3)節(jié)流分配算法:預(yù)先為虛擬機(jī)設(shè)置一個最大用戶任務(wù)請求數(shù)值,當(dāng)用戶任務(wù)超過該數(shù)值時,不再接受用戶請求。
2.3 基于CloudSched資源調(diào)度算法
為了使云數(shù)據(jù)中心的物理服務(wù)器的CPU、內(nèi)存和網(wǎng)絡(luò)帶寬等資源均衡使用,田文洪提出了一種基于CloudSched的滿足需求特性的調(diào)度算法[9]。該算法分別計算了物理服務(wù)器上的CPU利用率、內(nèi)存利用率和網(wǎng)絡(luò)帶寬利用率的方差,得到每個物理服務(wù)器的負(fù)載均衡值,然后將虛擬機(jī)分配到負(fù)載均衡值最小的物理服務(wù)器上。如果負(fù)載最小的物理服務(wù)器不能分配,則換次小的進(jìn)行分配,直到能分配為止。
表2給出了上述幾種資源調(diào)度算法的比較。
3 云計算模擬器及資源調(diào)度算法的研究熱點及發(fā)展趨勢
3.1 云計算模擬器研究熱點及發(fā)展趨勢
當(dāng)前云計算模擬器的研究熱點主要集中到模擬器的功能擴(kuò)展上。例如,當(dāng)前隨著當(dāng)前云計算數(shù)據(jù)中心規(guī)模的逐漸擴(kuò)大,二氧化碳的排放量越來越大,數(shù)據(jù)中心的電能消耗也越來越多。由于節(jié)能減排的要求,需要研究更加節(jié)能的資源調(diào)度算法,這就需要所采用的模擬器能夠模擬出云計算數(shù)據(jù)中心的電能消耗量。有些云計算模擬器還不能達(dá)到這些要求,例如CloudAnalyst的模擬結(jié)果只包含了所有數(shù)據(jù)中心的平均響應(yīng)時間、最小(大)響應(yīng)時間、用戶群以及數(shù)據(jù)中心處理請求的平均響應(yīng)時間、最小(大)響應(yīng)時間等。因此可以在CloudAnalyst上進(jìn)行擴(kuò)展,擴(kuò)展出想要的功能,例如能夠模擬數(shù)據(jù)中心的電能消耗等。
隨著云計算的發(fā)展,云計算模擬器會集成更多的功能。例如,現(xiàn)有模擬器還無法模擬出數(shù)據(jù)中心二氧化碳的排放量。可以在模擬器中添加二氧化碳排放量模塊,從而計算出云數(shù)據(jù)中心在提供云計算服務(wù)時具體的二氧化碳排放量大小。同時,現(xiàn)有模擬器還不能仿真聯(lián)合云,可以研究如何在模擬器中添加支持聯(lián)合云的功能,從而仿真出聯(lián)合云環(huán)境下云計算服務(wù)的響應(yīng)時間等一些性能指標(biāo)。總之,模擬器會朝著更加符合真實、實用的云計算環(huán)境添加所需要的功能。
3.2 資源調(diào)度算法研究熱點及發(fā)展趨勢
對于云計算模擬器的另一項研究就是基于云計算模擬器研究出更多有效的資源調(diào)度算法,從而能夠降低云數(shù)據(jù)中心和企業(yè)的運營成本。現(xiàn)在已經(jīng)出現(xiàn)了一些比較有效的資源調(diào)度算法,它們大多以保證數(shù)據(jù)中心的負(fù)載均衡[9-12]、最大效益[13-15]、云服務(wù)質(zhì)量[16-18]為優(yōu)化目標(biāo)。隨著政府對節(jié)能減排的迫切要求,將來會出現(xiàn)更多圍繞降低能耗的資源調(diào)度算法。BELOGLAZOV A等人已經(jīng)在以節(jié)能減排為優(yōu)化目標(biāo)的資源調(diào)度算法方面走在了前列,研究出了一些比較優(yōu)秀的資源調(diào)度算法[6-7,20-21],云計算資源調(diào)度研究者可以在其研究的基礎(chǔ)上進(jìn)行更深入的研究。同時,仿真云計算市場的資源調(diào)度算法也很重要。可以基于云計算市場,在云計算模擬器中內(nèi)置新的云計算資源定價和部署策略來仿真云計算服務(wù)。
本文介紹了當(dāng)前云計算的CloudSim、CloudAnalyst和CloudSched 3種模擬器,并對基于這3種模擬器的資源調(diào)度算法進(jìn)行了分析和比較。當(dāng)前云計算模擬器還存在很多研究熱點,例如需要對模擬器的節(jié)能功能進(jìn)行擴(kuò)展、所設(shè)計的資源調(diào)度算法需要考慮節(jié)能減排、云計算市場定價等。隨著研究的深入,現(xiàn)階段的研究者越來越關(guān)注數(shù)據(jù)中心的能耗問題以及市場定價問題。將來會涌現(xiàn)出更多的節(jié)能減排資源調(diào)度算法以及云計算市場的資源調(diào)度算法,從而更好地提高云數(shù)據(jù)中心的性能。
參考文獻(xiàn)
[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服務(wù)器集群系統(tǒng)中負(fù)載平衡的設(shè)計與實現(xiàn)[J].南京航空航天大學(xué)學(xué)報,2006,38(3):347-351.
[11] 李文娟,張啟飛,平玲娣,等.基于模糊聚類的云任務(wù)調(diào)度算法[J].通信學(xué)報,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] 師學(xué)霖,徐恪.云虛擬機(jī)資源分配的效用最大化模型[J].計算機(jī)學(xué)報,2013,36(2):252-262.
[17] 孫大為,常桂然,李鳳云,等.一種基于免疫克隆的偏好多維QoS云資源調(diào)度優(yōu)化算法[J].電子學(xué)報,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.