云計算及其仿真環(huán)境CloudSim_第1頁
云計算及其仿真環(huán)境CloudSim_第2頁
云計算及其仿真環(huán)境CloudSim_第3頁
云計算及其仿真環(huán)境CloudSim_第4頁
云計算及其仿真環(huán)境CloudSim_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、云計算及其仿真環(huán)境云計算及其仿真環(huán)境CloudSimCloudSim四川 . 成都2013 年 5 月IT信息革命浪潮2/35小型機1980s大型機1960s分布式計算1990s個人電腦1990sNEXT云計算2010s2/34服務模式3/34平臺即服務(PaaS)基礎設施即服務(IaaS)開發(fā)平臺CPU內存存儲應用軟件軟件即服務虛擬機節(jié)點服務器軟件即服務(SaaS)AWSOpenStackEucalyptusIaaS云平臺管理模型4/34IaaS管理模型(文P10-12)部署5/34虛擬機部署(文P13)提提 綱綱 CloudSim簡介 CloudSim體系結構 CloudSim技術實現(xiàn) C

2、loudSim的使用方法 CloudSim的擴展 CloudSim簡介 CloudSimCloudSim-澳大利亞墨爾本大學Rajkumar Buyya教授領導團隊開發(fā)的云計算仿真器,它的首要目標是在云基礎設施(軟件、硬件、服務)上,對不同應用和服務模型的調度和分配策略的性能進行量化和比較,達到控制使用云計算資源的目的 仿真框架有特性仿真框架有特性(1)支持在單個物理計算節(jié)點上進行大規(guī)模云計算基礎設施的仿真和實例化(2)提供一個獨立的平臺,供數(shù)據(jù)中心、服務代理、調度和分配策略進行建模(3)提供虛擬化引擎,可在一個數(shù)據(jù)中心節(jié)點創(chuàng)建和管理多個獨立、協(xié)同的虛擬化服務(4)可以在共享空間和共享時間的處

3、理核心分配策略之間靈活地切換虛擬化服務 提提 綱綱 CloudSim簡介 CloudSim體系結構 CloudSim技術實現(xiàn) CloudSim的使用方法 CloudSim的擴展 CloudSim體系結構 CloudSim核心模擬引擎 1 1)CloudSimCloudSim主類,負責管理事件隊列和控制仿真事件的順序執(zhí)行。這些事件按照它們的時間參數(shù)構成有序隊列 (1)支持實體失活操作(2)支持不同狀態(tài)實體的上下文切換,暫?;蚶^續(xù)仿真流程(3)支持運行中創(chuàng)建新實體(4)支持運行中終止或重啟仿真流程 CloudSim核心模擬引擎 2 2)DeferredQueueDeferredQueue實現(xiàn)實現(xiàn)C

4、loudSimCloudSim使用的延時事件隊列使用的延時事件隊列3 3)FutureQueueFutureQueue實現(xiàn)實現(xiàn)CloudSimCloudSim使用的未來事件隊列使用的未來事件隊列4 4)CloudInformationServiceCloudInformationService(CISCIS)提供資源注冊、索引和發(fā)現(xiàn)能力的實體。支持兩個基本操作:提供資源注冊、索引和發(fā)現(xiàn)能力的實體。支持兩個基本操作:publish()允許實體使用允許實體使用CIS進行注冊;進行注冊;search()允許類似于允許類似于CloudCoordinator和和Brokers的實體發(fā)現(xiàn)其他實體的狀態(tài)和位

5、置,該的實體發(fā)現(xiàn)其他實體的狀態(tài)和位置,該實體也會在仿真結束時通知其他實體實體也會在仿真結束時通知其他實體5 5)SimEntitySimEntity代表一個仿真實體,該實體既能向其他實體發(fā)送消息,也能處理接代表一個仿真實體,該實體既能向其他實體發(fā)送消息,也能處理接收到的消息。所有的實體必須擴展該類并重寫其中的三個核心方法:收到的消息。所有的實體必須擴展該類并重寫其中的三個核心方法:startEntity()startEntity()、processEvent()processEvent()和和shutdownEntity()shutdownEntity(),它們分別,它們分別定義了實體初始化、

