Cloudism3.0.3學習與使用(一)

一、Cloudsim

  現在的雲計算領域,一直在追求一種安全可靠、容錯率高、可持續和可擴展的計算服務的領先技術。而在實際開發雲產品之前,及時的利用可重複、可控的方法來評估算法、應用和策略顯得尤爲重要。CloudSim的主要目標就是提供一個通用的,可擴展的仿真框架,可以對新興的雲計算基礎設施和應用服務進行無縫建模,仿真和實驗。
  CloudSim是一款雲計算仿真軟件,其由澳大利亞墨爾本大學網格實驗室和Gridbus項目於2009年推出,它是一個函數庫,可在Windows和Linux系統上跨平臺運行。
  Cloudsim可通過擴展的方式來提供GUI界面(CloudReports),當然也有很多其他的擴展,具體信息詳見官網,在本博客中,我們着重分析Cloudsim的源碼,和實現虛擬機的的算法調度分配,不會涉及太多任務分配的內容。
  CloudSim的體系結構主要分爲四個層次,如下圖所示。



  • Cloudsim仿真層爲雲計算的虛擬數據中心環境的配置和仿真提供支持,包括虛擬機、內存、容量及帶寬的接口,該層用於主機分配到虛擬機的策略研究,並通過擴展核心的虛擬機調度函數實現。
  • Cloudsim最上層是用戶代碼層,該層提供一些基本的實體,如主機、應用、虛擬機,用戶數和應用類型,以及代理調度策略等。通過擴展這些實體,雲應用開發人員可以在該層開發各種用戶需求分佈、應用配置、雲可用性場景等應用調度技術,並執行Cloudsim支持的雲配置的Robust測試。

      通過擴展Cloudsim提供的基本功能,研究者能基於特定環境和配置進行測試,完成雲計算關鍵技術的開發研究。CloudSim繼承了GridSim並支持雲計算的研究和開發,CloudSim的組件工具均爲開源的。其中CloudSim具有兩個獨特功能(具體詳盡的功能可以見官網):

  • 第一,提供虛擬化的引擎,使用戶可在數據中心的節點上建立和管理獨立的、協同的虛擬化服務;

  • 第二,在對虛擬化服務分配處理核心時,可在時間共享和空間共享之間靈活切換。

      在CloudSim函數庫中有幾個主要核心類

  • (1)Cloudlet類:構建雲環境下的任務。

  • (2)DataCenter類:數據中心,提供虛擬化的網格資源,處理虛擬機信息的查詢,包含虛擬機對資源的分配策略,雲計算採用VMProvisioner處理虛擬機。
  • (3)DataCenterBroker類:隱藏了虛擬機的管理,如創建、任務提交、虛擬機的銷燬等。
  • (4)Host類:擴展了機器對虛擬機除處理單元(PE)之外的參數分配策略,如帶寬、存儲空間、內存等,一臺Host可對應多臺虛擬機。
  • (5)VirtualMachine類:虛擬機類,運行在Host上,與其它虛擬機共享資源,每臺虛擬機由一個擁有者所有,可提交任務,並由VMScheduler類定製該虛擬機的調度策略。
  • (6)VMScheduler類:虛擬機的調度策略,用來管理執行任務,實現了任務接口。
  • (7)VMCharacteristics類:提供虛擬機描述。
  • (8)VMMAllocationPolicy類:虛擬機監視器策略類,描述同一Host上的多臺虛擬機共享資源的策略。
  • (9)VMProvisioner類:實現數據中心的主機到虛擬機的映射。

      但是我一直沒找到VMProvisioner類在哪裏,翻遍了Cloudsim 3.0 的API文檔…

二、Cloudism配置與樣例運行

Cloudism配置

  安裝jdk 1.8 ,下載cloudsim,其實下載這種東西,國內的博客和資料都太誤導人了,比如:必須要用csdn C幣,pudn 下載積分等等。其實國外的這些開源代碼必定有官網支持下載,或者開源在github上,我們只需掌握搜索技巧就可以很簡單的找到。國內的這種付費下載很多時候都不是自己的知識產權,都是copy別人的東西,還天天嚷嚷着付費下載,在博客裏到處宣傳,實在是不妥。
  比如Cloudism,官網網不用翻牆:CloudSim:雲計算基礎架構和服務的建模和仿真框架。,CloudSim上提供了多個教程和博客文章,github上也有[歷史版本和最新版本]。另外,還有一個在線課程介紹了CloudSim Simulation Framework,涵蓋了安裝,體系結構和執行描述以及示例仿真。(https://github.com/Cloudslab/cloudsim/releases “歷史版本和最新版本”)。還有:cloudsim API文檔
  接着,配置環境變量,將cloudsim3.0.3/jar 下面的相關包導入環境變量。同時下載flanaga.jar包,下載好了之後將這個jar包放在cloudsim的jars文件夾裏。
  打開eclipse,File->New->Java Project,取消Use Default Location,選擇Location爲自己下載的cloudsim的位置,,Project Name 使用自動出現的cloudsim-3.0.3,選擇默認的其他設置,點擊Finish。在開發伊始使用IDEA也是可以的,操作基本一樣。
  導入進去之後,工程應該如下圖:




  可以看到source目錄下有報錯,其實那是apache的相關包沒有導入,剛開始不知道要不要用到,所以起初先沒管。在訪問Cloudsim官網時,看到了報錯的原因以及所需的架包。“要成功配置CloudSim Simulation工具包,我們必須下載一個名爲’commons-math3-3.6.1-bin.zip’的文件,這裏是下載地址,完成後提取'commons-math3-3.6.1.jar',導入eclipse依賴。”


樣例運行

  Cloudsim 3.0 給出的樣例具有簡單的功能,最新的4.0版本的樣例功能詳見官網說明,下面給出3.0版本的每個樣例模擬的環境:

  • (1)CloudSimExample1.Java:創建一個一臺主機、一個任務的數據中心
  • (2)CloudSimExample2.java:創建一個一臺主機、兩個任務的數據中心。兩個任務具有一樣的處理能力和執行時間
  • (3)CloudSimExample3.java:創建一個兩臺主機、兩個任務的數據中心。兩個任務對處理能力的需求不同,同時根據申請虛擬機的性能不同,所需執行時間也不相同
  • (4)CloudSimExample4.java:創建兩個數據中心,每個數據中心一臺主機,並在其上運行兩個雲任務
  • (5)CloudSimExample5.java:創建兩個數據中心,每個數據中心一臺主機,並在其上運行兩個用戶的雲任務
  • (6)CloudSimExample6.java:創建可擴展的仿真環境
  • (7)CloudSimExample7.java:演示如何停止仿真
  • (8)CloudSimExample8.java:演示如何在運行時添加實體
  • (9)network:包含網絡仿真的例子
  • (10)power:包含演示CloudSim power-aware特點的例子

      運行示例二,查看結果:



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章