CloudSim
- CloudSim是墨爾本大學雲計算和分布式系統實驗室推出的雲計算模擬軟件。它可以使研究者規避實際部署的諸多不便(比如說資金缺乏等因素),在單機上即可實現對大規模雲集群的模擬和相應算法的測試。好了,閑話少說。下面,我將分節對CloudSim的使用和學習心得進行一個簡單的介紹。
CloudSim入門
下面介紹的例子以cloudSim中的示例程序為主,cloudSim版本為3.0.3.
1. 重點介紹的幾個基礎類:
- Cloudlet
對應的是雲端的應用 - Vm
對應的是虛擬機,封裝了虛擬機的屬性和行為 - Broker
對應的是用戶代理,是雲端用戶的代表.包括虛擬機和雲應用在內的資源都要綁定到Broker. - Host
對應的是物理主機 - Datacenter
對應的是數據中心,所有的物理主機資源必須綁定到數據中心.數據中心至少要創建1個.
2. 進行模擬編程的基本步驟:
- 初始化CloudSim
- 創建數據中心Datacenter
- 創建用戶代理Broker
- 創建虛擬機Vm
- 創建應用Cloudlet
- 將雲端應用綁定到指定的虛擬機
- 開啟模擬仿真
- 結束模擬仿真
- 打印輸出
3. 物理主機的創建
需要的參數 @parameter :
-
主機編號;
-
內存;
-
網絡帶寬;
-
外存容量;
-
cpu列表;
-
虛擬機調度策略(主機上的)
new Host( hostId, new RamProvisionerSimple(ram), new BwProvisionerSimple(bw), storage, peList, new VmSchedulerTimeShared(peList) );
4. 數據中心的創建
首先創建數據中心特性:
需要的參數 @parameter :
-
主機架構
-
操作系統
-
虛擬機監視器種類
-
時區
-
cpu的使用費用
-
內存的使用費用
-
外存的使用費用
-
帶寬的使用費用
new DatacenterCharacteristics( arch, os, vmm, hostList, time_zone, cost, costPerMem, costPerStorage, costPerBw);
創建數據中心:
-
數據中心的名字
-
數據中心特性
-
虛擬機的創建策略
-
存儲設備列表
new Datacenter(name, characteristics, new VmAllocationPolicySimple(hostList), storageList, 0);
5. 虛擬機的創建
需要的參數 @parameter:
-
虛擬機編號
-
用戶
-
MIPS(Tips:CPU是由MIPS來標定其計算能力的)
-
鏡像大小(MB)
-
內存大小(MB)
-
網絡帶寬
-
cpu數量
-
虛擬機監視器類型
-
應用調度策略(虛擬機上的)
new Vm(vmid, brokerId, mips, pesNumber, ram, bw, size, vmm, new CloudletSchedulerTimeShared());
6. 應用的創建
需要的參數 @parameter :
-
應用編號
-
執行時的應用長度(MI)
-
要使用到的處理器數量
-
提交應用前的文件大小(byte)
-
應用執行完成后的文件大小(byte)
-
cpu的使用模型/策略
-
ram的使用模型/策略
-
網絡帶寬的使用模型/策略
new Cloudlet(id, length, pesNumber, fileSize, outputSize, utilizationModel, utilizationModel, utilizationModel);
7. 用戶的創建
一般情況下,Broker的創建需要自定義以適應不同的用戶策略.