6、事件處理和實體銷毀的行為定義了實體初始化、事件處理和實體銷毀的行為 CloudSim核心模擬引擎 6 6)CloudSimTagsCloudSimTags包含多個靜態(tài)的時間或命令標簽,包含多個靜態(tài)的時間或命令標簽,CloudSimCloudSim實體在接收和發(fā)送事件實體在接收和發(fā)送事件時使用這些標簽決定要采取的操作類型時使用這些標簽決定要采取的操作類型7 7)SimEventSimEvent給出了在兩個或多個實體間傳遞仿真事件的過程。給出了在兩個或多個實體間傳遞仿真事件的過程。SimEventSimEvent存儲了存儲了關于事件的信息,包括事件的類型、初始化時間、事件發(fā)生的時間、關于事件的信息

7、,包括事件的類型、初始化時間、事件發(fā)生的時間、結束時間、事件轉發(fā)到目標實體的時間、資源標識、目標實體、事結束時間、事件轉發(fā)到目標實體的時間、資源標識、目標實體、事件標簽及需要傳輸?shù)侥繕藢嶓w的數(shù)據(jù)件標簽及需要傳輸?shù)侥繕藢嶓w的數(shù)據(jù)8 8)CloudSimShutdownCloudSimShutdown用于結束所有終端用戶和代理實體,然后向用于結束所有終端用戶和代理實體,然后向CISCIS發(fā)送仿真結束信號發(fā)送仿真結束信號9 9)PredicatePredicate抽象類且必須被擴展,用于從延時隊列中選擇事件抽象類且必須被擴展,用于從延時隊列中選擇事件CloudSim核心模擬引擎 1010)Predi

8、cateAnyPredicateAny表示匹配延時隊列中任何一個事件。在表示匹配延時隊列中任何一個事件。在CloudSimCloudSim的類中有個可以公的類中有個可以公開訪問的實例開訪問的實例CloudSim.SIM_ANYCloudSim.SIM_ANY,因此不需要為該類創(chuàng)建新的實例,因此不需要為該類創(chuàng)建新的實例1111)PredicateFromPredicateFrom表示選擇被特定實體放棄的事件表示選擇被特定實體放棄的事件1212)PredicateNonePredicateNone表示不匹配延時隊列中的任何事件。在表示不匹配延時隊列中的任何事件。在CloudSimCloudSim中

9、有個可以公開訪中有個可以公開訪問的靜態(tài)實體問的靜態(tài)實體CloudSim.SIM_NONECloudSim.SIM_NONE,因此用戶不需要為該類創(chuàng)建任,因此用戶不需要為該類創(chuàng)建任何新的實體何新的實體1313)PredicateNotFromPredicateNotFrom選擇已經(jīng)被特定對象發(fā)送的事件選擇已經(jīng)被特定對象發(fā)送的事件1414)PredicateTypePredicateType根據(jù)特定標簽選擇事件根據(jù)特定標簽選擇事件1515)PredicateNotTypePredicateNotType選擇不滿足特定標簽的事件選擇不滿足特定標簽的事件 CloudSim層 CloudSimCloud

10、Sim仿真層仿真層 -為云數(shù)據(jù)中心環(huán)境的建模和仿真提供支持,包括虛擬機、內存、存儲器和帶寬的專用管理接口。該層主要負責處理一些基本問題,如主機到虛擬機的調度、管理應用程序的執(zhí)行、監(jiān)控動態(tài)變化的系統(tǒng)狀態(tài) 網(wǎng)絡層網(wǎng)絡層 -模擬真實網(wǎng)絡拓撲,延時矩陣延時矩陣中存儲的信息模擬一個消息從一個CloudSim實體(如主機)到另一個實體(如云代理)過程中產(chǎn)生的網(wǎng)絡延時 CloudSim層 2.2.云資源層云資源層-與云相關的核心硬件基礎設施均由該層數(shù)據(jù)中心組件來模擬。數(shù)據(jù)中心實體由一系列主機組成,主機負責管理虛擬機在其生命周期內的一系列操作。每個主機都代表云中的一個物理計算節(jié)點,它會被預先配置一些參數(shù),如處

