A Novel Adaptive Virtual Machine Deployment Algorithm for Cloud Computing



Similar documents
COST OPTIMIZATION IN DYNAMIC RESOURCE ALLOCATION USING VIRTUAL MACHINES FOR CLOUD COMPUTING ENVIRONMENT

Auto-Scaling Model for Cloud Computing System

Scheduler in Cloud Computing using Open Source Technologies

Performance Analysis of VM Scheduling Algorithm of CloudSim in Cloud Computing

International Journal of Advance Research in Computer Science and Management Studies

Optimal Service Pricing for a Cloud Cache

Reverse Auction-based Resource Allocation Policy for Service Broker in Hybrid Cloud Environment

Survey on Models to Investigate Data Center Performance and QoS in Cloud Computing Infrastructure

Efficient Scheduling Of On-line Services in Cloud Computing Based on Task Migration

This is an author-deposited version published in : Eprints ID : 12902

An Efficient Checkpointing Scheme Using Price History of Spot Instances in Cloud Computing Environment

Cost Effective Automated Scaling of Web Applications for Multi Cloud Services

Group Based Load Balancing Algorithm in Cloud Computing Virtualization

Effective Virtual Machine Scheduling in Cloud Computing

Dynamic Load Balancing of Virtual Machines using QEMU-KVM

Design and Implementation of IaaS platform based on tool migration Wei Ding

Payment minimization and Error-tolerant Resource Allocation for Cloud System Using equally spread current execution load

Task Scheduling for Efficient Resource Utilization in Cloud

International Journal of Advance Research in Computer Science and Management Studies

Affinity Aware VM Colocation Mechanism for Cloud

Cloud deployment model and cost analysis in Multicloud

An Optimized Load-balancing Scheduling Method Based on the WLC Algorithm for Cloud Data Centers

Virtualization Technology using Virtual Machines for Cloud Computing

Task Scheduling Techniques for Minimizing Energy Consumption and Response Time in Cloud Computing

How To Balance In Cloud Computing

A Survey on Load Balancing and Scheduling in Cloud Computing

Heterogeneous Workload Consolidation for Efficient Management of Data Centers in Cloud Computing

Keywords Distributed Computing, On Demand Resources, Cloud Computing, Virtualization, Server Consolidation, Load Balancing

Reallocation and Allocation of Virtual Machines in Cloud Computing Manan D. Shah a, *, Harshad B. Prajapati b

A Comparative Study of Load Balancing Algorithms in Cloud Computing

RANKING OF CLOUD SERVICE PROVIDERS IN CLOUD

Figure 1. The cloud scales: Amazon EC2 growth [2].

Task Scheduling in Hadoop

A Middleware Strategy to Survive Compute Peak Loads in Cloud

Chao He (A paper written under the guidance of Prof.

Dynamic Resource allocation in Cloud

PERFORMANCE ANALYSIS OF PaaS CLOUD COMPUTING SYSTEM

Virtual Machine Allocation Policy in Cloud Computing Using CloudSim in Java

Automation, Manageability, Architecture, Virtualization, data center, virtual machine, placement

Virtual Machine Instance Scheduling in IaaS Clouds

Virtual Machine Based Resource Allocation For Cloud Computing Environment

International Journal of Scientific & Engineering Research, Volume 6, Issue 4, April ISSN

DNS records. RR format: (name, value, type, TTL) Type=NS

ACO Based Dynamic Resource Scheduling for Improving Cloud Performance

Dynamic Resource Distribution Across Clouds

2) Xen Hypervisor 3) UEC

Avoiding Overload Using Virtual Machine in Cloud Data Centre

An Experimental Study of Load Balancing of OpenNebula Open-Source Cloud Computing Platform

OCRP Implementation to Optimize Resource Provisioning Cost in Cloud Computing

Multilevel Communication Aware Approach for Load Balancing

Simulation-based Evaluation of an Intercloud Service Broker

VIRTUAL RESOURCE MANAGEMENT FOR DATA INTENSIVE APPLICATIONS IN CLOUD INFRASTRUCTURES

EFFICIENT JOB SCHEDULING OF VIRTUAL MACHINES IN CLOUD COMPUTING

Resource Allocation Schemes for Gang Scheduling

Manjrasoft Market Oriented Cloud Computing Platform

