Sunteți pe pagina 1din 32

iCanCloud simulation platform

Authors: Alberto Núñez and Gabriel G. Castañé

June 12th − 15th , 2012


Outline

1 Introduction

2 iCanCloud Architecture

3 Different ways to use iCanCloud


Outline

1 Introduction
What is it?
iCanCloud goals
iCanCloud main parts

2 iCanCloud Architecture
Main Scheme
Infraestructure
User Model
Cloud Manager

3 Different ways to use iCanCloud


The GUI
Scheduling studies
Developing models
Defining an application
Introduction iCanCloud Architecture Different ways to use iCanCloud Conclusions

What is it?

iCanCloud simulation platform


What is it?

iCanCloud is a simulation platform that provides to the


users a complete set of models to realize their own
experiments about cloud computing environments.
Introduction iCanCloud Architecture Different ways to use iCanCloud Conclusions

What is it?

iCanCloud simulation platform


Structure

iCanCloud is built over INET and OMNET++

Programmed in C++
Introduction iCanCloud Architecture Different ways to use iCanCloud Conclusions

iCanCloud goals

How iCanCloud is
It is ..

Flexible to ease users to launch different kind of


experiments

Scalable to let system grown without loose the low level


detail

Easy to use with it’s GUI and API

Portable to let users use their own platform


(Unix/Windows)
Introduction iCanCloud Architecture Different ways to use iCanCloud Conclusions

iCanCloud main parts

Main parts of iCanCloud


Conceptual system model
Outline

1 Introduction
What is it?
iCanCloud goals
iCanCloud main parts

2 iCanCloud Architecture
Main Scheme
Infraestructure
User Model
Cloud Manager

3 Different ways to use iCanCloud


The GUI
Scheduling studies
Developing models
Defining an application
Introduction iCanCloud Architecture Different ways to use iCanCloud Conclusions

Main Scheme

Arquitecture Main Scheme


iCanCloud Architecture
Introduction iCanCloud Architecture Different ways to use iCanCloud Conclusions

Infraestructure

iCanCloud Infraestructure
iCanCloud Architecture
Introduction iCanCloud Architecture Different ways to use iCanCloud Conclusions

User Model

iCanCloud User Model


iCanCloud Architecture
Introduction iCanCloud Architecture Different ways to use iCanCloud Conclusions

Cloud Manager

iCanCloud Manager
iCanCloud Architecture
Introduction iCanCloud Architecture Different ways to use iCanCloud Conclusions

Cloud Manager

iCanCloud Manager
Example
Outline

1 Introduction
What is it?
iCanCloud goals
iCanCloud main parts

2 iCanCloud Architecture
Main Scheme
Infraestructure
User Model
Cloud Manager

3 Different ways to use iCanCloud


The GUI
Scheduling studies
Developing models
Defining an application
Introduction iCanCloud Architecture Different ways to use iCanCloud Conclusions

Different ways to use iCanCloud

The GUI
I GUI to define simulation parameters
I MPI, Map-Reduce provided models

Using APIs to study scheduling policies


I API to program Cloud Manager scheduling policies
I API to customize Hypervisor hardware access

Developing modules
I Open Source to program or modify modules
I Hight detailed models for filesystems, diskdrives, volume
anagers, block cache ..
Introduction iCanCloud Architecture Different ways to use iCanCloud Conclusions

The GUI

The GUI
Main Screen
Introduction iCanCloud Architecture Different ways to use iCanCloud Conclusions

The GUI

The GUI
Configuring an application
Introduction iCanCloud Architecture Different ways to use iCanCloud Conclusions

The GUI

The GUI
Configuring users
Introduction iCanCloud Architecture Different ways to use iCanCloud Conclusions

The GUI

The GUI
Configuring a VM set
Introduction iCanCloud Architecture Different ways to use iCanCloud Conclusions

The GUI

The GUI
Configuring a Cloud
Introduction iCanCloud Architecture Different ways to use iCanCloud Conclusions

The GUI

The GUI
Running Simulations
Introduction iCanCloud Architecture Different ways to use iCanCloud Conclusions

Scheduling studies

Interface provided by the Cloud-Manager class