11、理器能力(用MIPS表示)、內存、存儲器及為虛擬機分配處理核的策略等 -為了整合多朵云,需要對云協(xié)調器(CloudCoordinator)實體進行建模。該實體不僅負責和其他數(shù)據(jù)中心及終端用戶的通信,還負責監(jiān)控和管理數(shù)據(jù)中心實體的內部狀態(tài)。在監(jiān)控過程中收到的信息將會活躍于整個仿真過程中,并被作為云交互時進行調度決策的依據(jù) CloudSim層 3.云服務層-虛擬機分配是主機創(chuàng)建虛擬機實例的一個過程 ,在云數(shù)據(jù)中心,將特定應用的虛擬機分配給主機是由虛擬機分配控制器(VmAllocationPolicy)完成 -考慮情況考慮情況:一臺擁有兩個CPU內核的主機要運行兩個虛擬機,每個虛擬機需要兩個內核并要

12、運行4個任務單元。更具體來說,VM1上將運行任務t1、t2、t3、t4,而VM2上將運行任務t5、t6、t7、t8 (a)中虛擬機和任務單元均采用空間共享策略。由于采用空間共享模式,且每個虛擬機需要兩個內核,所以在特定時間段內只能運行一個虛擬機。因此,VM2只能在VM1執(zhí)行完任務單元才會被分配內核。VM1中的任務調度也是一樣的,由于每個任務單元只需要一個內核,所以t1和t2可以同時執(zhí)行,t3、t4則在執(zhí)行隊列中等待t1、t2完成后再執(zhí)行 (b)虛擬機采用空間共享策略,任務單元采用時間共享策略。因此,在虛擬機的生命周期內,所有分配給虛擬機的任務單元在其生命周期內動態(tài)地切換上下文環(huán)境 (c)虛擬機

13、采用時間共享策略,任務單元使用空間共享策略。這種情況下,每個虛擬機都會收到內核分配的時間片,然后這些時間片以空間共享的方式分配給任務單元。由于任務單元基于空間共享策略,這就意味著對于一臺虛擬機,在任何一個時間段內,內核只會執(zhí)行一個任務 (d)虛擬機和任務單元均采用時間共享策略。所有虛擬機共享處理器能力,且每個虛擬機同時將共享的能力分給其任務單元。這種情況下,任務單元不存在排隊延時 CloudSim層 4. 4. 虛擬機服務層虛擬機服務層-提供了對虛擬機生命周期的管理,如將主機分配給虛擬機、虛擬機創(chuàng)建、虛擬機銷毀以及虛擬機的遷移等,以及對任務單元的操作5. 5. 用戶接口結構層用戶接口結構層-提

14、供了任務單元和虛擬機實體的創(chuàng)建接口 用戶代碼層 CloudSimCloudSim的最高層是用戶代碼層,該層提供了一些基本的實的最高層是用戶代碼層,該層提供了一些基本的實體,如主機(機器的數(shù)量、特征等)、應用(任務數(shù)和需體,如主機(機器的數(shù)量、特征等)、應用(任務數(shù)和需求)、虛擬機,還有用戶數(shù)量和應用類型,以及代理調度策求)、虛擬機,還有用戶數(shù)量和應用類型,以及代理調度策略等。通過擴展這一層提供的基本實體,云應用開發(fā)人員能略等。通過擴展這一層提供的基本實體,云應用開發(fā)人員能夠進行以下活動夠進行以下活動(1 1)生成工作負載分配請求和應用配置請求)生成工作負載分配請求和應用配置請求(2 2)模擬云

15、可用性場景,并基于自定義配置進行穩(wěn)健性測試)模擬云可用性場景,并基于自定義配置進行穩(wěn)健性測試(3 3)為云及聯(lián)合云實現(xiàn)了自定義的應用調度技術)為云及聯(lián)合云實現(xiàn)了自定義的應用調度技術 提提 綱綱 CloudSim簡介 CloudSim體系結構 CloudSim技術實現(xiàn) CloudSim的使用方法 CloudSim的擴展 CloudSim云模擬器的類設計圖 CloudSim技術實現(xiàn) 1 1)BwProvisionerBwProvisioner用于模擬虛擬機的帶寬分配策略??梢酝ㄟ^擴展這個類反映其應用需求的變化,實現(xiàn)自己的策略(基于優(yōu)先級或服務質量)2 2)CloudCoordinatorCloud