A Scheme for Implementing Load Balancing of Web Server

EWeb: Highly Scalable Client Transparent Fault Tolerant System for Cloud based Web Applications

An Enhanced Automated, Distributed, SLA for. Dynamic Infrastructure Management in Real. Cloud Environment Using SEQ-BP(R)M.

Keywords: Cloudsim, MIPS, Gridlet, Virtual machine, Data center, Simulation, SaaS, PaaS, IaaS, VM. Introduction

Implementing Parameterized Dynamic Load Balancing Algorithm Using CPU and Memory

Multi-dimensional Affinity Aware VM Placement Algorithm in Cloud Computing

Embedded Systems Programming in a Private Cloud- A prototype for Embedded Cloud Computing

Adaptive Scheduling for QoS-based Virtual Machine Management in Cloud Computing

VM Provisioning Policies to Improve the Profit of Cloud Infrastructure Service Providers

Efficient and Enhanced Load Balancing Algorithms in Cloud Computing

A Trust Evaluation Model for QoS Guarantee in Cloud Systems *

RESOURCE MANAGEMENT IN CLOUD COMPUTING ENVIRONMENT

A Novel Approach for Efficient Load Balancing in Cloud Computing Environment by Using Partitioning

Experimental Awareness of CO 2 in Federated Cloud Sourcing

Efficient Cloud Management for Parallel Data Processing In Private Cloud

Load Balancing in the Cloud Computing Using Virtual Machine Migration: A Review

Home Appliance Control and Monitoring System Model Based on Cloud Computing Technology

Resource Management In Cloud Computing With Increasing Dataset

A Hybrid Load Balancing Policy underlying Cloud Computing Environment

International Journal of Computer Science Trends and Technology (IJCST) Volume 2 Issue 3, May-Jun 2014

A Distributed Approach to Dynamic VM Management

Resource Allocation Avoiding SLA Violations in Cloud Framework for SaaS

A Novel Switch Mechanism for Load Balancing in Public Cloud

Round Robin with Server Affinity: A VM Load Balancing Algorithm for Cloud Based Infrastructure

A Virtual Machine Placement Algorithm in Mobile Cloud Computing Environment by Considering Network Features

Experimental Study of Bidding Strategies for Scientific Workflows using AWS Spot Instances

Research Article Hadoop-Based Distributed Sensor Node Management System

Efficient Load Balancing using VM Migration by QEMU-KVM

Exploring Resource Provisioning Cost Models in Cloud Computing

Towards Data Interoperability of Cloud Infrastructures using Cloud Storage Services

Analysis of Issues with Load Balancing Algorithms in Hosted (Cloud) Environments

Amazon EC2 XenApp Scalability Analysis

A Cost-Evaluation of MapReduce Applications in the Cloud

A Method of Cloud Resource Load Balancing Scheduling Based on Improved Adaptive Genetic Algorithm

An enhanced QoS Architecture based Framework for Ranking of Cloud Services

International Journal of Computer & Organization Trends Volume21 Number1 June 2015 A Study on Load Balancing in Cloud Computing

Enabling Multi-pipeline Data Transfer in HDFS for Big Data Applications

SIMULATION OF LOAD BALANCING ALGORITHMS: A Comparative Study

Permanent Link:

A Policy-Based Application Service Management in Mobile Cloud Broker

Data Consistency on Private Cloud Storage System

Cloud Panel Service Evaluation Scenarios

The HPSUMMARY Procedure: An Old Friend s Younger (and Brawnier) Cousin Anh P. Kellermann, Jeffrey D. Kromrey University of South Florida, Tampa, FL

Manjrasoft Market Oriented Cloud Computing Platform

Energy-Aware Multi-agent Server Consolidation in Federated Clouds

Transcription:

