Optimal Placement of Virtual Machines with Different ...

5 downloads 263345 Views 347KB Size Report
disk capacity), given a set of physical hosts with known spec- ifications, in ... Cloud com- puting provides a variety of services ranging from web search, ..... s ∈ 10, 1l. Best effort τ: Let p rvk s il designate the rth-dimension resource requirement.
Optimal Placement of Virtual Machines with Different Placement Constraints in IaaS Clouds Lei Shi, Bernard Butler, Runxin Wang, Dmitri Botvich and Brendan Jennings Telecommunications Software & Systems Group (TSSG) Waterford Institute of Technology Email: {lshi, bbutler, rwang, bjennings, dbotvich}@tssg.org Keywords: Data center, virtual machine, placement constraint, optimization, revenue maximization

Abstract There has been much research activity recently in relation to the optimal placement of virtual machines (VMs) on physical servers. Usually the objective is to consolidate the VMs on servers for energy-saving purposes in a cloud environment. In this paper, we study the problem of optimizing the allocation of VMs having different placement constraints (e.g., security and anti-collocation) and characteristics (e.g., memory and disk capacity), given a set of physical hosts with known specifications, in order to achieve the objective of maximizing the cloud provider’s revenue. This is an important resource allocation problem in data centers. Our approach is based on the formulation of the problem as an integer linear programming (ILP) problem. The ILP model produces an optimal placement for VMs with different placement constraints. Given a model of VM placement constraints, offered resources and required VM sets, the model devises a plan to allocate VMs to servers in a way that maximizes revenue, having due regard both to customer requirements and server capacities. The performance of the algorithms is evaluated by means of numerical experiments. Experiments suggest that this model and its associated solution strategy is practical for the offline development of VM-to-server allocation plans given a typical mix of customer demands for virtualized computing resources in small or medium data centers.

1

Introduction

Fostered by innovations in virtualization and distributed computing, and the increased availability of high-speed Internet connectivity, cloud computing is becoming a general utility (like electricity or piped water) that provides on-demand resource leases as transparent services to the user. Cloud computing provides a variety of services ranging from web search, online social networking and online office applications, to IT infrastructure outsourcing. These services are generally categorized as Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as a Service (SaaS). [1] and [2] summarize and provide taxonomies for “XaaS” (everything as a service) providers, business models and technologies.

applications in the cloud-based service environment. The key feature of IaaS is that the unit of allocation is a VM that can be fully configured by customers, in much the same way as they would configure physical IT resources if they were available to them. The economic justification for the customer is that they can agree SLAs with the service providers and not take on the capital and running expenses of providing these resources for themselves. In a data center a group of servers is provided and multiple requests for VMs need to be placed in these servers. Each request has a list of the number of different VM types, along with a placement constraint. VM requests from different cloud customers are different. For example, a request for services requiring high-level fault tolerance has an anti-collocation placement constraint [3]; a request for data safety-sensitive services requires hardware-based security; a request for VMs exploiting content-based memory page sharing requires collocation placement for consolidating servers [4]; a request for elastic services which comprise a set of VMs requires full deployment placement [3], and so on. There is a profit associated with each allocated VM. The goal is to maximize the total profit of the VMs assigned to the servers, while ensuring that the placement is feasible in respect of the server capacity and placement constraints. Most research focuses on selected aspects of placement optimization including server consolidation [5–7], migration costs [8, 9] or placement restrictions [3, 10, 11]. However, considerations such as revenue maximization, multiple requests that each contains a list of the number of different VM types, and mixture of different placement constraints associated with these requests are rarely considered together. In this paper, we consider a richer set of placement constraints, not just simple placement techniques such as full deployment and best effort. Our approaches address the problem of predicting the optimized allocation of VM sets, which enables the cloud provider to have a better understanding of revenue and operational considerations before negotiating SLAs with groups of customers. Given a typical mix of customer demands for virtualized computing resources, our approach formulates this resource allocation problem as an integer linear programming (ILP) problem. The ILP model produces an optimal placement for VMs with different placement constraints. Extensive numerical studies are performed to evaluate the effectiveness of the model. The performance of the algorithm is

evaluated by means of numerical experiments. The rest of this paper is organized as follows. Section 2 presents a brief review of the VM placement problem. Section 3 presents formal definitions of the problems we address. Subsequently, in Section 4, we present experiments that compute the optimal VM placement achieved by our approach for various VM requests settings. Also presented is our interpretation of the results with evidence to support this interpretation. Finally, we conclude this work in Section 5.

2

Related Work

