03-12-2012, 01:37 PM
CloudSim: A Novel Framework for Modeling and Simulation of Cloud Computing Infrastructures and Services
Cloudsim.pdf (Size: 1.32 MB / Downloads: 26)
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.
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.
Related Works
Cloud computing
Cloud computing can be defined as “a type of parallel and
distributed system consisting of a collection of interconnected
and virtualized computers that are dynamically
provisioned and presented as one or more unified
computing resources based on service-level agreements
established through negotiation between the service
provider and consumers” [1]. Some examples of emerging
Cloud computing infrastructures are Microsoft Azure [2],
Amazon EC2, Google App Engine, and Aneka [3].
Simulation
In the past decade, Grids [5] have evolved as the
infrastructure for delivering high-performance service for
compute and data-intensive scientific applications. To
support research and development of new Grid
components, policies, and middleware; several Grid
simulators, such as GridSim [9], SimGrid [7], and
GangSim [4] have been proposed. SimGrid is a generic
framework for simulation of distributed applications in
Grid platforms. GangSim is a Grid simulation toolkit that
provides support for modeling of Grid-based virtual
organisations and resources. On the other hand, GridSim is
an event-driven simulation toolkit for heterogeneous Grid
resources. It supports modeling of grid entities, users,
machines, and network, including network traffic
CloudSim Architecture
Figure 2 shows the layered implementation of the
CloudSim software framework and architectural
components. At the lowest layer is the SimJava discrete
event simulation engine [6] that implements the core
functionalities required for higher-level simulation
frameworks such as queuing and processing of events,
creation of system components (services, host, data center,
broker, virtual machines), communication between
components, and management of the simulation clock.
Next follows the libraries implementing the GridSim
toolkit [9] that support high level software components for
modeling multiple Grid infrastructures, including networks
and associated traffic profiles, and fundamental Grid
components such as the resources, data sets, workload
traces, and information services.
Modeling the Cloud
The core hardware infrastructure services related to the
Clouds are modeled in the simulator by a Datacenter
component for handling service requests. These requests
are application elements sandboxed within VMs, which
need to be allocated a share of processing power on
Datacenter’s host components. By VM processing, we
mean set of operations related to VM life cycle:
provisioning of a host to a VM, VM creation, VM
destruction, and VM migration.
A Datacenter is composed by a set of hosts, which is
responsible for managing VMs during their life cycles.
Host is a component that represents a physical computing
node in a Cloud: it is assigned a pre-configured processing
(expressed in million of instructions per second – MIPS,
per CPU core), memory, storage, and a scheduling policy
for allocating processing cores to virtual machines. The
Host component implements interfaces that support
modeling and simulation of both single-core and multi-core
nodes.
Allocation of application-specific VMs to Hosts in a
Cloud-based data center is the responsibility of the Virtual
Machine Provisioner component (refer to Figure 2). This
component exposes a number of custom methods for
researchers, which aids in implementation of new VM
provisioning policies based on optimization goals (user
centric, system centric). The default policy implemented by
the VM Provisioner is a straightforward policy that
allocates a VM to the Host in First-Come-First-Serve
(FCFS) basis. The system parameters such as the required
number of processing cores, memory and storage as
requested by the Cloud user form the basis for such
mappings. Other complicated policies can be written by the
researchers based on the infrastructure and application
demands.