Cloud Manager API
1 class CloudManager:public iCanCloud_Base{
2 protected:
3 list <CloudJob*> waitingQueue;
4 list <CloudJob*> finishQueue; Cloud Manager Structures
5 list <CloudUser*> userList;
6 list <NodeSet*> NodesMap; Modular
7 list <VMInstance*> VMsMap;
8 ...
Auto-managed
9
10 private:
11 list <CloudJob*> get_job_list ();
12 CloudJob* get_job (jobID); Private methods
13 VMInstance startup_vm (vmID);
14 VMInstance stop_vm (vmID); Cloud management
15 void insert_waiting_q (userID, jobID, vmID);
16 void run_job (vmID, jobID); Move between queues
17 void move_qSrc_to_qDst (jobID, qSrc, qDst);
18 ...
19
20 public: User reprogrammable methods
21 void job_has_finished (jobID, results);
22 jobID select_job (); Cloud Manager Scheduler
23 vmID select_node ();
24 vmID select_vm (); Jobs notifications
25 void job_has_been_inserted ();
26 void job_has_finished (jobID);
27
28 };
Introduction iCanCloud Architecture Different ways to use iCanCloud Conclusions

Scheduling studies

iCanCloud API
Hypervisor
1 class Hypervisor:public iCanCloud_Base{
2 protected: Hypervisor Structures
3 list <cMessage*> requestsCPU;
4 list <cMessage*> requestsMemory; Divided into 4 Managers
5 list <cMessage*> requestsNet;
6 list <cMessage*> requestsBlockServer; Auto-managed
7 ...
8
9 private:
10 int searchUnassignedCPU (vmID);
11 int searchFreeBSGate (vmID);
12 int searchFreeBSGate (vmID); Private methods
13 int searchNetworkInterface (vmID);
14 void processCPURequestMessage (cMessage*); Hypervisor management
15 void processBSRequestMessage (cMessage*);
16 void processMemoryRequestMessage (cMessage*); Process structures
17 void processNetRequestMessage (cMessage*);
18 void processCPUResponseMessage (cMessage*);
19 void processBSResponseMessage (cMessage*);
20 void processMemoryResponseMessage (cMessage*);
21 void processNetResponseMessage (cMessage*);
22 ...
23 public:
24 void scheduleCPU (jobID, vmID); Scheduling methods to access HW
25 void scheduleMemory (jobID, vmID);
26 void scheduleBS (jobID, vmID); Hypervisor Scheduler
27 void scheduleNet (jobID, vmID);
28 };
Select Job from a VM
Introduction iCanCloud Architecture Different ways to use iCanCloud Conclusions

Developing models

iCanCloud from omnet++


omnet++
Introduction iCanCloud Architecture Different ways to use iCanCloud Conclusions

Developing models

iCanCloud from omnet++


omnet++
Introduction iCanCloud Architecture Different ways to use iCanCloud Conclusions

Developing models

iCanCloud from omnet++


omnet++
Introduction iCanCloud Architecture Different ways to use iCanCloud Conclusions

Developing models

iCanCloud from omnet++


omnet++
Introduction iCanCloud Architecture Different ways to use iCanCloud Conclusions

Developing models

iCanCloud from omnet++


omnet++
Introduction iCanCloud Architecture Different ways to use iCanCloud Conclusions

Defining an application

Defining an application
Example

./omnetpp-4.X/iCanCloud/src/Applications/Apps

1 package iCanCloud.Applications.Apps.BasicApplication;
2 import iCanCloud.Applications.Apps.IApp;
3
4 simple BasicApplication like IApp;
5
6 parameters:
7 string application_netType // Network type (INET or BASIC)
8 double startDelay // Starting delay time
9 int inputSize // Input size of data
10 int outputSize // Output size of data
11 int MIs // Number of MIs to execute
12 int iterations // Number of iterations;
13 @display(”i=msg/job") ;
14
15 gates:
16 input fromOS //Input gate from OS (Operating System)
17 output toOS //Output gate to OS (Operating System)
18 };
Introduction iCanCloud Architecture Different ways to use iCanCloud Conclusions

Conclusions to use iCanCloud

iCanCloud provides:
I Hight detailed models for filesystems, disk drives, volume
managers, block cache ..
I MPI, Map-Reduce provided models
I GUI to ease the launch of simulations
I APIs to program schedulers (Hypervisor and Cloud
Manager)

Main strengths:
I Open Source to program or modify modules
I Flexible
I Scalable
I Customizable level detail
Introduction iCanCloud Architecture Different ways to use iCanCloud Conclusions

Thanks for your attention!

Software available: www.icancloudsim.org


Appendix

Provided VMs
Instances of Amazon EC2

Machine Type Cores C.U. Memory Platform


Standard On-Demand Instances
Small (Default) 1 1 1.7GB 32bit
Large 2 2 7.5GB 64bit
Extra Large 4 2 15GB 64bit
High CPU On-Demand Instances
Medium 2 2.5 1.7GB 32bit
Extra Large 8 2.5 7GB 64bit

S-ar putea să vă placă și