Dynamic Creation and Placement of Virtual Machine Using CloudSim Vikash Rao Pahalad Singh College of Engineering, Balana, India Abstract --Cloud Computing becomes a new trend in computing. The IaaS(Infrastructure as a Service) is served by the cloud computing service providers by placing the virtual machines over the physical machines in a datacenter. The datacenter s hardware get virtualized using virtualization component of cloud computing, before the placing of VMs on PMs, so that the resources of datacenter can be allocated to more than one VMs. A Virtual Machine placement problem is typically a search problem of available space and resources. Given that N is a set of virtual machines and M is a set of physical machines and the physical machines already hosting N1 virtual machines. Then the VM placement algorithms give a mapping of N+N1 machines on the M physical machines under a set of constraints. Resources in a datacenter can be provisioned to VMs by VM-scheduler in either a timeshared or spaceshared manner. After the successful placement of VMs on the PMs the tasks of the users are assigned to execute on different VMs. In this paper we are going to place the VMs and cloudlets dynamically and examine the resource allocation to VMs in a spaceshared and timeshared manner. Our simulation work is done using the cloud computing simulation toolkit known as CloudSim. Keywords Cloud Computing, VM Scheduler, Data Center, Host, Timeshared, Spaceshared, CloudSim, Cloudlets. I. INTRODUCTION As density of data is increasing day by day, due to which it need a high processing power and high cost resources. These resources are not affordable by the user. So, this requirement of users has led to the development of Cloud Computing technology in which high cost infrastructure resources are installed in a single datacenter and are accessed by the user through internet. A cloud computing service can give the following type of services to the end users: SaaS(Software as a Service), PaaS(Platform as a Service), IaaS(Infrastructure as a Service), and DSaaS(Data Storage as a Service). These services are used by users on pay-as-you-use manner. In traditional days one server in datacenter can hold up only one operating system and all tasks are submitted to that particular server. Due to which the physical server get over utilized. But due to cloud computing in these days a physical machine(host) in datacenter can have multiple operating systems at the same time. These multiple operating systems on a single host are the instances of operating system. These instances are referred here as virtual machines(vm). VM s include virtual hardware and a real software package. The VMs gives an entire setting for application to run similar to they might on their own individual server[1]. The VMs are responsible for the handling of cloud users requests. In IaaS(Inftastructure as a Service) model requests for infrastructure are served by allocating VMs to those requests[2]. Therefor on service providers aspect the first concers is the allocation of these VMs on the particular physical resources i.e. the underlying hardware infrastructure. This allocation of VMs on physical machines ought to be economical in order that resources utilization is maximum and resource can be served in less time. Virtualization in cloud computing allows a great deal of flexibility in the provisioning and placement of servers and their associated workloads in a data center. The problem of provisioning virtual machines is receiving a great deal of attention[4,5,6], while placement is often a relatively static manual process. A virtual machine using only virtual resources provides a computational encapsulation that may be moved between physical hosts in its entirety. A feature enabled by this encapsulation is the capability to migrate a running virtual machine from one physical host to another without a significant interruption of service[7]. This technology is currently available in VMware s ESX product[8] and Xen[9], and it is anticipated in Microsoft s Viridian product[10]. This document refers to this technology as live migration. We define a migration domain as a set of physical hosts among which a virtual machine can be migrated if sufficient resources are available. The VM placement in cloud computing are often created by considering one of the three classes:[3] reservation, ondemand, and spot market. In case of reservation user must pay a particular fee for a selected amount for every instance of a virtual machine. 675
In case of on-demand access user requests virtual machine for immediate access for a relatively short interval of time, and pay the charge for the used time. In case of spot markets the users ought to specify the price they're willing to buy the requested virtual machines, as in spot markets there's frequent fluctuation in providers value. The users are allotted with virtual machines only if the provider s value is same or less than the user s fee. The hypervisor contains the list of all the physical resources available in the datacenters and information about their states. Since clients or users are provided with the computing resources only according to their requirement so the rest of it can be provided to other users. Many open source cloud computing solutions like Xen Cloud Platform, Nimbus, OpenNebula, Eucalyptus, TPlatform, Apache Virtual Computing lab, Enomaly etc. [13] have addressed this issue. But the framework of OpenNebula and Eucalyptus is quite impressive. As multiple VMs can run on a single host at the same time, so, the large number of user s requests are handled in a time and space efficient manner. The VMs are installed by means of hypervisors. A hypervisor is an operating system sits at the lowest level of the hardware environment. The instances of operating system i.e. the VMs are installed over hypervisor. A hypervisor provides a uniform abstraction of the underlying physical machine allowing multiple VMs to execute simultaneously. Fig 1 : Virtualization Resource Provisioning in cloud computing is the combination of both Resource allocation and Task Scheduling. The available resources on cloud are provisioned to the VMs in such a manner so that the resource s tremendous capabilities are utilized efficiently and effectively without delaying in completion of tasks given by the cloud users. The service level requirements such as availability, capability of resources, performance and costs of resources must be qualified by the provisioning of resources. All kind of users must be taken into care by resource provisioning and it must fulfill the requirements of all its end users and providers. So, a developer of resource provisioning technique must take care of the needs of Cloud Users on one hand and Cloud Provider on the other hand. Cloud users expect their jobs to be completed in fastest possible manner with high availability of resources and on the other hand the cloud provider invests huge capital with the aim to maximize the use of available resources in efficient and effective manner. Cloud users and providers both wants maximum throughput and improved performance for the money they invest. II. RELATED WORK Gupta A. et al. [16] proposed a HPC aware scheduler for Infrastructure as a Service cloud for improving performance of HPC applications in cloud. They have addressed the problem of adequate allocation of assorted range of application by using monotonous pool of resources. Service level agreement (SLA) is also taken into consideration. R. Bajaj and D.P.Aggarwal in their paper[18] described that scheduling is a process of finding the efficient mapping of tasks to the suitable resources so that execution can be completed such as minimization of execution of execution time as specified by customer. They also describe the various types of scheduling like static, dynamic, centralized, hierarchical, distributed, cooperative and noncooperative scheduling. The scheduling problems in cloud and the types of users CCU(Cloud Computing Users) and CCSP(Cloud Computing Service Providers) are also described by them. R. N. Calheiros, Rajiv Ranjan, Anton Beloglazov, C.A.F De Rose, Rajkumar Buyya [17] described about the Simulation techniques and the CloudSim. They described the various features of CloudSim like it supports for modelling and simulation for large scale of cloud computing infrastructure including data centers on a single physical computing node. III. THE VIRTUAL MACHINE PLACEMENT APPROACHES The capacity of physical host and the VM s requirements must be well known for placing the VM on the physical host in a correct manner. 676
The goal of placement of virtual machine is either to save the consumption of power by shutting down some servers or to maximizing the usage of resources. Both the goals must be keep in mind while designing the autonomic VM placement algorithm. The VM placement algorithms are classified into two major categories: 1) Approach based on Quality of Service, and 2) Power based Approach. The power management necessity is increasing in computing environments. The power management is needed due to: a) the increasing demands of power by computing. b) the consumption of power in cooling the resources in a data center. c) and due to the rising cost of power. The main aim of these approaches is the mapping of virtual machines to physical machines in such a way that the physical machine(pm) can be utilized to their maximum efficiency, and the other servers which are idle can be either hibernated or shut down depending on load conditions. The aim of the QOS based approach algorithms is to maximizing the quality of service (QOS) delivered by continuously monitoring virtual machine activity and employing advanced policies for dynamic workload placement. The QOS based algorithms are used for better utilization of resources and less frequent overload situations leading to savings in cost. VM placement Problem: A Virtual Machine placement problem is typically a search problem of available space and resources. Given that N is a set of virtual machines and M is a set of physical machines and the physical machines already hosting N1 virtual machines. Then the VM placement algorithms give a mapping of N+N1 machines on the M physical machines under a set of constraints. Resources in a datacenter can be provisioned to VMs in either a timeshared or spaceshared manner. IV. VM PLACEMENT ALGORITHMS Rank SchedulingAlgorithm: Open-nebula is an open source toolkit which uses match making scheduler as a VM scheduler, which uses a predefined rank[14][13] to prioritize the available resources. The VM having the highest priority is placed on a host[15]. The rank scheduling algorithm takes input as the requirements and the defined rank of VMs and the output is the resource number on which the VM is to be placed. Greedy First Fit Scheduling Algorithm: Eucalyptus and Nimbus uses Greedy-First-Fit- Algorithm[16] for the VM placement on a host. In greedy scheduling algorithm the node which can run a VM found first is selected as a host. The inputs to the greedy-first-fit algorithm are the VM request and requirement and the output is the resource number which is assigned to the requested VM. Round-Robin Scheduling Algorithm: Eucalyptus and Nimbus open-sources for cloud solution also use Round-Robin algorithm which, records the last position of the scheduler visited[16]. V. TASK SCHEDULING IN CLOUD COMPUTING Tasks in IaaS model in cloud computing are the requested resources which are completed by means of VMs. In IaaS when a cloud user requests for resources, then these requests are accepted by the broker which then uses the task scheduling to assign the tasks to different VMs. These VMs are then placed over the physical hosts which are scheduled by the VM scheduler. The scheduler at the broker level will decide the provisioning of resources to the VMs. More than one tasks can be assigned to a single VM. These tasks are then scheduled by the task scheduled in a time-shared or space-shared environment. Time-Shared Policy: In a time-shared environment task scheduler will distribute the capacity of core among different tasks dynamically. Space-Shared Policy: In a space-shared environment the scheduler assigns specific CPU cores to specific task. VI. EXPERIMENTAL SETUPS The simulation is used Window7 Ultimate(64-bit), dualcore processor, 2.16GHz with 3GB memory. For the simulation we need special toolkit known as CloudSim toolkit. CloudSim is a library for simulation of cloud computing scenarios. The simulation of time-shared and space-shared policies is simulated using CloudSim. The simulation includes the execution of cloudlets by VMs and the allocation of these VMs on physical hosts. 677
Simulation Life Cycle: a) Datacenter in CloudSim is created by: void getdatacenter() {String inputa; int noofdatacenter=0; BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); try {System.out.println("Enter the no of data centers:"); inputa=br.readline(); noofdatacenter=integer.parseint(inputa);} catch(exception e){} for(int i=0;i<noofdatacenter;i++) {Log.printLine("DataCenter-"+i+"is creating"); Datacenter datacenter = createdatacenter("datacenter_"+i); Log.printLine("DataCenter-"+i+"is created");}} b) RAM for VM can be assigned to a VM at run-time by: public void setram(int ram) {String inputa; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); try{system.out.println("enter the ram"); inputa = br.readline(); ram=integer.parseint(inputa);} catch(exception e){} this.ram = ram;} Table 1 Host Machine Specification Host ID Pes RAM 0 2 2048 1 4 4096 2 4 8192 3 2 4046 And we requested 8 VMs to be placed on physical host. After simulation completed we observe the allocation of resources to VMs by the VM schedulers. Table 2 Allocation of VMs to Physical Host VM Host 0 Host-1 1 Host-2 2 Host-1 3 Host-2 4 Host-0 5 Host-1 6 Host-2 7 Host-3 After allocation of VMs to the physical hosts 13 cloudlets are being executed on these VMs. And the sequence of execution of these cloudlets is being observed in cloudlet timeshared and spaceshared scheduling policy. Fig 2 : Simulation Life Cycle 678
Table 3 Sequence of Execution of Cloudlet Timeshared cloudlet scheduler Spaceshared cloudlet scheduler Cloudlet VM Cloudlet VM 5 5 4 4 6 6 0 0 7 7 2 2 4 4 5 5 12 4 1 1 0 0 3 3 8 0 6 6 2 2 7 7 10 2 12 4 1 1 8 0 9 1 10 2 3 3 9 1 11 3 11 3 After completing cloudlet execution VMs are get destroyed in a on-demand access. VII. CONCLUSION VMs are placed on physical hosts and are capable to execute the cloudlets. These VMs are scheduled on physical hosts in a timeshared and spaceshared policies. After placement of VMs on hosts cloudlets are send to VMs to execute. These cloudlets are also scheduled by the cloudlet scheduler in a timeshared and spaceshared manner. After completition of cloudlets execution VMs are destroyed from the datacenter. In simulation using CloudSim toolkit we can request a VM at the run time. REFERENCES [1] John Considine. Do vms still matter in the cloud? www.cloudswitch.com/page/do-virtual-machines-still-matter-in-thecloud, 2010. [2] Hyukho Kim, Woongsup Kim, and Yangwoo Kim. Experimental study to improve resource utilization and performance of cloud systems based on grid middleware. Journal of Communication and Computer, 7(12):32{43, 2010. [3] K Mills, J Filliben, and C Dabrowski. Comparing vm-placement algorithms for on-demand clouds. In Cloud Computing Technology and Science (CloudCom), 2011 IEEE Third International Conference on, pages 91{98. IEEE, 2011. [4] Hewlett Packard Web Site, Introducing Integrity Virtual Machines white paper, http://docs.hp.com/en/9987/intro VM 2.1.pdf [5] VMWareWeb Site, Server Consolidation and Containment Solutions Brief, http://www.vmware.com/pdf/server consolidation.pdf [6] Serdar Cabuk, Chris I. Dalton, HariGovind Ramasamy, Matthias Schunter Trusted Systems Laboratory HP Laboratories Bristol Towards Automated Provisioning of Secure Virtualized Networks HP Labs Technical Report HPL-2007-139 September 3, 2007 [7] Christopher Clark, Keir Fraser, Steven Hand, Jakob Gorm Hansen, Eric Jul, Christian Limpach, Ian Pratt and Andrew Warfield, Live Migration of Virtual Machines, in the Proceedings of the 2nd Symposium on Networked Systems Design and Implementation (NSDI 05), May 2005, Boston, MA [8] Michael Nelson, Beng-Hong Lim, and Greg Hutchins, Fast Transparent Migration for Virtual Machines Solutions Brief, Proceedings of USENIX 2005 General Track, http://www.vmware.com/pdf/usenix vmotion.pdf [9] P. Barham, B. Dragovic, K. Fraser, S. Hand, T. Harris, A. Ho, R. Neugebar, I. Pratt, A. Warfield, Xen and the Art of Virtualization, Proceedings of the ACM Symposium on Operating Systems Principles (SOSP), October 2003 [10] Microsoft Windows Server Virtualization News, Support and Training Resources, http://www.dabcc.com/channel.aspx?id=190 [11] VMWare Web Site, VMware VirtualCenter 1.3.x Support Documentation,VirtualCenter VMotion Requirements, http://www.vmware.com/support/vc13/doc/c2vmotionreqs12.html [12] Hewlett Packard Web site, VMotion compatible groups, ftp://ftp.compaq.com/pub/products/servers/vmware/vmmotioncompa tibility-matrix.pdf [13] Patel, P. and Singh, A. K. 2012. A Survey on Resource Allocation Algorithms in Cloud Computing Environment. Golden Research Thoughts, Volume 2, Issue. 4 (Oct 2012), ISSN: 2231-5063. [14] Sotomayor, B., Montero, R. S., Llorente, I. M. and Foster, I. 2009. Internet Computing IEEE (Sept.-Oct.). Volume 13, Issue: 5, page(s) 14-22. [15] Zhong, H., Tao, K. and Zhang, X. 2010. An Approach to Optimize Resource Scheduling Algorithm for Open-Source Cloud Systems. The Fifth Annual ChinaGrid Conference. IEEE Computer Society, 978-0-7695-4106-8. [16] Hai Zhong, Kun Tao, and Xuejie Zhang. An approach to optimized resource scheduling algorithm for open-source cloud systems. In ChinaGrid Conference (ChinaGrid), 2010 Fifth Annual, pages 124{129. IEEE, 2010. [17] R. N. Calheiros, Rajiv Ranjan, Anton Beloglazov, C.A.F. De Rose, Rajkumar Buyya, CloudSim: A toolkit for modeling and simulation of cloud computing environments and evaluation of resource provisioning algorithms, Software Practice and Experience, Wiley publishers, 2010. [18] R. Bajaj and D.P. Agrawal, Improving Scheduling of Tasks in a Heterogeneous Environment, IEEE Transaction on parallel and Distributed Systems, p. 107-118, 2004. 679