王燕妮+吳文輝



摘要:如今,云計算技術愈加受到各界的關注。然而不同應用具有不同的組成、配置和部署需求,如何量化與比較這些應用模型的性能,從而提高云計算資源使用效率,成為重要的研究課題。文章簡述了為解決此問題而開發(fā)的云仿真軟件CloudSim,并以CloudSim3.O為重點研究對象。文章重點闡述了仿真軟件的仿真流程,并以仿真事件為焦點闡述了仿真流程中各仿真實體的變化情況,并結合實例進行說明。
關鍵詞:CloudSim3.0;仿真流程
中圖分類號:TP393
文獻標識碼:A
DOI:10,3969/j.issn.1003-6970.2015.06,020
本文著錄格式:王燕妮,吳文輝.Cloudsim3.O仿真流程分析叮]軟件,2015,36(6):109-113
TheAnalysisofSimulationProcessofCloudsim3.0
WangYan-ni,WuWen-hui
[Abstract]:Nowadays,cloudcomputingtechnologyhasbeenwidelypaidattention.But,differentapplicationsbasedoncloudcomputinghavedifferentrequirementsofconfigurationsanddeployments.Therefore,howtoquantifyandcomparethecapabilityofdifferentmodelsinordertoincreasetheoperationrateofcloudcomputingresourcehasbeenwidelyresearched.ThispaperintroducestheCloudSimsoftwareandfocusesonCloudSim3.0.Thepaperexpoundsthesimulationprocessofthesoftwareandthesimulationeventsoftheprocess.Intheend,theprocessisillustratedwithanexample.
[Keywordsl:CloudSim3.0;Cloudcomputing;Simulationprocess
0引言
隨著硬件條件的更新發(fā)展以及網(wǎng)絡技術的成熟演進,云計算應運而生。云計算的目的是通過架構下一代數(shù)據(jù)中心作為虛擬服務的硬件和軟件設施,使用戶能從世界的任何地方獲得和部署應用程序。云計算是由分布式處理、并行處理和網(wǎng)格計算演進發(fā)展,并在商業(yè)上實現(xiàn)的計算機概念,其本質是數(shù)據(jù)共享計算模式與服務共享計算模式的結合體,是下一代計算模式的發(fā)展方向[1]。
云計算的主要任務是為基于互聯(lián)網(wǎng)的應用服務提供可靠、安全、容錯、可持續(xù)、可擴展的基礎設施,然而不同的應用具有不同的組成、配置和部署需求,云端基礎設施上的應用及服務模型的負載、能源性能和系統(tǒng)規(guī)模都在不斷發(fā)生變化,因此量化與比較這些應用和服務模型的性能,從而控制使用云計算資源,提高云資源的使用效率就成為業(yè)界研究的一大熱點[2]。為解決此問題,墨爾本大學的學者開發(fā)了云仿真平臺CloudSim[3],用以實現(xiàn)云計算系統(tǒng)和應用資源調度的模擬與仿真。
1CloudSim簡介
CloudSim是澳大利亞墨爾本大學開發(fā)的云計算仿真軟件。CloudSim是在GridSim模型基礎上發(fā)展而來,提供了云計算的特性,支持云計算的資源管理和調度模擬。CloudSim是開源項目,可以在windows和linux上運行。CloudSim的擴展部分實現(xiàn)了一系列接口,提供基于數(shù)據(jù)中心的虛擬化技術、虛擬化云的建模和仿真功能。利用CloudSim仿真軟件,用戶可以反復測試自己的服務,在組成、配置和部署軟件前評估模擬軟件,調節(jié)性能瓶頸,減少資金耗費‘4]。
CloudSim具有多個版本,本文的研究對象是CloudSim3.0。CloudSim3.0采用分層的體系結構。仿真層為云計算的虛擬數(shù)據(jù)中心環(huán)境的配置和仿真提供支持,包括虛擬機、內存、容量及帶寬的接口,該層用于主機分配到虛擬機的策略研究,并通過擴展核心的虛擬機調度函數(shù)實現(xiàn)。最上層是用戶代碼層,該層提供一些基本的實體,如主機、應用、虛擬機,用戶數(shù)據(jù)和應用類型,以及代理調度策略等‘2]。CloudSim3.0提供虛擬化引擎,可在數(shù)據(jù)中心節(jié)點上建立和管理多重的虛擬化任務,并在虛擬化服務分配時在時間共享及空間共享策略之間靈活切換。Cloudsim3.0是開源的,用戶可以通過擴展接口擴展開源代碼,實現(xiàn)自己的調度策略,并基于特定環(huán)境和配置進行測試,驗證相應功能。
2CloudSim3.O仿真流程及事件響應機制分析
2.1CloudSim3.0仿真流程
不論初始條件以及調度策略是否有所不同,CloudSim的仿真流程總是不變的。CloudSim的仿真流程分為三個階段:初始化仿真環(huán)境,執(zhí)行仿真,結束仿真。其仿真流程圖如圖1所示。
在圖1中,每一個方框代表一個事件,也就是CloudSim執(zhí)行仿真過程中所要做的事情,每一個菱形框表示事件執(zhí)行的條件,在執(zhí)行下一次事件之前,先根據(jù)菱形圖中所示的條件進行判斷,從而決定下一步執(zhí)行何種事件。CIS是指CloudInformationService,提供實體資源注冊的功能,每產生一個新的實體,必須向CIS進行注冊,實體是能進行事件處理的數(shù)據(jù)中心,注冊實體資源,是為了管理實體;future隊列是指未來事件隊列,維護著所有新產生的事件隊列,這些事件都是將要被處理的,每處理一件事件,可能會產生新的事件,此時,新的事件將被加入到此隊列,等待處理;deferred隊列是延時事件隊列,所有事件必須經(jīng)過從future隊列移除,加入到deferred隊列中,才能被各個實體進行處理來完成相應的任務,實體資源處理事件時,是處理從deferred隊列中彈出的事件,每一個具體的任務是由多個事件組成,事件都有先后順序,根據(jù)其狀態(tài)保存到相應隊列中。
如上所述,仿真過程分為三個階段:初始化仿真環(huán)境,執(zhí)行仿真,結束仿真。在第一階段初始化仿真環(huán)境時,先初始化CloudSim核心仿真引擎,這標志著仿真已經(jīng)開始,然后創(chuàng)建數(shù)據(jù)中心,再創(chuàng)建數(shù)據(jù)中心代理,這是上一級的實體資源,接下來創(chuàng)建虛擬機,虛擬機是下一級的實體資源,所以要將虛擬機列表提交給數(shù)據(jù)中心代理,然后創(chuàng)建云任務,將云任務列表要提交給數(shù)據(jù)中心代理。初始化完成后,正式啟動仿真,在這一階段,主要是按照相應的調度策略處理仿真運轉過程中產生的各個事件,在軟件源碼中,調度策略有時間共享策略和空間共享策略,研究人員還可以根據(jù)具體應用進行擴展,開發(fā)出其它調度策略,因所有事件都要經(jīng)過future隊列,所以若此隊列中沒有任何事件,則可停止仿真,如有事件,則加入到deferred隊列中,等待下一步處理。在執(zhí)行仿真階段,可以暫停仿真,需要繼續(xù)運行時,可喚醒仿真,繼續(xù)運行。如果所有事件處理完畢,則預示著仿真運行階段的結束,如此,則可以結束仿真,在仿真結束階段,主要是設置實體為不可運行狀態(tài),標識實體關閉,結束仿真。
2.2仿真事件生命周期
CloudSim仿真軟件是離散事件驅動的[3],使用白帶的離散事件模擬鏈接庫來進行事件處理和內部事件消息傳送。仿真進行的過程就是對每一個仿真事件進行處理的過程,仿真事件貫穿著仿真過程的始終,所以仿真事件的生命周期是整個仿真過程的核心,所以,為了研究仿真過程如何運行,則必須研究仿真事件的來龍去脈,仿真事件是怎樣產生的,將要做怎樣的處理,仿真事件某時某刻是怎樣的狀態(tài),在何種條件下,仿真事件將會消亡??傊抡媸录纳芷诰褪钱a生、運轉、消亡。
如圖2是代表著事件的屬性表,用etype、time、entSrc等一些變量可以表征仿真事件的特征,以此來描述仿真事件。不同事件,變量值不同,相應的處理方法則不同。
如圖3所示為仿真事件的生命周期示意圖,方形框表示實體或cloudsim進行了某種動作行為,橢圓表示仿真事件當時處于何種狀態(tài)下。在圖3中,cloudsim表示的仿真核心引擎,實體l表示發(fā)起事件的實體,對應事件的entSrc屬性,實體2表示處理事件的實體,對應事件的entDst屬性。如圖2所示,事件經(jīng)由某個實體發(fā)起,cloudsim組織產生,然后被加入到future隊列中,時間條件滿足,即從future隊列中移人到deferred隊列中,如果處理此事件的實體具備處理此事件的條件,則從deferred隊列中取出此事件,然后處理,則事件消亡,至此就是一個仿真事件的生命周期。
3實例分析
下面以仿真軟件白帶的實例l為例來闡述CloudSim3.0的仿真流程。
實例1演示創(chuàng)建包含一臺主機的一個數(shù)據(jù)中心,運行一個云任務的仿真過程。在仿真環(huán)境初始化階段,創(chuàng)建了一個數(shù)據(jù)中心、一個數(shù)據(jù)中心代理,創(chuàng)建了一個虛擬機、一個云任務,并將此虛擬機和云任務都提交給數(shù)據(jù)中心代理。所以在實例1中,有四個實體,CloudSimShutDown、CloudSimInformationService、Datacenter0(數(shù)據(jù)中心)、Broker(數(shù)據(jù)中心代理)。仿真環(huán)境初始化完成后開始啟動仿真。仿真運行階段,首先啟動四個實體,在啟動實體Datacenter0時,產生了第一個仿真事件一一向CloudSimInformationService注冊,在事件驅動機制下,處理事件的過程中,可能會產生新的事件,如此仿真過程就一直進行下去。在時鐘為0.0時,云資源列表收到一個資源,并且準備在數(shù)據(jù)中心創(chuàng)建一個虛擬機,在時鐘0.1時,虛擬機已經(jīng)創(chuàng)建完成,數(shù)據(jù)中心代理準備將云任務發(fā)送到虛擬機,在時鐘400.1時,云任務已經(jīng)被接收,并且處理完畢,終結了虛擬機后,所有仿真事件都已處理完畢,CloudSimInformationService通知關閉各個實體,至此整個仿真過程結束。如圖4為仿真結果。
4結束語
在云計算研究如火如荼的今天,云計算仿真器無疑具有重要的研究價值。各研究者在研究分析CloudSim的同時,也可在CloudSim的基礎上進行擴展,開發(fā)出適合各自應用特點的功能[5],促進云計算仿真器軟件的成熟。
參考文獻
[1]查應華,楊靜麗.云計算仿真平臺Cloudsim在資源分配平臺中的應用[J].軟件導刊,2012,11(11):57-59.
[2]王霞俊.Cloudsim云計算仿真T具研究及應用[J].微型電腦應用,2013,8:59-61.
[3]RodrigoN.Calheiros,RajivRanjan,AntonBeloglazon,et.al.CloudSim:AToolkitforModelingandSimulationofCloudComputingEnviromentsandEvaluationofResourceProvisioningAlgorithms,Software:PracticeandExperience(SPE),[J]Volume41,Numver1,Pages:23-50.
[4]劉鵬.云計算[M].北京:電子工業(yè)出版社,2011.
[5]汪儉華,馮錫煒,馮瑤,等.云計算仿真平臺的改進研究[J].科學技術與工程,2013,19(3):5543-5548.