1
CloudSim: A Novel Framework for Modeling and Simulation of Cloud Computing
Infrastructures and Services
Rodrigo N. Calheiros
1,2
, Rajiv Ranjan
1
, César A. F. De Rose
2
, and Rajkumar Buyya
1
1
Grid Computing and Distributed Systems (GRIDS) Laboratory
Department of Computer Science and Software Engineering
The University of Melbourne, Australia
2
Pontifical Catholic University of Rio Grande do Sul
Porto Alegre, Brazil
{rodrigoc, rranjan, raj}@csse.unimelb.edu.au, cesar.derose@pucrs.br
Abstract
Cloud computing focuses on delivery of reliable, secure,
fault-tolerant, sustainable, and scalable infrastructures for
hosting Internet-based application services. These
applications have different composition, configuration,
and deployment requirements. Quantifying the
performance of scheduling and allocation policy on a
Cloud infrastructure (hardware, software, services) for
different application and service models under varying
load, energy performance (power consumption, heat
dissipation), and system size is an extremely challenging
problem to tackle. To simplify this process, in this paper we
propose CloudSim: a new generalized and extensible
simulation framework that enables seamless modelling,
simulation, and experimentation of emerging Cloud
computing infrastructures and management services. The
simulation framework has the following novel features: (i)
support for modelling and instantiation of large scale
Cloud computing infrastructure, including data centers on
a single physical computing node and java virtual
machine; (ii) a self-contained platform for modelling data
centers, service brokers, scheduling, and allocations
policies; (iii) availability of virtualization engine, which
aids in creation and management of multiple, independent,
and co-hosted virtualized services on a data center node;
and (iv) flexibility to switch between space-shared and
time-shared allocation of processing cores to virtualized
services.
1. Introduction
Cloud computing delivers infrastructure, platform, and
software (application) as services, which are made
available as subscription-based services in a pay-as-you-go
model to consumers. These services in industry are
respectively referred to as Infrastructure as a Service
(Iaas), Platform as a Service (PaaS), and Software as a
Service (SaaS). In a Feb 2009 Berkeley Report [11], Prof.
Patterson et. al. stated “Cloud computing, the long-held
dream of computing as a utility, has the potential to
transform a large part of the IT industry, making software
even more attractive as a service”.
Clouds [10] aim to power the next generation data
centers by architecting them as a network of virtual
services (hardware, database, user-interface, application
logic) so that users are able to access and deploy
applications from anywhere in the world on demand at
competitive costs depending on users QoS (Quality of
Service) requirements [1]. Developers with innovative
ideas for new Internet services are no longer required to
make large capital outlays in the hardware and software
infrastructures to deploy their services or human expense to
operate it [11]. It offers significant benefit to IT companies
by freeing them from the low level task of setting up basic
hardware (servers) and software infrastructures and thus
enabling more focus on innovation and creation of business
values.
Some of the traditional and emerging Cloud-based
applications include social networking, web hosting,
content delivery, and real time instrumented data
processing. Each of these application types has different
composition, configuration, and deployment requirements.
Quantifying the performance of scheduling and allocation
policy on Cloud infrastructures (hardware, software,
services) for different application and service models under
varying load, energy performance (power consumption,
heat dissipation), and system size is an extremely
challenging problem to tackle. The use of real test beds
such as Amazon EC2, limits the experiments to the scale of
the testbed, and makes the reproduction of results an
extremely difficult undertaking, as the conditions
prevailing in the Internet-based environments are beyond
the control of the tester.
An alternative is the utilization of simulations tools that
open the possibility of evaluating the hypothesis prior to
software development in an environment where one can
reproduce tests. Specifically in the case of Cloud