Using the multiple knapsack problem to model the problem of virtual ...

3 downloads 201 Views 385KB Size Report
other VMs on the same server. As soon as the client sets the application to be hosted and the resources this application will request, it is necessary to develop a ...
Using the multiple knapsack problem to model the problem of virtual machine allocation in cloud computing

Silvio Roberto Martins Amarante

André Ribeiro Cardoso

Computer Network and Security Laboratory (LARCES) State University of Ceará (UECE) Fortaleza, Brasil [email protected]

Computer Network and Security Laboratory (LARCES) State University of Ceará (UECE) Fortaleza, Brasil [email protected]

Filipe Maciel Roberto

Joaquim Celestino Jr.

Computer Network and Security Laboratory (LARCES) State University of Ceará (UECE) Fortaleza, Brasil [email protected]

Computer Network and Security Laboratory (LARCES) State University of Ceará (UECE) Fortaleza, Brasil [email protected]

Abstract— Cloud computing is a new computing paradigm which has the provision of computational resources like services accessed over the internet. In this paradigm, computing resources are pooled and allocated according to customer demand. The growing demand for this new type of service has led to increased use of energy on the part of service providers, due to the need to maintain the computing infrastructure, becoming one of the leading providers of cost factors. In this context, solutions have been trying whatever possible to meet the customers requirements for resources consuming minimum power required. Thus, this work consists of an improvement, using the modeling of the multiple knapsack problem, with a mechanism for allocating resources called Lago Allocator [5], which addresses the issue of energy saving. Furthermore, a comparative analysis of the proposed solution with the original mechanism to evaluate the performance modification is made. Keywords: cloud computing, virtualization, allocation, multiple knapsack problem

resource

I INTRODUCTION The increased use of distributed systems, particularly the computational model known as cloud computing, has motivated the study of those systems in order to identify the advantages and disadvantages in deployment, maintenance and use. Nowadays, studies are focused on the area of cloud computing, which refers to applications delivered as a service as well as the hardware and system software in data centers which provide this service [1]. With a network infrastructure meeting all requirements of this new paradigm, the problem of under-utilization of the data center infrastructure is now analyzed. Formerly, services were implanted directly and exclusively on a server in a data center, the server had an application exclusively running on it. Thus, if the application did not use all server resources, these would be idle, causing a loss of profit to the provider's data center.

To solve this problem, we used virtualization technology [2]. The goal of this technology is to maximize the use of physical resources of servers through the possibility of deploying multiple applications on the same server, avoiding an application affects the other running applications on the same server. To meet this objective, the physical resources are mapped and distributed in resource groups named virtual machines (VMs). These VMs are created with established settings. Each VM operates as it was a separate physical machine, sharing the resources with other VMs on the same server. As soon as the client sets the application to be hosted and the resources this application will request, it is necessary to develop a contract to specify the service provider and customer rights and responsibilities. This contract is called Service Level Agreement (SLA) [3]. After defining this agreement, the cloud computing service provider allocates the requested resources in the form of VM and delivers control to the client. Due to the growing popularity and use of this paradigm, researchers have studied the impact of adopting this new paradigm. One of these studies is related to the energy consumption in a data center following the model of cloud computing. Analyzing the energy consumption, [4] compares the energy consumed by a data center with 1000 computing racks to 25,000 homes. Providers consider energy costs as the main cost factor for maintaining a data center. This high cost is due to energy consumed by IT equipment (servers, networking equipment etc.) and also by the cooling system. One way to mitigate energy consumption is through virtualization technology. The rules adopted to carry out the allocation of the VMs are specified in the allocation mechanism, which is responsible for mapping them to servers where they will be allocated depending on the criteria outlined in the policy set. This paper is divided into the following sections. Section