16、Coordinator整合了云數(shù)據(jù)中心,負責周期性地監(jiān)控數(shù)據(jù)中心資源的內部狀態(tài)和執(zhí)行動態(tài)負載均衡的決策 3 3)CloudletCloudlet模擬了云應用服務(如內容分發(fā)、社區(qū)網(wǎng)絡和業(yè)務工作流等)。每一個應用服務都會擁有一個預分配的指令長度和其生命周期內所需的數(shù)據(jù)傳輸開銷4 4)CloudletSchedulerCloudletScheduler擴展實現(xiàn)了多種策略,用于決定虛擬機內的應用服務如何共享處理器能力。支持兩種調度策略:空間共享(CloudletSchedulerSpaceShared)和時間共享(CloudletSchedulerTimeShared)策略 CloudSim技術實現(xiàn)

17、 5 5)DatacenterDatacenter模擬了云提供商提供的核心基礎設施級服務(硬件)。它封裝了一系列的主機,且這些主機都支持同構和異構的資源(內存、內核、容量和存儲)配置 6 6)DatacenterBrokerDatacenterBroker模擬了一個代理,負責根據(jù)服務質量需求協(xié)調SaaS提供商和云提供商。該代理代表SaaS提供商,它通過查詢云信息服務(Cloud Information Service)找到合適的云服務提供者,并根據(jù)服務質量的需求在線協(xié)商資源和服務的分配策略 CloudSim技術實現(xiàn) 7 7)DatacenterCharacteristicsDatacenter

18、Characteristics包含了數(shù)據(jù)中心資源的配置信息8 8)HostHost模擬如計算機、存儲服務器等物理資源。它封裝了一些重要信息,如內存/存儲器的容量、處理器內核列表及類型(多核機器)、虛擬機之間共享處理能力的分配策略、為虛擬機分配內存和帶寬的策略等9 9)NetworkTopologyNetworkTopology包含模擬網(wǎng)絡行為(延時)的信息。它里面保存了網(wǎng)絡拓撲信息,該信息由BRITE拓撲生成器生成1010)RamProvisionerRamProvisioner代表為虛擬機分配主存的策略1111)SanStorageSanStorage模擬了云數(shù)據(jù)中心的存儲區(qū)域網(wǎng),主要用于存

19、儲大量數(shù)據(jù),類似于Amazon S3、Azure blob storage等 CloudSim技術實現(xiàn) 1212)SensorSensor該接口的實現(xiàn)必須通過實例化一個能夠被云協(xié)調器使用的傳感器組件,用于監(jiān)控特定的性能參數(shù)(能量消耗、資源利用)。該接口定義了如下方法:(1)為性能參數(shù)設置最小值和最大值。(2)周期性地更新測量值。(3)該類能夠用于模擬由主流云提供商提供的真實服務 1313)VmVm模擬由主機組件托管和管理的虛擬機 1414)VmAllocationPolicyVmAllocationPolicy代表虛擬機監(jiān)視器使用的調度策略,該策略用于將虛擬機分配給主機 1515)VmShed

20、ulerVmSheduler由一個主機組件實現(xiàn),模擬為虛擬機分配處理核所用的策略(空間共享和時間共享) 提提 綱綱 CloudSim簡介 CloudSim體系結構 CloudSim技術實現(xiàn) CloudSim的使用方法 CloudSim的擴展 環(huán)境配置 1 1)JDKJDK安裝和配置安裝和配置http:/ C:Program FilesJavajdk1.6.0_24FilesJavajdk1.6.0_24。設置環(huán)境變量:新建系統(tǒng)變量JAVA_HOME,變量值設為JDK安裝目錄,即C:Program C:Program FilesJavajdk1.6.0_24FilesJavajdk1.6.0_2

21、4;在Path中加入路徑%JAVA_HOME%bin%JAVA_HOME%bin;在ClassPath中加入路徑%JAVA_HOME%libdt.jar; %JAVA_HOME%libdt.jar; %JAVA_HOME%libtools.jar%JAVA_HOME%libtools.jar2 2)CloudSimCloudSim安裝和配置安裝和配置從/cloudsim/下載CloudSim,本書以CloudSim2.1.1為例。將其解壓到磁盤,例如C:cloudsim-2.1.1。設置環(huán)境變量:在ClassPath中加入路徑C:cloudsim-C

22、:cloudsim-2.1.1jarscloudsim-2.1.1.jar; C:cloudsim-2.1.1jarscloudsim-2.1.1.jar; C:cloudsim-2.1.1jarscloudsim-examples-2.1.1.jar2.1.1jarscloudsim-examples-2.1.1.jar 運行樣例程序 1 1)樣例描述)樣例描述C:cloudsim-2.1.1examples目錄下提供了一些CloudSim樣例程序,每個樣例模擬的環(huán)境如下:(1)CloudSimExample1.java:創(chuàng)建一個一臺主機、一個任務的數(shù)據(jù)中心(2)CloudSimExampl