The problem outlined in this paper is closely related to the vector bin packing problem where the resources used by each item (e.g., CPU and memory) are “additive in each dimension”. In [12], the authors claim that for the large dimensional vector bin packing problem, no practical algorithms better than variants of (first-fit decreasing) FFD have been found. They systematically studied variants of the FFD algorithm and proposed a new geometric heuristic algorithm which is scalable for larger data centers without a dramatic decrease in performance. The new heuristic algorithm runs nearly as fast as FFD for reasonable values of “n” and “d”, where “n” represents items and “d” represents d-dimensional vector. The proposed new heuristic algorithm outperform FFD-based heuristics in most cases and is within a few percent of optimal when optimal solutions are known. In [13] Wilcox et al proposed a new generic algorithm, Reordering Grouping Genetic Algorithm (RGGA), which is applied to the assignment of VMs to servers, however, the computation time it takes to run makes it more suitable for off-line rather than on-line computation. In Urgaonkar’s work [11], they consider maximize the number of placed applications, where each application comprise a set of application components that should be placed in full on a cluster of servers. They also considered anti-collocation placement constraints because some applications may want their components to be placed on different nodes for failure tolerance purpose. They demonstrated this placement problem with the full deployment and anti-collocation placement constraints does not have a polynomial time approximation scheme (PTAS) and provided heuristic algorithms. However, they do not consider the variable values of application components due to diversified sizing and pricing, maximizing the number of placed applications does not guarantee platform provider the maximum profit. In Breitgand’s work [3],they also consider maximizing the IaaS provider profit from service provisioning obtained from the placed VMs, while respecting placement constraints and resource capacity constraints. A direct integer programming formulation is proposed to obtain the exact solutions and a column generation method is also presented to obtain near optimal solutions for large data centers. However, in [3] only full deployment and anti-collocation constraints are considered for the VM instance sets comprising the elastic services, other constraints, for example hardware-based security placement constraints, are not considered.

3

Integer Linear Programming Formulation

The following VM placement problem is considered. We are given a set H of h physical hosts and n VM provisioning requests. Each request vsk is associated with a placement constraint k and contains |vsk | VMs, s ∈ [1..n], representing the demands of various customers. Table 1 lists the four placement constraint types (best-effort, security, anti-collocation and full deployment) together with the feasible pairs of constraint types that may be applied together in any VM request set. Note that while each customer may choose any one of the deployment constraint types in Table 1, a typical customer mix will include a mix of deployment constraint types. Placement constraints of VM Ruquests α security β full-deployment γ anti-collocation (fault tolerance) δ security and full-deployment κ anti-collocation and full-deployment τ best effort

Table 1: Deployment constraints of VM sets. vk

vk

Each VM l of request vsk has size pils and value vils to the cloud provider when it is assigned to physical host i. Each physical host i has a d-dimensional capacity c(i) in terms of CPU, memory, network bandwidth, etc. For each VM l of revk

quest vsk , there are two (0,1)-valued decision variables: xils and vk

yvsk , where xils = 1 indicates that VM l is assigned to physivk

cal host i and xils = 0 otherwise; and yvsk = 1 means request vsk is included into the placement, 0 means that for all VMs l vk

belonging to this request vsk , all xils are zero. The purpose of the integer programming formulation for the VM placement problem is to maximize the objective which is the sum of values (where each value is the revenue per hour per allocated VM). k

max

|vs | h n ! ! ! s=1 l=1 i=1

s.t.

vk

vk

xils · vils · yvsk

∀s ∈ {1, · · · , n}, ∀i ∈ {1, · · · , h}, ∀l ∈ {1, · · · , |vsk |} : vk

xils ∈ {0, 1}, yvsk ∈ {0, 1}

The assignment is subject to placement constraints, each with different effects on revenue. The full deployment constraint ensures that the total revenue of a given VM subset is the sum of the revenues of all its constituent VMs if the whole subset is placed; otherwise its value is zero. The anti-collocation constraint requires (for fault tolerance purposes) that every VM of a given subset should be assigned to a different physical server. By contrast, the security constraint requires that each server can accommodate only those VMs from a particular request in order to exclude VMs of other requests. Best effort placement is effectively unconstrained, apart from the usual constraints such as the resource placement constraints in the VM request set.

The anti-collocation and security constraints address different deployment risks and are effectively mutually exclusive - the only feasible solution if a given request includes both conditions is to have a single VM on each physical server, negating the benefits of virtualization. Full deployment is compatible with each of the other constraints - it just ensures that placement decisions for such a request are “all or nothing” in nature. Security α: For security reasons, the VMs belonging to the same request must be placed on the same physical server. Even if a server is not fully utilized, and hence has available capacity, it is not available for other VM requests. By calculating the sum of VMs on a given server for two different VM requests (the result will be one if the sum of VMs for a specific VM request is equal or greater than one, otherwise zero), and limiting their summation to one, the security placement constraint can be satisfied on this server.  ∀s, t ∈ {1, · · · , n}, s #= t, ∀i ∈ {1, · · · , h},     k = {α}, w ∈ {α, β, γ, δ, κ, τ }, zvsk , zvtw ∈ {0, 1} :     |vsk |  !   vk  zv k = { xils == 0}?0 : 1; s l=1   |vtw |  ! vw    zvtw = { xilt == 0}?0 : 1;     l=1   zvsk + zvtw

Suggest Documents