Cloud computing is here to stay because of the great advantages that it offers. Service providers offering cloud computing need to evaluate their services from time to time. Real-time and real world evaluation can prove to be costly and impractical, so simulation offers an easy way out. This article introduces a selection of open source cloud computing simulators.
The cloud and cloud computing are among the more recent advances in the field of information technology. IT infrastructure and applications are provided to end users as services, using a standard pay-as-per-use model. Cloud computing has become widely prevalent because of recent advances in areas like virtualisation, grid computing, Web computing, utility computing and related technologies. Cloud computing is a powerful tool for accessing high performance computing (HPC) and storage infrastructure at reduced prices via the Internet. Some of the key characteristics of cloud computing are: on-demand access, elasticity, cost-effectiveness, scalability, minimal infrastructure management and location independence. Trillions of dollars are being invested in cloud computing today.
It is not possible, in the real world, for systems administrators, cloud specialists and even researchers to have actual cloud infrastructure to perform real-time experiments and implement new algorithms and methodologies. Before real-time implementation, it is essential to first measure performance and take serious note of all possible security issues. To address such challenges and issues, modelling and simulation technologies come to our rescue. The need for a cloud computing simulator arises in order to witness an implementation scenario in real-time. Cloud simulators play a crucial role in reducing the complexity of the infrastructure, in executing new algorithms, analysing security threats and measuring the overall quality and performance of the infrastructure.
Several cloud computing simulators are being developed to assist researchers, systems administrators, cloud specialists and network administrators in measuring the real-time performance of cloud computing environments. Getting the right tool for a given scenario or knowing what features each tool has is a challenging and complex task.
Some simulators are free and open source, while others are commercial. As free and open source simulators provide an environment for deep learning and experimentation, the trend is to specifically work on these simulators for all types of complex and real world problems of cloud computing.
The key advantages of using a simulation based framework in cloud computing are listed below:
- Simulators facilitate dynamic and flexible configuration and development environments. They enable researchers cum system administrators to learn and make the real-time cloud environment more scalable and reliable.
- Simulators provide easy-to-use command/graphical interfaces with lots of customisation options that help researchers visualise real world scenarios, thus avoiding all sorts of real-time problems.
- Simulators are the most cost-effective solution for real world implementation, as they are first designed, then developed, properly tested and if required, even redesigned, rebuilt and retested. Doing this in the real world is quite challenging in terms of cost and time.
- Simulators also enable researchers to simulate cloud environments with their own proposed performance, security and other provisioning algorithms.
Some of the top free and open source cloud computing simulators available today are explored in this article.
CloudSim is a new, highly generalised and extensible Java based simulation tool kit, and is actually regarded as a software framework. It supports several core functionalities like queuing and processing of events, the creation of CloudSim entities, communication among components and the management of the simulation clock. CloudSim has been developed by the CLOUDS Laboratory of the Computer Science and Software Engineering Department of the University of Melbourne, Australia by Prof. (Dr) Rajkumar Buyya. This tool kit enables seamless modelling, simulation and experimentation in cloud computing and application services. It can be termed as ‘running a model of an environment by taking the hardware as base, where technology-specific details are abstracted.’
CloudSim features include basic classes for deriving data centres, virtual machines, applications, users, computational resources, and policies for managing diverse parts of the system like scheduling and provisioning. It implements general application provisioning techniques, which can be extended easily with minimal effort.
The CloudSim simulator example depicting the creation of a data centre with one host running one cloudlet on it is demonstrated in Figure 1.
The latest version of CloudSim is 4.0. Its features are listed below:
- Supports modelling and simulation of large scale cloud computing data centres.
- Supports modelling and simulation of virtualised server hosts, along with customisable policies for provisioning host resources to virtual machines.
- Supports dynamic inclusion of simulation elements, discontinuations and restarts.
- Has support for user defined policies for allocating hosts to virtual machines (VMs).
- Supports the creation of various data centre network topologies, message-passing applications and energy-aware computational resources.
- Has the capability to simulate a federated cloud environment that inter-networks resources from both private and public domains. This is a critical feature for research into cloudbursts and automatic application scaling.
CloudAnalyst, a GUI based simulator derived from CloudSim, has some extended features and capabilities. CloudAnalyst was proposed by Bhathiya Wickremasinghe and Rajkumar Buyya at the CLOUDS Laboratory of the Computer Science and Software Engineering Department of the University of Melbourne, Australia. The simulator supports the evaluation of social network tools according to the geographical distribution of users and data centres. It can be applied to determine the behaviour of large scale Internet applications in the cloud, and also enables a modeller for looping simulations and to conduct a series of simulations with slight variations in parameters.
CloudAnalyst is regarded as a powerful simulation framework for deploying real-time data centres and monitoring load balancing, cloud cluster monitoring and data centre data flow in real-time. It allows users to save simulation configurations as XML files and exports live results in PDF format.
The features of CloudAnalyst are listed below.
- Graphical user interface: Easy-to-use GUI for setting up and viewing results of all sorts of cloud computing experiments.
- Simulation definition via a high degree of configuration and flexibility: CloudAnalyst is equipped with modellers that have a high degree of control over the experiment by modelling entities such as data centres, virtual machines, memory, storage and bandwidth.
- Experiment looping: CloudAnalyst can save simulation scenarios and loop them again and again via simulation variations. It can save the results as XML files and even save PDF files of the results.
- Efficient output: CloudAnalyst provides graphical output of simulation results in the form of tables and charts, apart from a large amount of statistical data.
GreenCloud provides a simulation environment for energy-aware cloud computing data centres. It is regarded as the most sophisticated packet-level simulator available till date for energy-aware cloud computing data centres, with a focus on cloud communications. It offers a detailed fine-grained modelling of the energy consumed by the data centre’s IT equipment such as computing servers, network switches and communication links.
The GreenCloud simulator was developed by Dzmitry Kliazovich (Project Leader), research fellow at the Faculty of Science, Technology and Communication of University of Luxembourg with other team members. This simulator is used to develop novel solutions in monitoring, resource allocation, workload scheduling as well as communication protocols, optimisation and network infrastructure.
GreenCloud has been developed as an extension of the NS-2 packet-level network simulator. It distinguishes between three energy consumption components—computing energy, communicational energy and energy components related to the physical infrastructure of a data centre.
The latest version of GreenCloud is 2.1.2.
GreenCloud simulator calls a set of the following simulation scripts:
- setup_params.tcl: Contains general server configuration, switches, tasks, monitoring and migration.
- toplogy.tcl: Creates the data centre network topology.
- dc.tcl: Creates data centre servers and VMs.
- user.tcl: Defines the behaviour of cloud users.
- record.tcl: Sets up runtime results-reporting procedures.
- finish.tcl: Calculates and reports simulation statistics.
The features of GreenCloud simulator are listed below:
- The simulator mainly focuses on the cloud network and, particularly, energy consumption monitoring in cloud computing technologies.
- It supports simulation of CPU, memory, storage and networking resources.
- Supports researchers in exploring methods to minimise electricity consumption by improving power management, as well as dynamically managing and configuring the power-aware capability of the system’s devices.
- Has a user-friendly GUI and is open source.
iCanCloud is a cloud computing simulation platform which is based on SIMCAN and supports the simulation of large storage networks. The iCanCloud simulation framework was developed by A. Nunez and J.L. Vazquez-Poletti with the objective of predicting the trade-offs between cost and performance of a given set of applications executed in specific hardware. The simulator then provides users information about such costs. iCanCloud was designed to optimise flexibility, accuracy, performance and scalability, and has turned into a powerful simulator for designing, testing and analysing all sorts of existing and non-existing cloud architectures.
iCanCloud is being developed over the OMNeT++ platform. The latest version is 1.0 and requires OMNeT++ 4.6 and INET 2.5. It can be installed on all versions of Ubuntu and on MAC platforms.
The features of iCanCloud are listed below:
- Both existing and non-existing cloud computing architectures can be modelled and simulated.
- A flexible cloud hypervisor module provides an easy method for integrating and testing both new and existent cloud brokering policies.
- Customisable VMs can be used to quickly simulate uni-core/multi-core systems.
- iCanCloud provides a wide range of configurations for storage systems, which include models for local storage systems, remote storage systems like NFS, and parallel storage systems (like parallel file systems and RAID systems).
- iCanCloud provides a user-friendly GUI that makes it easier to generate and customise large distributed models. This GUI is especially useful for managing a repository of preconfigured VMs, a repository of preconfigured cloud systems, and a repository of preconfigured experiments to launch experiments from the GUI and generate graphical reports.
- iCanCloud provides a POSIX-based API and an adopted MPI library for modelling and simulating applications. Also, several methods for modelling applications can be used in iCanCloud—using traces of real applications, using a state graph, and programming new applications directly in the simulation platform.
- New components can be added to the repository of iCanCloud to increase its functionality.
EMUSIM stands for Integrated Emulation and Simulation. It combines emulation (AEF-Automated Emulation Framework) and Simulation (CloudSim) to enable more accurate models of software artefacts to be used during simulations. EMUSIM was developed by Rodrigo N. Calherios at the Cloud Computing and Distributed Systems (CLOUDS) Laboratory, Department of Computing and Information Systems, University of Melbourne, Australia.
EMUSIM automatically extracts information about application behaviour via emulation and then uses this information to generate a corresponding simulation model. The EMUSIM simulator is of great use when the tester has no idea about the performance of the software under the varied levels of concurrency and parallelism which impede simulation. These can replace in-site experiments that would require infrastructure that is either unavailable for the tester or too expensive to run in the public cloud. EMUSIM is open source software under the GPL License.
The latest version of AEF is 1.3, released in August 2010.
The features of EMUSIM are listed below:
- Offers a combination of simulation and emulation to evaluate the effect of varying resources and patterns of requests on cloud applications.
- Accurately models applications to supply information regarding performance.
- Reduces the cost of running cloud based simulation, because rather than local and limited infrastructure usage, a pay-as-you-go public cloud is used for evaluation purposes.
- Supports loosely coupled CPU-intensive applications.
GroudSim (Gr-Grid oud-Cloud) is an event-based simulator designed for scientific applications on grid and cloud environments. It only requires one simulation thread. GroudSim was developed by S. Ostermann, K. Plankensteiner and D. Bodner, and can also be termed as a grid and cloud simulation tool kit for scientific applications based on a scalable simulation-independent discrete-event core.
GroudSim provides a comprehensive set of features for complex simulation scenarios, ranging from simple job executions on leased computing resources to calculation of costs, and background load on resources. GroudSim mainly focuses on the IaaS area of cloud computing. It can be easily extended to additional models like SaaS and PaaS in cloud computing.
SimEngine is the main class of GroudSim, which implements the time advance algorithm, the clock and the future events list, keeping track of the registered entities used for tracing during a simulation. The grid and cloud resources classes share most of the common functionality implemented in the Groud package and override the specialised behaviour in the Groud.
The features of GroudSim are listed below:
- It is a powerful Java based simulation tool kit for scientific applications. It combines grid and cloud infrastructures, and is based on a discrete-event simulation tool kit.
- Improvised performance as compared to process based approaches in other simulators.
- Can be extended easily by adopting probability distribution packages.
The most unique feature in GroudSim is GroundEntity, which has its own definition for error behaviour. The user can change this configuration during each error occurrence.
DCSim (Data Centre Simulation)
DCSim is regarded as an extensible data centre simulator designed in Java. It provides a stable and easy framework for developing and performing high-end experiments on data centre management techniques and algorithms. DCSim, being an event-driven simulator, simulates a data centre IaaS offering to multiple clients.
DCSim provides the additional capability of modelling replicated VMs, sharing incoming workloads as well as dependencies between VMs that are part of a multi-tiered application.
The features of DCSim are listed below:
- Contains a multi-tier application model that allows the simulation of dependencies between VMs.
- Facilitates rapid development, evaluation and feedback on data centre management policies and algorithms.