A Novel Adaptive Virtual Machine Deployment Algorithm for Cloud Computing Hongjae Kim 1, Munyoung Kang 1, Sanggil Kang 2, Sangyoon Oh 1 Department of Computer Engineering, Ajou University, Suwon, South Korea Department of Computer Science and Information Engineering, Inha University,Incheon, South Korea 1 {carrotbox, hanamy, syoh}@ajou.ac.kr 2 sgkang@inha.ac.kr Abstract. Virtualization is one of the key enabling technologies for Cloud Computing. When we utilize this technology to abstract physical resources such as memory and CPU for flexible use of them, a virtual machine deployment algorithm does essential role for improving efficiency and load-balancing. We propose a new adaptive VM deployment algorithm based on the Hungarian algorithm to support a concurrent deployment with multiple virtual machine instances. By using the algorithm along with a secondary job queue in the enabling architecture, the load balancing performance can be improved as well as the overall utilization. Experimental results of ours show the significant improvement in load balancing over the general Multi-Dimensional Bin Packing algorithms. Keywords: Virtual Machine, Job Deployment, Bin Packing Problem, Hungarian Algorithm 1 Introduction As Cloud Computing becomes a de facto standard for computing, Infrastructure as a Service (IaaS) has been emerged as an important paradigm in IT area. By applying this paradigm, we can abstract the underlying physical resource such as CPUs, memories and storages and offer these virtualized resources to users in the form of Virtual Machine (VM). Multiple VMs are able to run on a single Physical Machine (PM). Because of these benefits: low cost, flexibility, and manageability, IaaS becomes more popular for a data center solution, a resource renting, and a method for legacy system integration. A typical use of IaaS is as follows; a user requests VMs for their use. Then a provider such as Amazon, the largest IaaS provider, creates VMs on PMs and provides the created VMs to users. The VM deployment process maps VMs to PMs. In this process, a PM s computing resource (i.e. capability) and a required VM s resource (a demand) are two major inputs of the placement problem. A wrong VM deployment makes inefficient use of computing resources (i.e. VMs are mapped to PMs which are not suitable) which causes low resource utilization and imbalanced job loading. Thus, the performance of the VM deployment process is important factor of 264

efficiency and load-balancing performance of Cloud service. Many researchers have been studied about the VM deployment problem. To model the problem, the Bin Packing has been used in many studies [1, 2]. In Bin Packing problem, PMs are regarded as bins which have the capacity and VMs are regarded as items which have weight and placed in the bins. However, in many cases of Bin Packing problem modeling, only one VM request is mapped to PM at a time that leads to its limited packing and load balancing capability. To address this one-by-one deployment problem, we propose a new adaptive VM deployment algorithm. In this algorithm, we define the score which represent the utilization of each PM. Then we extend the Hungarian algorithm [3] that solves the assignment problem. With it, we can find an optimal assignment solution of n VM requests to n PMs based on the calculated score. In our proposed algorithm, multiple VM requests can be mapped to PMs simultaneously to improve the load balancing performance of given system. We introduce a secondary job queue in the enabling architecture for this simultaneous deployment. In the experiments, we evaluate the standard deviation of the PMs. The standard deviation is used in many researches to show the load balancing performances [4, 5]. Our experiment results show the apparent performance improvement compared to the general Multi-Dimensional Bin Packing algorithms. The remainder of this paper is organized as follows; we describe related works of this research in Section 2 and describe our adaptive VM deployment algorithm in Section 3. We present the evaluation of the proposed algorithm in Section 4 and we conclude in Section 5 2 Related Works The Bin Packing is the problem of finding the assignments of items with the weight to bins with the capacity. We may draw an analogue between the item-bin and the VM- PM. Also the weight can be regarded as a required VM resources and the capacity can be regarded as a total resources of PM. Thus the Bin Packing problem may be a good tool to model the VM deployment problem [1, 2]. However a PM has multiple computing resources and the conventional Bin Packing problem cannot model multiple resources. Thus multi-dimensional Bin Packing Problem should be used for those cases. There are two well-known algorithms for the Bin Packing Problem: First Fit Decreasing (FFD) and Worst Fit Decreasing (WFD). In the FFD, requested VMs are sorted by required resources in decreasing order. Then, each VM is orderly mapped to the first PM which has enough resources. On the other hand, VMs are sorted by resources in decreasing order in the WFD. Then, each VM is orderly mapped to the PM which has most free resources. Therefore FFD can deploy more VMs than WFD and WFD can distribute loads more efficiently than FFD. However, both algorithms can map only one VM request to a PM at a time. Since multiple VMs can be mapped to one PM, it will be resulted in a low resources utilization and imbalanced load. We extend the Hungarian algorithm for a VM deployment. The Hungarian algorithm for the assignment problem was proposed by Kuhn [3]. Using it, we can find the optimal assignment of n jobs and n machines. The optimal assignment is the 265