II presents the related work. In section III there is the issue of allocation of VMs. In section IV mathematical modeling and the used algorithm are proposed, then Section V the performance analysis of this work is exposed. Finally, the article conclusion is in section VI. II RELATED WORK In [5], an allocation mechanism called Lago Allocator is proposed. With this mechanism, we try to choose the most energy efficient server, given the amount of MIPS (Million Instructions per Second) for energy consumed. For the purpose of energy saving, two criteria are used: the use of CPU and the computer temperature (via the fan control mechanism). The allocation is based on forecast energy consumption after the allocation of a VM. The Lago Allocator algorithm is used to allocate VMs to servers in order to have lower energy consumption. It defines which server the VM will be allocated, using as criteria energy efficiency, energy consumption and the servers candidates receiving VM usage rate. This algorithm shows two problems. The first is caused by the order of processing requests for the creation of VMs. As they are submitted to the algorithm randomly, there may be an increase in power consumption due to the least efficient servers being with higher usage rates of resource use when compared with the most efficient. The second problem is related to the calculation of the extra energy consumed by the servers after the allocation of a VM used by the algorithm. In the comparison performed by the algorithm, an analysis of the impact of allocation on each server is performed, and a more comprehensive analysis is not conducted. It causes, in some cases, lower consumption in the server, but the total amount of energy consumed by the data center will be higher. In [4], the problem of allocation of VMs concerning energy consumption is divided into two parts: (i) the choice of the server which will receive the VM, and (ii) optimization of VMs location. To address the first part, the problem modeling is made as a bin packing problem. The economy achieved by making the modeling as a packing problem is a result of using a smaller number of servers to be used to meet demand from VMs. Since a smaller quantity of servers is used, the ones which remain idle can be placed in sleep mode in order to consume a smaller quantity of energy. As a solution to the problem, we have used the algorithm Modified Best Fit Decreasing (based on the Best Fit Decreasing [6]). In this algorithm, the list of VMs to be allocated is sorted in a decreasing order according to CPU usage. Then each VM is allocated on the server in which there will be the lowest increase in power consumption after the allocation. Finally, [7] proposes a protocol to manage the consolidation of VMs in servers. Aiming scalability, the proposed protocol is decentralized, using a peer-to-peer communication between the servers. It is important to note

the applicability of the protocol, which is used after the allocation of the VMs on the servers. Thus, its purpose is to perform the optimization of an allocation state of the VMs in the data center. In this paper, the problem of consolidation of VMs is modeled as a multidimensional packaging problem [20]. As a solution to this problem, a distributed approach of ant colony algorithm is used, unlike the ones applied in centralized traditional techniques. As a disadvantage it is said that the proposed protocol does not address issues concerning the first allocation of VMs, so it is a daemon that checks which ones of them should be migrated. III PROBLEMATIZATION In a cloud computing environment, we speak on the issue of allocation of VMs in servers in a data center where users send requests for allocation of resources. For this, the data center creates VMs to meet customer demand through their allocations at some of their server infrastructure. The problem is to determine the server to allocate VMs. Being the central point in the use of cloud computing, this area contains several studies related to improving the mechanisms of allocating VMs [4] [5] [8] [9] [10]. This work shows an approach to solve the problem of allocation of VMs in order to decrease power consumption without impacting the performance of VMs. To solve this problem, two techniques were used together: (i) the mathematical modeling of the multiple knapsack problem [6], (ii) and the application of ant colony algorithm [14] on the problem modeled. Trying to optimize time in solving combinatorial optimization problems [12] used a metaheuristic based on the behavior of the ant colony called Ant System Colony [14]. The choice of the ant colony was motivated by their cooperative behavior, in which individuals communicate indirectly with each other to optimize the process of gathering food [13]. Another important feature is the issue of adaptability of ants when the environment changes [21]. By applying these techniques, an algorithm for solving the problem of virtual machine allocation on servers was developed. A. Modeling of the problem in allocating VMs The development of a mechanism for allocation of VMs in a data center for cloud computing is approached considering energy consumption. The goal is to minimize the amount of energy used by servers to meet the demand of VMs. For this, the multiple knapsack problem is modeled mathematically. Thus, one can make the following equivalence between the parameters used in these problems: knapsacks are servers; VMs are the items to be inserted in the knapsacks (servers), the weight is the set of requirements of a VM (CPU, memory, bandwidth), and the cost is the energy generated by the allocation of a VM on a server.

Formally, the problem is defined as follows: a set of n VMs to be allocated to m servers, in which each VM j (j=1, ..., n) has a vector weight wj composed by the amount processing pj, memory sj, bandwidth bj, and power consumption associated with dj. Each server has a vector of resource limit ci, stating the maximum amount of physical server resources. The element xij is used to specify whether a VM has already been allocated to server i. If this happens, the variable xij will be filled with value 1, otherwise it is set to 0. The objective of this problem is to minimize the energy consumption generated by the allocation of VMs in servers. Thus, the formula is: /

'()(*(+, +  - . Subject to: 9

01

( 5 '  61, … , *8, (2)

- 2 3 & 4 , 01 /

- 3 & 1, 01

(1)

: 5 ;  61, … , )8,

2 & *

Suggest Documents