VM Placement Strategies for Cloud Scenarios
Nicolò Maria Calcavecchia
Dipartimento di Elettronica e Informazione
Politecnico di Milano
Milano, Italy
[email protected]
Abstract—The problem of Virtual Machine (VM) placement in a compute cloud infrastructure is well-studied in
the literature. However, the majority of the existing works
ignore the dynamic nature of the incoming stream of VM
deployment requests that continuously arrive to the cloud
provider infrastructure.
In this paper we provide a practical model of cloud placement management under a stream of requests and present a
novel technique called Backward Speculative Placement (BSP)
that projects the past demand behavior of a VM to a candidate
target host. We exploit the BSP technique in two algorithms,
first for handling the stream of deployment requests, second
in a periodic optimization, to handle the dynamic aspects of
the demands. We show the benefits of our BSP technique by
comparing the results on a simulation period with a strategy of
choosing an optimal placement at each time instant, produced
by a generic MIP solver.
Keywords-Cloud Computing; Placement; Datacenter; VMmigration;
I. I NTRODUCTION
Cloud computing can be implemented at various level of
abstraction depending on the specific service that is being
offered by the cloud provider (i.e. storage, computation,
application framework, etc.). In this paper we focus on the
Infrastructure as a Service model (IaaS) [20] which deals
with provisioning virtual machines (VMs) on top of which
clients may construct their own services. A key challenge
of implementing IaaS is thus determining the placement of
VMs, i.e., the assignment of each VM to a host in the
provider’s cloud infrastructure. The placement is subject
to many constraints originating from multiple domains,
such as the resource requirements of the VMs (both static
and dynamic), security (isolation) requirements, availability
requirements, etc. Many of the constraints may be defined
in a Service Level Agreement (SLA) associated with each
customer’s VM.
A fundamental aspect for cloud providers is reducing
data center costs while guaranteeing the promised SLA to
cloud consumers. Current virtualization technology offers
the ability to easily relocate a virtual machine from one host
to another without shutting it down (i.e., live migration [11]),
thus giving the opportunity to dynamically optimize the
placement with a small impact on performance.
Ofer Biran, Erez Hadad, Yosef Moatti
IBM Haifa Research Lab
Haifa, Israel
{biran, erezh, moatti}@il.ibm.com
The problem of cost reduction becomes even more complex when considering a continuous request stream of VMs
to be deployed in the data center. Indeed, in a cloud
computing context, customers might deploy and remove
VM instances at any time in an unpredictable manner. This
behavior may lead the infrastructure toward a suboptimal or
unstable configuration (for example not exploiting free space
left by VMs that are undeployed).
However, the majority of the existing works ignore the
dynamic nature of the incoming stream of VM deployment
requests to which the cloud infrastructure is subject over
time. Moreover, VMs can show some correlation in the
resource usage (i.e., for example a web server and an
application server will likely have a similar CPU utilization dependency on the incoming workload). Techniques
using statistical multiplexing [16], [13], [8] can exploit
statistical characteristics of the resource usage among VMs
for example by placing VMs that have highly probable
complementary CPU demands together on the same host.
In this paper we focus on the virtual machine placement
problem in a real-life dynamic cloud environment; the main
contributions of this work can be summarized as:
• We introduce a novel technique called Backward Speculative Placement (BSP) that projects the past demand
behavior of a VM to a candidate target host as a base
for deployment or relocation decisions. This is a simple
and efficient method that captures the aspect of demand
correlation between the VMs in the past and use it for
future prediction
• We exploit the BSP technique for the cloud life-cycle
optimization, within two scenarios. First we use it for
handling the stream of deployment requests, second in
a periodic optimization, to handle the dynamic aspects
of the demands.
• We effectively evaluate the proposed technique in a
realistic cloud scenario by modeling a stream of VM
deployment requests, the VMs lifetime and demand
patterns. We introduce a reasonable evaluation metrics
to capture the benefit of our proposed BSP strategy,
and compare the results on a simulation period with a
strategy of choosing an optimal placement at each time
instant, produced by a generic MILP solver - ILOG
CPLEX [3].
The remainder of the paper is organized as follows: in
Section II we define the placement problem under study,
while in Section III we present the proposed BSP-based
strategy by explaining the two operations aimed at the placement optimization. Section IV shows the results obtained by
our technique compared with a strategy of optimal placement
at each time instant, using a generic MILP solver. Section
V presents a literature review of works related to the VM
placement problem, lastly Section VI concludes the paper.
II. P ROBLEM F ORMULATION
In this Section we define a mathematical time-based
model for a simple cloud lifecycle. Based on this model we
then formulate a placement problem that can be computed
at each time instant, taking into account common optimization goals such as load-balancing and the minimization of
changes between two consecutive placements.
A. Mathematical model
The problem is formulated as a multi-dimensional binpacking problem. We consider a cloud offering a simple payper-use (or “on-demand”) service to users, similar to e.g.,
Amazon EC2 [1]. In such a cloud, we observe a stream of
VM deployments that a typical cloud infrastructure is subject
to [2]. We consider discrete time units where each time
instant can be associated with two types of deploy events:
(i) a new set of VMs needs to be deployed (i.e., placement
request), or (ii) an already deployed set of VMs is turned off,
or being “undeployed”. We identify each placement request
with the tuple q = ht, V M SET i where t is the time instant
in which the deploy request is received and V M SET is
the set of VMs to be deployed. Notice that each VM can be
undeployed at any time t′ > t. An example of this behaviour
is shown in Figure 1.
DEPLOY
DEPLOY
DEPLOY
h5, {3, 4}, 6i
t=0
h2, {1, 2}, 5i
h5, {5}, 9i
t=2
t=5
h11, {6, 7, 8}, 8i
t=7
t = 11
t = 14
UNDEPLOY
UNDEPLOY
UNDEPLOY
{1, 2}
{3, 4}
{5}
time
Figure 1: An example of deployment stream. The stream
involves the placement of 8 VMs spread over time instants
2, 5 and 11. In this example only VMs from 1 to 5 are
undeployed while VMs 6, 7 and 8 remain in the cloud.
We consider a data center infrastructure composed by M
distinct hosts. Each host is characterized by R resources (i.e.,
CPU, memory, IO bandwidth, etc.). Each host j has a known
capacity Cjk for each resource k, where j ∈ {1 . . . M } and
k ∈ {1 . . . R}; we identify CPU resource with index 1, k =
CP U = 1.
As shown in Figure 1, a cloud life-cycle involves a
sequence of events of deploying and undeploying VMs,
which characterize the dynamic nature of the cloud.
Each VM i requires a minimum amount of rik units
from each resource k which we call reservation. Failing
to meet the minimum amount of resources required by the
reservation will prevent the VM from being deployed on a
host.
While the reservation value is statically defined, the
demand represents the actual value of consumed resource
and typically varies with time. Without loss of generality, but
for the sake of simplicity, we focus only on CPU demand.
In particular, we call Di (t) the CPU demand for VM i at
time instant t.
Migration of VMs from one host to another open opportunities for placement optimization but also new issues.
In particular, VM relocations can introduce a significant
overhead in the network infrastructure and thus deteriorate
the performance of services hosted in the cloud. In order not
to generate too many migrations, we limit the total number
of relocations in one optimization cycle to a predefined
threshold called maxRelocations which can be customized
by the infrastructure owner.
B. Placement problem formulation
At each time instant the placement problem can be
formulated taking into account only two types of VMs:
already placed VMs and VMs that need to be deployed on
that time instant; we call this set active(t). More formally,
active(t) = {placed(t) \ removed(t)} ∪ added(t) , where
placed(t) is the set of VMs that are already deployed at
time t, removed(t) is the set of VMs that are undeployed
and added(t) represents the VMs that are deployed in this
time instant (i.e., they will be active at instant t + 1).
The placement solution consists of two variables: VM
mapping and CPU resource allocation. The first variable
expresses the association between the VM and the machine
that is hosting it. More specifically, the binary variable
xij (t) = 1 indicates that VM i is placed at host j at time t.
The second variable we consider is the CPU allocation
(i.e., the amount of CPU actually assigned to a VM). We
use the symbol ai (t) to indicate the amount of CPU assigned
to VM i at time t.
We assume that the data center is always big enough to
accommodate each new deploy request. Given this, Equation
1 states that each one of the active VMs must be placed in
a single host.
M
X
j=1
xij (t) = 1 , ∀ i ∈ active(t)
(1)
For each resource type, each VM must be exclusively
guaranteed its reservation. Consequently, the sum of reservations for VMs placed on a host should not exceed the
capacity of that host.
X
xij (t)·rik ≤ Cjk , ∀j = 1 . . . M, k = 1 . . . K (2)
i∈active(t)
In our model the allocation of CPU is flexible in the sense
that the actual allocation may be higher than the reservation
declared at deployment time. Equation 3 states that the total
allocated CPU must remain below the host capacity, where
ai refers to the CPU allocated on VM i.
X
xij (t) · ai (t) ≤ CjCP U , ∀j = 1 . . . M
(3)
i∈active(t)
As allocating more CPU than the actual VM demand
might bring to over provisioning of resources, we explicitly
limit the allocated CPU between the CPU reservation and
the demand (see Equation 4).
riCP U ≤ ai (t) ≤ Di (t) , ∀i ∈ active(t)
(4)
Due to relevant costs involved in VM relocations (i.e.,
bandwidth, CPU) the new placement should be reached
without generating a large number of VM migrations. This
aspect is captured by Equation 5 where reli (t) represents
the binary variable assuming value 1 if VM i is relocated
to a new position (i.e., xij (t) 6= xij (t − 1) for some active
host j).
X
desired demand is satisfied)1 .
P
AR(t) = P
(5)
i∈active(t)
C. Placement optimization goals
In this Section we present the optimization goal (i.e.,
objective function) for the placement problem. It consists
of several components, each commonly-used optimization
goal on its own.
The first captures the CPU demand satisfaction aspect
component (i.e., how much CPU is allocated to VMs with
respect to the desired amount). We refer to this component
with the symbol AR(t) and its definition is given in Equation
6. Notice that, the value is within the range [0, 1] thus
representing the fraction of allocated demand with respect
to the demand required (i.e., a value of 1 means that all the
ai (t)
i∈active(t)
Di (t)
(6)
In order to minimize the number of VM migrations caused
by the new placement, we included a second component
quantifying the number of relocations with respect to the
maximum allowed. As shown in Equation 7, also in this
case the value is within the range [0, 1].
P
i∈active(t) reli (t)
(7)
RC(t) =
maxRelocations
The last component takes into account load balancing
among hosts. More specifically, we consider the actual
load, (i.e., CPU allocated for each host normalized by
the
P host capacity) according to the Equation LAj (t) =
i∈active(t) ai ·xij (t)
for machine j (notice that ai (t) is the
CjCP U
value of CPU resource assigned by the placement algorithm,
potentially different from the actual demand Di (t)). The
optimization component is defined such that the difference
between the most and the least loaded host is minimized.
Since some of the hosts might be empty (i.e., powered-off
or in stand-by) we only consider active hosts. See Equation
8, where hosts(t) is the set of active hosts at time t.
LB(t) =
max {LAj (t)} −
j∈hosts(t)
min
j∈hosts(t)
{LAj (t)}
(8)
High values of LB(t) refer to unbalanced settings while
a value close to 0 indicates a good level of balancing.
The combined optimization function is defined by Equation 9 where |α1 | ≫ |α2 | ≫ |α3 | represents weights
among components. Since the last two components should
be minimized we impose that α2 , α3 < 0.
maximize
reli (t) ≤ maxRelocations
i∈active(t)
α1 · AR(t) + α2 · RC(t) + α3 · LB(t) (9)
III. BACKWARD S PECULATIVE P LACEMENT
Due to the NP-Hard nature of the previously described
placement problem, it is not possible to devise an algorithm providing optimal solutions in reasonable time. In
this Section we describe Backward Speculative Placement
(BSP), a placement technique which is based on a simple
and fast heuristic producing high quality placements with
respect to the optimization goal described in the previous
Section. Notice that, due to the unpredictable nature of
1 Note that the score does not capture the imbalance of load among VMs
but only its total allocation. For example, given a scenario with two VMs
with equal resource requirements, the situation in which the available load is
entirely assigned to one VM is indistinguishable from the one in which the
same load is equally spread between the two VMs. However, the imbalance
effect is mitigated by the minimum assignable resource (as imposed by
constrain in Equation 4).
in demand which have a limited duration (for example due
to periodic trends in demand).
DR(h, V, T )
=
PT
A · t=T −T M U (h, V, t, 1)+
PT
B · t=T −T M U (h, V, t, δ)
(11)
It must be noticed that when computing the “demand
risk” we modify the historical tracing in two ways: first,
VMs that were deleted or were relocated from the host
during the last T M instants are not considered. Second,
we extrapolate the historical tracing of VMs that were
deployed or were relocated to the host during the last T M
instants by approximating their CPU usage prior to their
effective deployment to be equal to their respective minimum
reservations.
120
CPU
the deploy stream, the problem cannot be solved using
traditional scheduling techniques.
We distinguish two phases for cloud placement optimization:
Continuous deployment: Cloud infrastructures continuously receive an unpredictable stream of deploy requests
over time [2]. This kind of behavior demands for a (i) quick
placement of newly arrived deploy requests, (ii) limited
number of time expensive operations (i.e., computation of
new placement, relocations), and (iii) smart placement decision so that future state of the infrastructure remains stable
and efficient. Due to the high responsivity requirement, the
continuous deployment phase does not allow relocations of
VMs (i.e., all existing VMs are locked in their host, except
those with expired lifetime). The placement decisions deal
only with the mapping of newly arrived VMs to hosts.
Ongoing optimization: Long periods using a continuous deployment setting might bring the infrastructure to a
sub-optimal state which is far from the optimization goal
defined in Section II-C. For this reason, in BSP we periodically re-optimize the placement also considering migration
of VMs.
Similarly to [16], [12] we developed a placement technique inspired by statistical multiplexing and analysis of
historical workload traces. In particular, BSP assumes the
knowledge of past CPU demand for each virtual machine
deployed in the cloud infrastructure (this data can be easily
obtained with common monitoring tools). Demand traces are
collected at each VM for past T M time units and conveyed
toward a central software component.
90
60
30
1
2
3
4
5
6
7
8
9
10
11
12
Time
Host Capacity
D1(t)
D2(t)
Non satisfied demand
D1(t)+D2(t)
Figure 2: Example of demand dissatisfaction
B. Continuous deployment
A. Demand risk score
Before presenting the algorithms for each optimization
phase, we introduce a scoring function which is at the core
of BSP. We call it the “demand risk” and its purpose is to
measure the level of demand dissatisfaction of an host in
the last T M time instants. Firstly we define the function U
measuring the amount of unsatisfied demand for a given
time instant, see Equation 10. Specifically, the function
U (h, V, t, δ) measures the amount of non satisfied demand
for host h at time t when the set of VMs V is placed on it
and its capacity is reduced by 1 − δ percent.
P
dl (t) − δ · ChCP U
(10)
U (h, V, t, δ) = l ∈V
δ · ChCP U
We denote the “demand risk” with the term DR and
its formulation is reported in Equation 11. The demand
risk contains two terms, the first measures the demand non
satisfied by VMs in the last T M time instants while the
second measures the unsatisfied demand as if the host would
have a capacity reduced by 1 − δ. The two terms are linearly
combined through coefficients A and B with A ≫ B.
Introducing the risk threshold allows to better capture spikes
Each time new requests to deploy VMs are received,
Algorithm 1 is executed to compute their placement. The
algorithm follows a decreasing best fit strategy according to
the “demand risk” score.
Algorithm 1 Continuous deployment heuristic at time T
sort V M SET by decreasing demand;
for all i ∈ V M SET do
bestHost ← arg min h DR(h, vmsInHost(h) ∪ i, T );
deployVmInHost(i, bestHost);
end for
For each VM in the deploy set we evaluate the “demand
risk” for each available host considering VMs already deployed plus VM i.
C. Ongoing optimization
Actions generated during the continuous deployment
phase might bring the system to a sub-optimal allocation of
resources to VMs. In order to improve the current placement
we periodically activate an optimization task involving VM
migrations, we call it “ongoing optimization”. The main idea
behind the Algorithm 2 is to identify the most loaded hosts
and to perform VM migrations toward hosts which are most
likely to ensure a better demand satisfaction according to
the function defined in Equation 11.
Algorithm 2 Ongoing optimization heuristic at time T
for iteration = 1 → maxRelocations do
// Identify most loaded host;
worstHost ← arg min h DR(h, vmsInHost(h), T );
for all vm i deployed in worstHost do
for all j ∈ 1 . . . M, j 6= worstHost do
current ←
DR(worstHost, vmsInHost(worstHost), T ) +
DR(j, vmsInHost(j), T );
migration ←
DR(worstHost, vmsInHost(worstHost) \ i, T ) +
DR(j, vmsInHost(j) ∪ i, T );
migrationScorei,j ← current − migration;
end for
end for
i, j = arg max i,j migrationScore(i, j) ;
if migrationScorei,j > 0 then
add migration of VM i to host j to the list of migrations;
else
// Stop migrations;
return;
end if
for the rest of computation, consider VM i in host j;
end for
perform migrations;
The loop is executed at most maxRelocations times in
order to limit the number of migrated VMs. Once a host
with high load is identified, all possible migrations between
VMs deployed on it and all other hosts are evaluated. In
each iteration of the second and third loop we compute the
demand risk of the most loaded and the candidate host with
the current placement. Then we evaluate the demand risk of
the scenario where VM i is removed from the most loaded
host and is placed in the candidate host. The score of the
move is defined as the difference between the two demand
risks. We then extract the maximum score and consider the
migration only if its score is positive (i.e. both hosts gain
from the migration).
D. Interaction between the two phases
As previously described, the ongoing optimization is
periodically triggered in order to re-optimize the status of the
cloud. It must be noticed that from the moment an ongoing
optimization is triggered to the moment in which changes are
effective (i.e., migrations) a sensible amount of time might
elapse. We call this the critical interval. As a consequence,
newly arrived deploy requests might not be placed correctly
because the current placement is going to change in the
future. In order to avoid this problem, whenever a new
request is received within the critical interval, we delay
the ongoing optimization and switch back to the continuous
deployment phase. The ongoing optimization is restarted as
soon as deploy requests are satisfied.
IV. E VALUATION
In this Section we describe how the system was implemented and validated showing also the obtained experimental results.
A. Experimental settings
We implemented our placement heuristic and the scenario generation in Java language. Results obtained by our
heuristic were compared with the ones produced by an
optimization model solved through the commercial ILOG
CPLEX optimization engine [3]. In particular, we only
replace our heuristics (Algorithm 1 and 2) and invoke the
external solver. In our experiments we considered two kinds
of resources (i.e., CPU and memory). However the approach
can be easily extended to any number of resources. In each
experiment configuration of hosts were chosen randomly
from a set of predefined capacities according to the Table I.
Configuration
SMALL
MEDIUM
LARGE
CPU
100
180
450
RAM
100
180
450
Probability
0.2
0.4
0.4
Table I: Host configurations
The input stream of VMs is modeled with three probabilistic distributions capturing three different aspects of
deploy workload: (i) inter-arrival time of deploy requests,
(ii) deploy size (i.e., number of VMs in the deploy request),
and (iii) duration of each deploy request (i.e., lifetime). In
particular, the inter-arrival time between two deploy requests
is modeled with a Poisson process with average λ time
units, the deploy size is modeled with a Poisson variable
with average µ VMs. Similarly, the duration of each deploy
request follows a Poisson process with average ν. Values
for these parameters are given below for each experiment.
The choice of a poisson distribution is motivated by the
fact that many real systems shows this property in request
workloads. However a more effective evaluation would be
possible using real workload traces. Similarly to hosts, VMs
are probabilistically extracted from a predefined set of sizes
as reported in Table II.
Configuration
SMALL
MEDIUM
LARGE
HI-CPU
Min CPU
20
50
75
80
Max CPU
50
90
120
140
RAM
20
50
75
40
Probability
0.3
0.25
0.25
0.2
Table II: VM configurations
Experiments were performed on a Ubuntu virtual machine
equipped with 4 Intel Xeon E5530 running at 2.40 Ghz and
8 GB of RAM.
Experiments are performed using discrete time instants
(i.e., deploy requests and optimizations only occur in these
time instants). In all experiments we fixed the ongoing
optimization cycle to 25 time instants and the maximum
number of VM migrations to 4. Demand traces are collected
for T M = 100 previous time instants. Coefficients for
optimization goal were fixed to α1 = 100, α2 = −10 and
α3 = −1 while coefficients for the demand risk were fixed
to A = 10, B = 1 and δ = 90%.
B. Workload generation
Beside the incoming stream of VM requests, we also
generate CPU demands according to the typical night-day
variation found in data centers [12], [8]. In particular, VMs
alternate high and low demand periods having a duration
extracted from two different uniform processes. Similarly
to what done in [10], demand values are extracted from
two Poisson distributions with average the minimum and
maximum values allowed value for CPU as reported in
Table II. Minimum and maximum values are also used as
bounds for the demand such that variations are limited within
a range. Moreover, VMs belonging to the same V M SET
have the same nigh-day variation pattern (i.e., high and
low periods are aligned). This assumption is motivated by
the fact that these VMs are likely to implement the same
service (a typical configuration is a load balancer dispatching
requests to a set of web servers).
C. Experimental results
The objective of the experimental phase has been to
evaluate both the quality and performance of BSP under
different load conditions. In our first set of experiments we
evaluate the quality of solutions produced by our technique.
The evaluating scenario involves a data center of fixed
dimension (150 hosts), which is put under a stream of
deploy requests. Experiments have been performed using
two different level of load (i.e., required CPU): the first
one with λ = 5, ν = 110 and µ = 15 producing a cloud
utilization of 60%. In the second level we only increase
the size of deploy request to µ = 20 bringing the cloud
utilization to 80%.
We evaluate the quality of placement by firstly looking
at the goal score (see Formula 9). This metric represents a
cumulative level of satisfaction for the whole placement. As
depicted in Figure 3a and 3b, BSP reaches a score value
between 85 and 100 in both levels of load. Downward
spikes in the figure corresponds to ongoing optimizations
having the effect to reduce the score due to VM migrations.
Differently from the CPLEX engine, BSP takes advantage
of historical demand traces by co-locating complementary
VMs into the same physical machine. The effect of this
approach is a sensible gain in demand satisfaction level. In
Figure 3c and 3d we also report the fraction of VMs a fully
satisfied demand for each time instant. While in the case
with 60% load BSP is able satisfy almost 100% of VMs
in the case high load (80%) the fraction of satisfied VMs
Execution Time (sec)
Relocations (VMs)
Satisfied demand (%)
VMs fully satisfied (%)
60%
CPLEX
37.004
3.575
98.342
93.657
load
BSP
0.043
2.65
98.076
98.076
80%
CPLEX
50.585
3.439
96.958
88.373
load
BSP
0.054
3.325
97.692
91.929
Table III: Averaged results for the base experiment
ranges between 75% and 100%, still remaining superior to
placements computed by CPLEX.
Table III reports cumulative results concerning the previously described experiment. Execution time refers only to
ongoing optimizations as these are the most computational
intensive tasks. With respect to CPLEX engine, BSP greatly
reduces the computation time of ongoing optimizations
while maintaining an high quality of satisfied demand (i.e.,
and a similar number of relocations). For example, in the
heavy load case the average ongoing optimization in CPLEX
takes 50 seconds while BSP only takes 0.054 seconds.
In order to better evaluate the scalability of BSP we
performed a second set of experiments by varying the size of
the data center. The number of VMs is iteratively increased
while maintaining the same level of load (70%) in the
data center. Due to the extremely long computation times
needed by CPLEX we were not able to obtain solutions in
a reasonable time (i.e, less than 15 minutes). Conversely,
BSP is able to compute a new placement within an average
execution time of 2 seconds. Results, depicted in Figure 4,
show that BSP is able to maintain an average demand
satisfaction level close to 95%. Similarly, the fraction of
VMs with a satisfied demand remains high despite the
increasing difficulty of the problem.
V. R ELATED WORK
The continuous advancements in virtualization technology
opened a brand new research area in data center optimization
both in performance and in cost. Both the industry and
the open source community currently offer solid solutions
which are able to provide isolation and migration features for
VMs [21], [7]. Moreover, the growing diffusion enabled by
the cloud computing paradigm, raised the need for tools able
to manage the whole cloud infrastructure at higher levels
of control; an example of these tools are IBM WebSphere
CloudBurst [4], Novell PlateSpin Recon [6] and Lanamark
Suite [5].
An important aspect of data center management is the
cost involved in maintaining it up and running without
violating the SLA stipulated with customers. VM consolidation together with dynamic placement techniques are the
main approaches to reduce costs as they are able to find
(sub) optimal placement and resource allocation of VMs.
The problem of VM placement is typically modeled as a
multidimensional bin-packing problem which is NP-hard.
The research community made an important contribution
Demand Satisfaction - 80% load
Satisfied Demand
Score
100
90
BSP
CPLEX
80
0
100
200
Time
300
100%
95%
Our Technique
CPLEX
90%
0
400
100
100%
90%
80%
70%
BSP
0
100
CPLEX
200
Time
300
300
Time
400
500
600
(b) Total satisfied demand (80% CPU load)
VMs with satisfied demand
VMs with satisfied demand
(a) Total satisfied demand (60% CPU load)
200
400
(c) VMs with satisfied demand (60% CPU load)
100%
90%
80%
70%
BSP
0
100
CPLEX
200
Time
300
400
(d) VMs with satisfied demand (80% CPU load)
Figure 3: Score and demand satisfaction obtained in the base experiment.
Percentage
100%
90%
80%
Satisfied demand (%)
0
100
200
300
VMs with satisfied demand (%)
400
500
Hosts
600
700
800
900
Figure 4: Demand satisfaction with varying number of hosts
(70% load).
in this sense by proposing various heuristics able to scale
realistic sizes of modern data centers while maintaining
a high level of quality for solutions. For example the
technique proposed in [18], strives to optimize the CPU
demand of each VM by shifting load among VMs in order
to reduce the placement change task performed afterwards.
In [9] the placement problem is reformulated as a multiunit combinatorial auction and then solved with a column
generation technique which is common for solving large
integer programming problems. Similarly, the authors of [19]
reduce the solution search space by identifying a subset of
physical machines that better suit placement reconfigurations
and then apply a constraint satisfaction technique to this
subset of infrastructure.
VMs tend to follow patterns in their resource demands. A
common example is CPU utilization of information services
which is higher during the day and lower during the night.
Such patterns can be exploited to derive more efficient placement solutions. A study [8] of a large number of CPU traces
from production servers shows that most of the demand
traces have high correlation with a periodic behaviour. The
key concept of statistical multiplexing is to exploit possible
correlations among VMs in order to better consolidate VMs
with complementary resource demands [16], [13], [8]. Other
approaches, perform a continuous monitoring on all running
VMs and extract significant resource usage patterns which
are then exploited by placement heuristics [12].
Recently the problem of VM placement has been extended
to include other important aspects of the data center infrastructure such as network traffic and storage facilities. In
particular, VMs deployed in cloud infrastructures typically
show a network traffic dependency which can be better
accommodated by consolidating interdependent VMs in the
same physical machine [22]. Interestingly, network topology
and the structure of the data center highly influence the
choice of the placement under traffic optimization goal [17].
Similar dependencies appears also between VMs and storage
resources which must serve different clients. In this case,
applications requiring higher IO throughput can be placed
closer to storage [14].
Similarly to our work, the authors of [15] consider a
continuous stream of deploy requests directed to the cloud;
however, they exploit the knowledge of the exact duration of
each deploy set. We argue that this assumption is too simplistic in large cloud providers, where deploy requests come
in an unpredictable manner and have unknown durations.
VI. C ONCLUSION AND F UTURE W ORK
In this paper we presented BSP a placement technique
that optimizes the placement of Virtual Machines in a cloud
environment under a continuous stream of deploy requests.
By monitoring historical demand traces of deployed VMs,
BSP projects the past demand behavior of a VM to a
candidate target host, and capture the VMs correlation aspect
in an efficient way. We divide the placement decisions in
two different phases: (i) continuous deployment, where the
placement decision is taken upon the arrival of a deploy
request and no migrations are allowed, and (ii) ongoing
optimization where the current placement is re-optimized
by relocating VMs to other hosts. Results show that our
technique is able to place VMs such that a high level of
demand satisfaction is obtained.
Possible future works involve studying the network relations among VMs belonging to the same deploy set. This
knowledge may be useful for further infrastructure optimizations. Finally, another interesting study is the pattern/trend
analysis of deploy requests belonging to the same user.
ACKNOWLEDGMENTS
This research has been partially funded by the European Commission, under projects SMSCom (IDEAS-ERC
227977) and S-Cube (FP7/2007-2013 215483).
R EFERENCES
[1] Amazon ec2 pricing. http://aws.amazon.com/ec2/pricing/.
[2] Amazon Usage Estimates.
http://blog.rightscale.com/2009/10/05/
amazon-usage-estimates/.
[3] IBM ILOG CPLEX Optimizer.
http://www-01.ibm.com/software/integration/optimization/
cplex-optimizer/.
[4] IBM WebSphere CloudBurst.
http://www-01.ibm.com/software/tivoli/products/cloudburst/.
[5] Lanamark Suite.
http://www.lanamark.com/.
[6] Novell PlateSpin Recon.
http://www.novell.com/products/recon/.
[7] Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim
Harris, Alex Ho, Rolf Neugebauer, Ian Pratt, and Andrew
Warfield. Xen and the art of virtualization. In Proceedings of
the nineteenth symposium on Operating systems principles,
SOSP’03, pages 164–177, New York, NY, USA, 2003.
[8] N. Bobroff, A. Kochut, and K. Beaty. Dynamic placement of
virtual machines for managing sla violations. In Integrated
Network Management, ’07. IM ’07. 10th IFIP/IEEE International Symposium on, pages 119–128, 2007.
[9] D. Breitgand and A. Epstein. Sla-aware placement of multivirtual machine elastic services in compute clouds. In
Integrated Network Management (IM), ’11 IFIP/IEEE International Symposium on, pages 161–168, 2011.
[10] Ming Chen, Hui Zhang, Ya-Yunn Su, Xiaorui Wang, Guofei
Jiang, and Kenji Yoshihira. Effective vm sizing in virtualized
data centers. In Integrated Network Management, IM’11,
pages 594–601, 2011.
[11] Christopher Clark, Keir Fraser, Steven Hand, Jacob Gorm
Hansen, Eric Jul, Christian Limpach, Ian Pratt, and Andrew
Warfield. Live migration of virtual machines. In Proceedings
of the 2nd conference on Symposium on Networked Systems
Design & Implementation, NSDI’05, pages 273–286, Berkeley, CA, USA, 2005. USENIX.
[12] Zhenhuan Gong and Xiaohui Gu. Pac: Pattern-driven application consolidation for efficient cloud computing. In Modeling,
Analysis Simulation of Computer and Telecommunication
Systems (MASCOTS), 2010 IEEE International Symposium
on, pages 24–33, 2010.
[13] D. Jayasinghe, C. Pu, T. Eilam, M. Steinder, I. Whalley, and
E. Snible. Improving performance and availability of services
hosted on iaas clouds with structural constraint-aware virtual
machine placement. In Services Computing (SCC), 2011
IEEE International Conference on, pages 72–79, 2011.
[14] M. Korupolu, A. Singh, and B. Bamba. Coupled placement in
modern data centers. In Parallel Distributed Processing, ’09.
IPDPS ’09. International Symposium on, pages 1–12, 2009.
[15] Wubin Li, Johan Tordsson, and Erik Elmroth. Virtual machine
placement for predictable and time-constrained peak load.
In In Proceedings of the 8th International Workshop on
Economics of Grids, Clouds, Systems, and Services, LNCS.
Springer-Verlag, 2011.
[16] Xiaoqiao Meng, Canturk Isci, Jeffrey Kephart, Li Zhang,
Eric Bouillet, and Dimitrios Pendarakis. Efficient resource
provisioning in compute clouds via vm multiplexing. In
Proceeding of the 7th international conference on Autonomic
computing, pages 11–20, New York, NY, USA, 2010.
[17] Xiaoqiao Meng, V. Pappas, and Li Zhang. Improving the
scalability of data center networks with traffic-aware virtual
machine placement. In INFOCOM, ’10 Proceedings IEEE,
pages 1–9, 2010.
[18] Chunqiang Tang, Malgorzata Steinder, Michael Spreitzer, and
Giovanni Pacifici. A scalable application placement controller
for enterprise data centers. In Proceedings of the 16th
international conference on World Wide Web, WWW ’07,
pages 331–340, New York, NY, USA, 2007. ACM.
[19] K. Tsakalozos, M. Roussopoulos, and A. Delis. VM Placement in non-Homogeneous IaaS-Clouds. In Proc. of the
9th International Conference on Service Oriented Computing,
ICSOC’11, Paphos, Cyprus, 2011.
[20] William Voorsluys, James Broberg, and Rajkumar Buyya.
Cloud Computing: Principles and Paradigms, chapter Introduction to Cloud Computing, pages 1–44. Wiley Press, 2011.
[21] Carl A. Waldspurger. Memory resource management in
vmware esx server. SIGOPS OSR, 36:181–194, 2002.
[22] Meng Wang, Xiaoqiao Meng, and Li Zhang. Consolidating
virtual machines with dynamic bandwidth demand in data
centers. In INFOCOM, 2011 Proceedings IEEE, pages 71–
75, 2011.