23、e2.java:創(chuàng)建一個一臺主機、兩個任務的數(shù)據(jù)中心。兩個任務具有一樣的處理能力和執(zhí)行時間(3)CloudSimExample3.java:創(chuàng)建一個兩臺主機、兩個任務的數(shù)據(jù)中心。兩個任務對處理能力的需求不同,同時根據(jù)申請?zhí)摂M機的性能不同,所需執(zhí)行時間也不相同(4)CloudSimExample4.java:創(chuàng)建兩個數(shù)據(jù)中心,每個數(shù)據(jù)中心一臺主機,并在其上運行兩個云任務(5)CloudSimExample5.java:創(chuàng)建兩個數(shù)據(jù)中心,每個數(shù)據(jù)中心一臺主機,并在其上運行兩個用戶的云任務(6)CloudSimExample6.java:創(chuàng)建可擴展的仿真環(huán)境(7)CloudSimExample7.j

24、ava:演示如何停止仿真(8)CloudSimExample8.java:演示如何在運行時添加實體(9)network:包含網(wǎng)絡仿真的例子(10)power:包含演示CloudSim power-aware特點的例子 運行步驟 2.2.運行步驟運行步驟( Eclipse中執(zhí)行)(1)首先啟動Eclipse主程序,在Eclipse主界面上選擇FileNewProject命令,打開“New Project”窗口(如圖9-9所示),新建一個工程(2)選擇“Java Project”,單擊“Next”,創(chuàng)建一個Java工程 (3)填寫Java工程的名稱,取消選擇復選框“Use default loca

25、tion”,瀏覽CloudSim源代碼所在的目錄,并選定該目錄 (4)單擊“Next”按鈕,顯示Java工程的配置界面,該界面的選項卡包括源代碼、工程和庫等信息 (5)單擊“Finish”按鈕完成創(chuàng)建Java工程的工作 在Eclipse的主界面上,選中一個實例的源代碼,這里選擇CloudSimExample3,然后單擊運行 程序的運行結果 提提 綱綱 CloudSim簡介 CloudSim體系結構 CloudSim技術實現(xiàn) CloudSim的使用方法 CloudSim的擴展 調度策略的擴展 1. 順序分配策略新寫一個方法bindCloudletsToVmsSimple(),用于把一組任務順序分

26、配給一組虛擬機,當所有的虛擬機都運行有任務后,再從第一個虛擬機開始重頭分配任務 2. 貪心策略為DatacenterBroker類再寫一新方法bindCloudletsToVmsTimeAwared (),該方法采用貪心策略。定義一個矩陣timeij,表示任務i在虛擬機j上所需的執(zhí)行時間。在初始化矩陣time前,首先將任務按MI的大小降序排序,將虛擬機按MIPS的大小升序排列 貪心策略貪心策略:從矩陣中行號為0的任務開始,每次都嘗試分配給最后一列對應的虛擬機,如果該選擇相對于其他選擇是最優(yōu)的,就完成分配,否則將任務分配給使當前結果最優(yōu)的虛擬機。同時,如果有多種分配方法都能使當前結果最優(yōu),則將任務分配給運行任務最少的虛擬機 源代碼可在源代碼可在http:/http:/的教材板塊下載!的教材板塊下載! 仿真核心代碼 1.1.仿真步驟仿真步驟 (1)初始化CloudSim包(2)創(chuàng)建數(shù)據(jù)中心 (a)創(chuàng)建主機列表 (b)創(chuàng)建PE列表 (c)創(chuàng)建PE并將其添加到上一步創(chuàng)建的PE列表中,可對其ID和MIPS進行設置 (d)創(chuàng)建主機,并將其添加到主機列表中,主機的配置參數(shù)有ID、內存、帶寬、存儲、PE及虛擬機分配策略(時間或空間共享) (e)創(chuàng)建數(shù)據(jù)中心特征對象,用來存儲數(shù)據(jù)中心的屬性,包含體系結構、操作系統(tǒng)、機器列表、分配策略(時間、空間共享)、時區(qū)以及各項費用(內存、外存、

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論