CloudSim: A Framework for Modeling and Simulation of Cloud Computing Infrastructures and Services
Recently, cloud computing emerged as the leading technology for delivering reliable, secure, fault-tolerant, sustainable, and scalable computational services, which are presented as Software, Infrastructure, or Platform as services (SaaS, IaaS, PaaS). Moreover, these services may be offered in private data centers (private clouds), may be commercially offered for clients (public clouds), or yet it is possible that both public and private clouds are combined in hybrid clouds.
These already wide ecosystem of cloud architectures, along with the increasing demand for energy-efficient IT technologies, demand timely, repeatable, and controllable methodologies for evaluation of algorithms, applications, and policies before actual development of cloud products. Because utilization of real testbeds limits the experiments to the scale of the testbed and makes the reproduction of results an extremely difficult undertaking, alternative approaches for testing and experimentation leverage development of new Cloud technologies.
A suitable alternative is the utilization of simulations tools, which 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 computing, where access to the infrastructure incurs payments in real currency, simulation-based approaches offer significant benefits, as it allows Cloud customers to test their services in repeatable and controllable environment free of cost, and to tune the performance bottlenecks before deploying on real Clouds. At the provider side, simulation environments allow evaluation of different kinds of resource leasing scenarios under varying load and pricing distributions. Such studies could aid the providers in optimizing the resource access cost with focus on improving profits. In the absence of such simulation platforms, Cloud customers and providers have to rely either on theoretical and imprecise evaluations, or on try-and-error approaches that lead to inefficient service performance and revenue generation.
The primary objective of this project is to provide a generalized, and extensible simulation framework that enables seamless modeling, simulation, and experimentation of emerging Cloud computing infrastructures and application services. By using CloudSim, researchers and industry-based developers can focus on specific system design issues that they want to investigate, without getting concerned about the low level details related to Cloud-based infrastructures and services.
CloudSim is powered by jProfiler.
Overview of CloudSim functionalities:
- support for modeling and simulation of large scale Cloud computing data centers
- support for modeling and simulation of virtualized server hosts, with customizable policies for provisioning host resources to virtual machines
- support for modeling and simulation of energy-aware computational resources
- support for modeling and simulation of data center network topologies and message-passing applications
- support for modeling and simulation of federated clouds
- support for dynamic insertion of simulation elements, stop and resume of simulation
- support for user-defined policies for allocation of hosts to virtual machines and policies for allocation of host resources to virtual machines
- An online course on CloudSim, which includes videos, developed by Anupinder Singh from India.
- Latest CloudSim API
- Release Notes
- Installing and Running CloudSim (README)
The CloudSim package containing the source code, examples, jars, and API documentation can be downloaded from the CloudSim web page at GitHub:
Code from the paper: Tom Guerout, Thierry Monteil, Georges Da Costa, Rodrigo N. Calheiros, Rajkumar Buyya, Mihai Alexandru. Energy-aware simulation with DVFS. Simulation Modelling Practice and Theory, Volume 39, pages 76-91, December 2013.
Discussion group (mailing list)
The goal of the CloudSimEx project is to develop a set of extensions for the CloudSim simulator. The extensions that prove to be worthy will be merged with CloudSim later on.
Note! These extensions are not officially supported by the CloudSim team until they are integrated with CloudSim.
Currently CloudSimEx features:
- Web session modeling;
- Better logging utilities;
- Utilities for generating CSV files for statistical analysis;
- Automatic id generation;
- Utilities for running multiple experiments in parallel;
- MapReduce simulation.
CloudSim Automation: Human Readable Scenario Specification for Automated Creation of Simulations on CloudSim
CloudSim Automation is a Java command line tool based on CloudSim and CloudReports classes that is able to read specifications of CloudSim simulation scenarios from a YAML file, a very human readable data format. Simulation scenarios can be written inside a YAML file and Cloud Automation Tool reads these simulation scenarios, creates and runs them on CloudSim.
The tool releases researchers of the need to write Java code just to run simulation scenarios. By this way, the attention can be focused on the problem to be solved, such as creation of new algorithms to load balancing, new virtual machine scheduling policies, VM placement, resource provisioning, workload prediction, server consolidation, energy efficiency, cost reduction and so on.
The main contributions of this work are:
- to avoid programming on the creation of CloudSim simulation environments;
- to reduce learning curve on creation of CloudSim simulation scenarios;
- to facilitate and to automate CloudSim simulation environments creation;
- to use a human readable file format to specify cloud simulation scenarios and speed up such a simulation process phase;
- to allow reuse, extension and sharing of simulations scenarios.
WorkflowSim extends the CloudSim simulation toolkit by introducing the support of workflow preparation and execution with an implementation of a stack of workflow parser, workflow engine and job scheduler. It supports a multi-layered model of failures and delays occurring in the various levels of the workflow management systems. A series of popular workflow scheduling algorithms (e.g., HEFT, Min-Min, and Max-Min) and task clustering algorithms have been implemented in WorkflowSim. Parameters are directly learned from traces of real executions that were run by workflow management systems such as Pegasus. WorkflowSim has been developed by Weiwei Chen and team at University of Southern California, USA.
Download and more information can be found in the project's Github.
Cloud2Sim proposes a distributed concurrent architecture to CloudSim simulations. Exploiting Hazelcast in-memory data grid, CloudSim is extended to have multiple instances execute the Cloudlet and VM workloads from multiple nodes, and submit them to the DatacenterBroker, while executing the core simulation segments that cannot be distributed from the master Cloud2Sim instance. Moreover, an adaptive architecture is designed and implemented to elastically scale the resources made available to the simulation, with a Cloud2Sim monitoring thread running on a separate Hazelcast cluster. Cloud2Sim work was developed by Pradeeban Kathiravelu and Luis Veiga, at INESC-ID Lisboa, Universidade de Lisboa, Portugal.
Download and more information can be found in the project's Sourceforge page.
This is a simple package containing classes helping in simulating workflows on CloudSim. This is not as comprehensive as WorkflowSim, but it utilizes the same workload description files than WorkflowSim.
Download SimpleWorkflow here.
Performance instability commonly encountered in non-uniform and shared infrastructures like computational clouds has been repeatedly observed to strongly influence the runtime of applications. DynamicCloudSim extends the CloudSim simulation toolkit by introducing models for (1) heterogeneity in the performance of computational resources, (2) uncertainty in and dynamic changes to the performance of virtual machines, and (3) straggler machines and failures during task execution.
Furthermore, DynamicCloudSim introduces a fine-grained representation of computational resources, thereby enabling the simulation of executing different kinds of applications (CPU-, I/O-, communication-bound) on machines with different performance characteristics. As an entry point for research on workflow scheduling, DynamicCloudSim provides the functionality to simulate the execution of scientific workflows using different well-established schedulers.
DynamicCloudSim has been developed by Marc Bux at Humboldt University of Berlin, Germany. The download is available at the project website on Google Code. For questions and suggestions, please contact bux (at) informatik.hu-berlin.de.
RealCloudSim is a simulator of allocations of virtual machines based on the main engine of the CloudSim project. RealCloudSim provides a graphical interface to read network topologies based on the BRITE format. RealCloudSim also uses its own engine to simulate allocations based on Genetic Algorithms, Mixed Integer Programming with Lingo software, and network simulations based on the NS2 (Network Simulator 2). A complete report is generated at the end of each simulation.
RealCloudSim has been developed by Lucio Agostinho Rocha and team at State University of Campinas, Brazil.
Doubts and suggestions can be e-mailed to outrosdiasvirao at yahoo dot com dot br. Download and more information can be found in the project page at SourceForge.
CloudReports is a graphic tool that simulates distributed computing environments based on the Cloud Computing paradigm. It uses CloudSim as its simulation engine and provides an easy-to-use user interface, report generation features and creation of extensions in a plugin fashion.
CloudReports has been developed by Thiago Sa and team at Federal University of Ceara, Brazil.
Download and more information can be found in the project's github.
This works extends Cloudsim by developing a package library that enables CloudSim to handle auction-based services. The main objective of this research is implementing auction-based mechanisms in Cloudsim. To test the package library, a new market mechanism to efficently allocate services to participants based on the combinatorial double auction principle was implmented. The mechanism considers the relevant attributes applicable in Cloud computing environments to the benefit and satisfaction of both users and providers. In this package library, the auction is held based on cost for CPU MIPS and the remainig characteristics (bandwidth, RAM size, etc.) are regarded on VM side if they match the request.
Download: CloudAuctionV2.0.zip (released on Mar 25, 2013).
CloudMIG Xpress facilitates the comparison and planning phases concerning the migration of software systems to PaaS or IaaS-based Cloud environments. Code models can be extracted from Java-based software to (1) model the current system deployment and augment it with a present workload profile, (2) compare the trade-offs that have to be made for different cloud deployment options, and (3) automatically transform the system model to a CloudSim model to enable integrated simulation of various cloud deployment options regarding future costs, response times, and SLA violations.
Download and more information: Project on Sourceforge.
Cloud Analyst is a tool developed at the University of Melbourne whose goal is to support evaluation of social networks tools according to geographic distribution of users and data centers. In this tool, communities of users and data centers supporting the social networks are characterized and, based on their location; parameters such as user experience while using the social network application and load on the data center are obtained/logged.
Download: CloudAnalyst.zip (released on Nov 26, 2009).
Project Team Members
Former Members and Collaborators:
- Anton Beloglazov
- Rajiv Ranjan
- Saurabh Garg
- Marcos Dias de Assuncao
- Bhathiya Wickremasinghe
Software LicenseThe CloudSim Toolkit software is released as open source under the LGPL license.
Copyright The CLOUDS Lab, The University of Melbourne, 2009- to date.
- Saurabh Kumar Garg and Rajkumar Buyya, NetworkCloudSim: Modelling Parallel Applications in Cloud Simulations, Proceedings of the 4th IEEE/ACM International Conference on Utility and Cloud Computing (UCC 2011, IEEE CS Press, USA), Melbourne, Australia, December 5-7, 2011.
- Rodrigo N. Calheiros, Rajiv Ranjan, Anton Beloglazov, Cesar A. F. De Rose, and Rajkumar Buyya, CloudSim: A Toolkit for Modeling and Simulation of Cloud Computing Environments and Evaluation of Resource Provisioning Algorithms, Software: Practice and Experience (SPE), Volume 41, Number 1, Pages: 23-50, ISSN: 0038-0644, Wiley Press, New York, USA, January, 2011.
- Bhathiya Wickremasinghe, Rodrigo N. Calheiros, Rajkumar Buyya, CloudAnalyst: A CloudSim-based Visual Modeller for Analysing Cloud Computing Environments and Applications, Proceedings of the 24th International Conference on Advanced Information Networking and Applications (AINA 2010), Perth, Australia, April 20-23, 2010.
- Rajkumar Buyya, Rajiv Ranjan and Rodrigo N. Calheiros, Modeling and Simulation of Scalable Cloud Computing Environments and the CloudSim Toolkit: Challenges and Opportunities, Proceedings of the 7th High Performance Computing and Simulation Conference (HPCS 2009, ISBN: 978-1-4244-4907-1, IEEE Press, New York, USA), Leipzig, Germany, June 21-24, 2009.
Some publications using CloudSim results
- Anton Beloglazov, and Rajkumar Buyya, Optimal Online Deterministic Algorithms and Adaptive Heuristics for Energy and Performance Efficient Dynamic Consolidation of Virtual Machines in Cloud Data Centers, Concurrency and Computation: Practice and Experience, Volume 24, Issue 13, Pages: 1397-1420, John Wiley & Sons, Ltd, New York, USA, 2012
- Rodrigo Calheiros, Rajiv Ranjan and Rajkumar Buyya, Virtual Machine Provisioning Based on Analytical Performance and QoS in Cloud Computing Environments, Proceedings of the 40th International Conference on Parallel Processing (ICPP 2011), Taipei, Taiwan, September 13-16, 2011.
- Linlin Wu, Saurabh Kumar Garg and Rajkumar Buyya, SLA-based Resource Allocation for a Software as a Service Provider in Cloud Computing Environments, Proceedings of the 11th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGrid 2011), Los Angeles, USA, May 23-26, 2011.
- Adel Nadjaran Toosi, Rodrigo N. Calheiros, Ruppa K. Thulasiran, Rajkumar Buyya, Resource Provisioning Policies to Increase IaaS Provider's Profit in a Federated Cloud Environment, Proceedings of the 13rd International Conference on High Performance and Communications (HPCC 2011), Banff, Canada, September 2-4, 2011.
- Anton Beloglazov, and Rajkumar Buyya, Energy Efficient Allocation of Virtual Machines in Cloud Data Centers. Proceedings of the 10th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGrid 2010), Melbourne, Australia, May 17-20, 2010.
- Rodrigo N. Calheiros, Rajkumar Buyya, Cesar A. F. De Rose, Building an automated and self-configurable emulation testbed for grid applications. International Journal of Software: Practice and Experience, Volume 40, Issue 5, Pages: 405-429, Wiley Press, USA, April 2010.
- Kyong Hoon Kim, Anton Beloglazov, and Rajkumar Buyya, Power-aware Provisioning of Cloud Resources for Real-time Services. Proceedings of the 7th International Workshop on Middleware for Grids, Clouds and e-Science, Urbana Champaign, Illinois, USA: ACM, 2009.
- Rodrigo N. Calheiros, Rajkumar Buyya, Cesar A. F. De Rose, A Heuristic for Mapping Virtual Machines and Links in Emulation Testbeds, Proceedings of the 38th International Conference on Parallel Processing (ICPP 2009), Vienna, Austria, September 22-25, 2009.