one makes the sum of the setup time for their assigned machines as a minimum. We can think of a job as a VM and machine as a PM. Likewise, a setup time can be replaced with a utilization of PMs. The Hungarian algorithm solve the problem in O(n 3 ) time and FFD solve the problem in O(nlogn) time. However, the Hungarian algorithm can assign multiple VMs to PMs simultaneously and it can distribute loads more efficiently than FFD and WFD. 3 Adaptive VM Deployment Algorithm In the enabling architecture of our proposed algorithm, the front-end node plays a mediator role between users and physical resources (as shown in the Fig. 1). It receives VM requests from users and distributes the requested VMs to PMs based on the proposed algorithm. There are two software components in the mediator: a monitor and a scheduler. The monitor component is responsible for measuring utilization of each PM. The scheduler is responsible for receiving VM requests and distributing them to appropriate PMs. Fig. 1. Architecture overview of the IaaS front-end node. In the enabling architecture, we introduce a secondary job queue in addition to a primary job queue for incoming job requests. The proposed algorithm is applied for distribution of job in the primary queue. While the job in the primary queue is in distribution, the secondary queue is holding incoming VM requests from users. The size of secondary queue is static and the one for the primary queue is dynamic. Since the size of primary queue should be less than the number of PMs that have enough resources for VM requests, the primary queue cannot store the larger number of coming VM requests than the number of PMs. That leads to a necessity of having a secondary queue to keep the incoming VM requests. The front-end node sends the incoming VM requests in the secondary queue. VM requests are transferred to the primary queue if it is empty. Then, the front-end node distributes VM requests stored in the primary queue to PMs by using the proposed adaptive VM deployment algorithm. In the proposed VM deployment algorithm, we consider the VM execution time and two computing resources, a CPU and a memory to calculate the score. A PM i is represented by p i (pc i, pm i ), where pc i is the CPU capacity and pm i is the memory 266

capacity. A VM j is represented by v j (vc j, vm j, vt j ), where vc j is the required CPU, vm j is the required memory of VM j and vt j is the execution time of the VM. S i represents the VMs of p i. If there are m VMs in a p i, S i represented by S i = {v 1, v 2, v 3,, v m }. We define the score parameter at time t and we use this parameter to project resource usage of p i in its execution time. The proposed algorithm uses the score to distribute VMs to PMs for balancing the resource utilization. s( )= (1) Now we can get the standard deviation of the overall score among PMs. Let score stdev denotes the calculated standard deviation of score. To choose the target PM where the VM request will be deployed, we make score stdev matrix where m VM requests (r m ) with i th PMs (p i ) as shown in the Table 1. In the matrix, score stdev mi denotes the standard deviation of PMs when VM request r m deployed to PM p i. After all these calculations, we deploy VM request to PM which have minimum score stdev value and it will make the load balanced in the resource utilization. Table 1. The score stdev matrix where m VM requests with i PMs. p 1 p 2 p 3 ㆍㆍㆍ p i r 1 score stdev 11 score stdev 12 score stdev 13 ㆍㆍㆍ score stdev 1i r 2 score stdev 21 score stdev 22 score stdev 21 ㆍㆍㆍ score stdev 2i r 3 score stdev 31 score stdev 32 score stdev 33 ㆍㆍㆍ score stdev 3i ㆍㆍㆍ ㆍㆍㆍ ㆍㆍㆍ ㆍㆍㆍ ㆍㆍㆍ r m score stdev m1 score stdev m2 score stdev m3 ㆍㆍㆍ score stdev mi Our proposed algorithm, like Hungarian algorithm, consists of 4 steps; Step 1: Find the minimum score stdev value in each row and subtract off. Step 2: Find the minimum score stdev value in each column and subtract off. Step 3: Draw as few line as possible to cover all the zeros in the matrix. If the number of lines is less than the number of VM requests, find a uncovered minimum score stdev value. Then, subtract the uncovered minimum score stdev value from every uncovered score stdev value and add the uncovered minimum score stdev to every score stdev values that are covered with two lines. Then, repeat step 3. If the number of lines is equal to the number of VM request, go step 4. Step 4: From the top row, make an assignment. The assignment is made when there is only one zero in a row. 4 Evaluation of the Algorithm In order to prepare the VM and PM type, we refer the Amazon EC2 Instance Types [6] and obtain ten types of VM and one type of PM. VMs have different CPUs and memory requirements depending on the type. The given types are (1, 2), (2, 4), (4, 8), (6, 18), (8, 2), (8, 16), (10, 4), (12, 4), (18, 6), (20, 6). For example, type (1, 2) mean that it require 267

1 CPU and 2GB memory. There are four kinds of execution time for each VM; 4, 8, 12, and 24 hours. During experiments, each VM s type and execution time are determined randomly. Also, we consider 50 PMs with 80 CPUs and 60GB memory. We set up for two test cases. The test case 1 is to evaluate load balancing performance with small VM requests per hour; between 10 and 20 VMs. The test case 2 is to evaluate load balancing performance with variable VM requests per hour; between 10 and 40 VMs. Fig. 2. Standard deviation results with test case 1. Fig. 2 depicts the experimental result of load balancing performance of our proposed algorithm. It shows the standard deviation of CPU utilization (a) and memory utilization (b) with test case 1. All VM requests are deployed to PMs and PMs have enough resources for deploying new VM requests when VM requests are generated. We can see from this result that the proposed our algorithm distributes given loads more efficiently than FFD or WFD. However, there is no congestion in queues. Fig. 3. Standard deviation results with test case 2. Fig. 3 shows standard deviation results with test case 2. We can observe from these results that standard deviations of proposed algorithm are lower than both FFD and WFD. Standard deviation is increasing at the beginning, around 40, and 100 (hour). 268

This is because deployed VMs are relatively small compared to PMs. Standard deviation is decreasing around 10, 70, and 130 (hour). This is because VMs are starting to deploy to PMs and free resources of PMs are reduced. Queue congestions (i.e. there are waiting jobs in the queue) are occurred at 20, and 80 (hour). At that time, PMs did not have enough resources for deploying VMs in queue. So, standard deviation is lower than other time. 5 Conclusion A wrong VM deployment algorithm puts VMs to not-suitable PMs or deploys many VMs to the limited PMs. This may be resulted in a low resources utilization and load imbalance. We propose a new VM deployment algorithm which is designed to provide a simultaneous multiple VM deployment. By extending the Hungarian algorithm for simultaneous deployment as well as introducing a secondary job queue to the architecture, we can achieve better performance and stability of given system (i.e. prevent hotspot and distribute loads more efficiently). This algorithm and enabling architecture is particularly important for a cloud computing management, but there is great potential for other environment with a job deployment. To evaluate the performance of the proposed algorithm, we conducted experiments with two test cases. Our experimental results show the apparent performance improvement and more balanced job load compared with the general multi-dimensional Bin Packing algorithms. We expect the same performance increase if we apply the proposed algorithm to any cloud computing tool kits. Acknowledgement. This work was jointly supported by the MKE, Korea under the ITRC support program supervised by NIPA (NIPA-2012-(H0301-12-2003)) and Basic Science Research Program through the NRF of Korea (No. 2011-0015089). References 1. Wilcox, D., McNabb, A., Seppi, K., Flanagan, K.: Probabilistic virtual machine assignment. In: CLOUD COMPUTING2010, 1th International Conference on Cloud Computing, GRIDs, and Virtualization, pp. 54--60. IARIA, Lisbon (2010) 2. Hyser, C., Mckee, B., Gardner, R., Watson, B. J.: Autonomic virtual machine placement in the data center. Technical report HPL-2007-189, HP Laboratories (2008) 3. Kuhn, H. W.: The Hungarian method for the assignment problem. Naval Research Logistics Quarterly, 2, 83--97 (1955) 4. Ni, J., Huang, Y., Luan, Z., Zhang, J., Qian, D.: Virtual Machine Mapping Policy Based on Load Balancing in Private Cloud Environment. In: International Conference on Cloud and Service Computing (CSC). pp. 292--295. Hong Kong (2011) 5. Zhou, S.: A Trace-Driven Simulation Study of Dynamic Load Balancing. J. IEEE Transaction on Software Engineering, 14, 1327--1341 (1988) 6. Amazon EC2 Instance Types, http://aws.amazon.com/ec2/instance-types 269