Reliable Virtual Machine Placement and Routing in Clouds
Song Yang, Philipp Wieder, Ramin Yahyapour, Stojan Trajanovski,, Xiaoming Fu

TL;DR
This paper addresses the complex problem of reliably placing virtual machines and routing connections in cloud environments, proposing exact and heuristic solutions for ensuring high availability and low latency under failure conditions.
Contribution
It introduces a novel formulation for VM placement and routing with availability constraints, providing both exact and heuristic algorithms and analyzing their performance.
Findings
Proposed algorithms outperform existing heuristics in simulations.
Validated the NP-hardness of VM placement and routing problems.
Achieved high reliability with optimized placement and routing strategies.
Abstract
In current cloud computing systems, when leveraging virtualization technology, the customer's requested data computing or storing service is accommodated by a set of communicated virtual machines (VM) in a scalable and elastic manner. These VMs are placed in one or more server nodes according to the node capacities or failure probabilities. The VM placement availability refers to the probability that at least one set of all customer's requested VMs operates during the requested lifetime. In this paper, we first study the problem of placing at most H groups of k requested VMs on a minimum number of nodes, such that the VM placement availability is no less than , and that the specified communication delay and connection availability for each VM pair under the same placement group are not violated. We consider this problem with and without Shared-Risk Node Group (SRNG) failures,…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Reliable Virtual Machine Placement
and Routing in Clouds
Song Yang, Philipp Wieder, Ramin Yahyapour, Stojan Trajanovski, Xiaoming Fu S. Yang and P. Wieder are with Gesellschaft für wissenschaftliche Datenverarbeitung mbH Göttingen (GWDG), Göttingen, Germany.
E-mail: {S.Yang, P.Wieder}@gwdg.de R. Yahyapour is with GWDG and Institute of Computer Science, University of Göttingen, Göttingen, Germany. E-mail: [email protected] This work was done while S. Trajanovski was with the University of Amsterdam and Delft University of Technology, The Netherlands. S. T. is now with Philips Research and Delft University of Technology.
E-mail: [email protected] X. Fu is with Institute of Computer Science, University of Göttingen, Göttingen, Germany. E-mail: [email protected] A preliminary part of this paper appeared as conference publication [1].
Abstract
In current cloud computing systems, when leveraging virtualization technology, the customer’s requested data computing or storing service is accommodated by a set of communicated virtual machines (VM) in a scalable and elastic manner. These VMs are placed in one or more server nodes according to the node capacities or failure probabilities. The VM placement availability refers to the probability that at least one set of all customer’s requested VMs operates during the requested lifetime. In this paper, we first study the problem of placing at most groups of requested VMs on a minimum number of nodes, such that the VM placement availability is no less than , and that the specified communication delay and connection availability for each VM pair under the same placement group are not violated. We consider this problem with and without Shared-Risk Node Group (SRNG) failures, and prove this problem is NP-hard in both cases. We subsequently propose an exact Integer Nonlinear Program (INLP) and an efficient heuristic to solve this problem. We conduct simulations to compare the proposed algorithms with two existing heuristics in terms of performance. Finally, we study the related reliable routing problem of establishing a connection over at most link-disjoint paths from a source to a destination, such that the connection availability requirement is satisfied and each path delay is no more than a given value. We devise an exact algorithm and two heuristics to solve this NP-hard problem, and evaluate them via simulations.
Index Terms:
Virtual machine placement, routing, availability, reliability, cloud computing, optimization algorithms.
1 Introduction
Cloud computing [2] is a distributed computing and storing paradigm, which can provide scalable and reliable service over the Internet for on-demand data-intensive applications (e.g., on-line search or video streaming) and data-intensive computing (e.g., analyzing and processing a large volume of scientific data). The key features of cloud computing, including “pay-as-you-go” and “elastic service”, attract many service providers and customers to deploy their workload from their own infrastructures or platforms to public or private clouds.
Distributed cloud systems are usually composed of distributed inter-connected data centers, which leverage virtualization technology to provide computing and storage service for each on-demand request. Once a request arrives, several virtual machines (VM) are created in one or more server nodes (which may be located in the same or different data centers) in order to accommodate the request. However, the server node failures caused by hardware malfunctions such as hard disk or memory module failures and software problems such as software bugs or configuration errors may result in the loss of the VMs hosted on it and hence the whole service cannot be guaranteed. An efficient way to overcome this concern is to create and place more VM replicas, but this approach should also take the nodes’ availabilities into account. For instance, if all the VMs together with their replicas are placed at nodes with high failure probability, then a proper service cannot be guaranteed. The VM placement availability, a value between [math] and , is therefore important and refers to the probability that at least one set of all customer’s requested VMs is in the operating state during the entire requested lifetime.
Moreover, if two or more VMs are placed on different nodes, we should also ensure reliable communications between these VMs. In fact, a single unprotected path will fail if one of the links belonging to it fails. To increase the reliability of transporting data from a source to a destination, path protection (or survivability) is called for. For instance, by allocating a pair of link-disjoint paths from a source to a destination, the data is transported on the primary path. Upon a failure of the primary path, the data can be switched to the backup path. However, the path protection mechanism, which does not allow for more than link-disjoint paths, may still be not reliable enough and link-disjoint paths may be needed. Moreover, the link availability should also be taken into account. For a connection over at most link-disjoint paths between a node pair, its availability specifies the probability that at least one path is operational. Connection availability is therefore important to quantitatively measure the availability of delivering data between VMs located on different nodes in a cloud.
In this paper, we first study the Reliable VM Placement (RVMP) problem, which is to place at most groups of requested VMs on a minimum number of nodes, such that the VM placement availability is no less than , and the specified communication delay and connection availability for each VM pair are not violated.
Following that, we study the Availability-Based Delay-Constrained Routing (ABDCR) problem, which is to establish a connection over at most (partially) link-disjoint paths from a source to a destination such that the connection availability is at least and each path has a delay no more than . Our key contributions are as follows:
- •
We propose a mathematical model to formulate VM placement availability with and without Shared-Risk Node Group failures, and prove that the Reliable VM Placement (RVMP) problem under both cases is NP-hard.
- •
We propose an Integer Nonlinear Program (INLP) and a heuristic to solve the RVMP problem.
- •
We compare the proposed algorithms with two existing heuristics in terms of performance via simulations.
- •
We prove that the ABDCR problem is NP-hard, devise an exact algorithm and two heuristics to solve it, and further verify them.
The remainder of this paper is organized as follows: Section 2 presents the related work. Section 3 and 4 formulate the VM placement availability calculation without and with SRNG failures, respectively. In Section 5, we study the Reliable VM Placement (RVMP) problem and prove it is NP-hard. We propose an exact Integer Nonlinear Program (INLP) and a heuristic to solve the RVMP problem. The proposed algorithms are also evaluated via simulations. In Section 6, we define the Availability-Based Delay-Constrained Routing (ABDCR) problem, prove the problem is NP-hard, and propose an exact algorithm and two heuristics to solve it. We also conduct simulations to verify the proposed algorithms as well. Finally, we conclude in Section 7.
2 Related Work
A high-level comprehensive survey about VM placement can be found in [3] [4].
2.1 Network-Aware VM Placement
Alicherry and Lakshman [5] first investigate how to place requested VMs on distributed data center nodes such that the maximum length (e.g., delay) of placed VM pairs is minimized. A 2-approximation algorithm is proposed to solve this problem when a triangle link length is assumed. They subsequently study how to place VMs on physical machines (racks and servers) within a data center in order to minimize the total inter-rack communication costs. Assuming that the topology of the data center is a tree, they devise an exact algorithm to solve this problem. Finally, they propose a heuristic for partitioning VMs into disjoint sets (e.g., racks) such that the total communication costs between VMs belonging to different partitions is minimized.
Biran et al. [6] address the VM placement problem by minimizing the min-cut ratio in the network, which is defined as the used capacity of the cut links consumed by the communication of VMs divided by the total capacity of the cut links. They prove this problem is NP-hard and propose two efficient heuristics to solve it. Jiang et al. [7] jointly consider the VM placement and routing problem within one data center network. They propose an approximation on-line algorithm leveraging the technique of Markov approximation.
Meng et al. [8] address the problem of assigning VMs to slots (CPU/memory on a host) within a data center network in order to minimize total network costs. They prove the problem is NP-hard and propose a heuristic that tries to assign VMs with large mutual rate requirement close to each other.
2.2 Reliable VM Placement
Israel and Raz [9] study the Virtual Machine Recovery Problem (VMRP). The VMRP is to place the backup VMs for their corresponding servicing VMs on either active or inactive host, which needs to strike a balance between the (active) machine maintenance cost and VM recovery Service Level Agreement (e.g., recovery time). They show that the VMRP is NP-hard, and they propose a bicriteria approximation algorithm and an efficient heuristic to solve it.
Bin et al. [10] tackle the VM placement problem by considering k-resiliency constraint to guarantee high availability goals. A VM is marked as -resilient, if its current host fails and there are up to additional host failures, and it can still be guaranteed to relocate to a non-failed host. In this sense, a placement is said to be -resilient if it satisfies the -resiliency requirements of all its VMs. They first formulate this problem as a second order optimization statement and then transform it to a generic constraint program in polynomial time.
Zhu et al. [11] address the Reliable Resource Allocation (RRA) problem. In this problem, each node has a capacity limit of storing VMs and each link is associated with an availability value (between [math] and ). The problem is to find a star of a network to place the requested VMs, such that the node capacity limit is obeyed and the availability of the star is no less than the specified. They prove that the RRA problem is NP-hard and propose an exact algorithm as well as a heuristic to solve it. However, the defined problem in [11] does not consider the node’s availability and also it restricts to find a star instead of an arbitrary subgraph.
Li and Qian [12] assume that the VM reliability requirement is equal to the maximum fraction of VMs of the same function that can be placed in a rack. Yang et al. [13] develop a variance-based metric to measure the risk of violating the VM placement availability requirement, but none of them take VM replicas/backups into account. Nevertheless, none of above papers quantitatively model the availability of VM placement (and solve the respective reliable VM placement problem), as we do in this paper.
2.3 Availability-Aware Routing
Song et al. [14] propose an availability-guaranteed routing algorithm, where different protection types are allowed. They define a new cost function for computing a backup path when the unprotected path fails to satisfy the availability requirement. She et al. [15] prove the problem of finding two link-disjoint paths with maximal reliability (availability) is NP-hard. They also propose two heuristics for that problem. Luo et al. [16] address the problem of finding one unprotected path or a pair of link-disjoint paths, such that the cost of the entire path(s) is minimized and the reliability requirement is satisfied. To solve it, they propose an exact ILP as well as two approximation algorithms. However, the reliability (availability) calculation in [16] is different from the aforementioned papers, and assumes a single-link failure model. Assuming each link in the network has a failure probability (=1-availability), Lee et al. [17] minimize the total failure probability of unprotected, partially link-disjoint and fully link-disjoint paths by establishing INLPs. They further transform the proposed INLPs to ILPs by using linear approximations. Yang et al. [18, 19] study the availability-based path selection problem, which is to find at most (partially) link-disjoint paths and for which the total availability is no less than the specified. They prove that this problem is NP-hard and cannot be approximated to an arbitrary degree when . They propose an exact INLP and a heuristic to solve this problem.
3 VM Placement availability
The availability of a system is the fraction of time that the system is operational during the entire service time. The availability of a network component can be calculated as [20]:
[TABLE]
where represents Mean Time To Failure and denotes Mean Time To Repair. In this paper, a node in the network represents a server, and its availability is equal to the product of the availabilities of all its components (e.g., hard disk, memory, etc.). In reality, we can obtain the server’s availability value by accessing the detailed logs extracting every hardware component repair/failure incident during the lifetime of the server. The details for characterizing server and other data center network device (e.g., switches) failures can be found in [21] and [22]. Since our focus in this paper is not on how to calculate the device’s availability, we assume that the server availabilities (or the SRNG event failure probabilities) value are known. Moreover, we assume a general multiple node (link) failure scenario, which means at one particular time point, multiple nodes (links) may fail. In this section, we first assume that the node availabilities are uncorrelated/independent.
We assume that the user request consists of VMs with associated communication requirements (we consider delay and connection availability in this paper) between different VM pairs. These VMs are represented by , ,…, . For each requested VM (), placing it on the same node (say ) more than once cannot increase placement availability, since when fails, all its resident VMs will fail simultaneously. Therefore, we need to place on different nodes to increase the placement availability. Let us use to represent the maximum number of nodes to host VM . Or, equivalently, indicates the maximum number of nodes that can be placed on. We denote . We distinguish and analyze the VM placement availability under two different cases, namely (1) Single Placement: each VM is placed on exactly node in the network, and (2) Protected Placement: , such that can be placed on nodes in the network, i.e., . In the following, we will address the VM placement availability under two node failure scenarios, namely, (1) single node failure scenario: at most one node may encounter failure at any particular time point, and (2) multiple nodes failure: multiple nodes may fail at any particular time point. Without loss of generality, in this paper, we assume multiple node failure scenario. Moreover, we assume that the servers are heterogeneous and they can be located in either the same data center or different data centers.
3.1 Single-node failure
Here it is assumed that all the nodes in the network have very low failure probability (highly reliable). Therefore, we can assume that at one time point, at most one node may encounter failure. In the single placement case, if nodes with availability , ,…, are used for hosting VMs (), then the availability of the VM placement is . In the protected placement case, if there are another () nodes which are totally different from the existing nodes and VMs are also placed on these nodes. In this sense, the availability of placing in total VMs on nodes is , since each VM located on one node is fully “protected” by another backup VM located on a different node. We can also see that for each VM, one backup VM placed on a different node is enough, i.e., there is no need to have more than one backup VM. Moreover, when there are less than backup VMs placed on nodes, it indicates that at least one VM does not have its backup. Let us denote the node set as the nodes on which VMs are located and do not have their backups. As a result, the availability of placing () VMs on nodes is . However, this approach only works when all the links are highly reliable. In Appendix A, we will provide an Integer Nonlinear Program (INLP) to solve the Reliable Virtual Machine Placement problem under the single-node failure scenario.
3.2 Multiple node failure
It is a more general model where all the nodes may fail simultaneously at any particular time point. In this context, the VM placement availability in the single placement is equal to the product of the availabilities of nodes that host at least one requested VM. For instance, if nodes with availability , ,…, are used for hosting VMs (), then the availability (denoted by ) of this VM placement is:
[TABLE]
Eq. (2) indicates that since VMs are requested in total, the availability should take into account the probability that all these VMs are operational.
In the protected placement case, there exist one or more VMs that can be placed on at most nodes. Therefore, we regard that a protected placement is composed of (maximum) single placements. Within each single placement, the communication requirements between VM pairs should be satisfied. For the ease of clarification, we further term each of the single placements in the protected placement as placement group , which means the “th” placing VMs on nodes, where and . We regard as the primary placement group. We make no difference between the single placement and the placement group. Since different placement groups may place one or more VMs on the same node, we distinguish the protected placement as two cases, namely (1) fully protected placement, for each VM , is placed by each group () at different nodes, and (2) partially protected placement, , such that is placed on less than nodes, i.e., two or more placement groups place on the same node.
In the fully protected placement case, the availability can be calculated as:
[TABLE]
where denotes the availability of a single VM placement according to Eq. (2). Eq. (3) reflects that the availability of placement groups is equivalent to the probability that at least one single placement (a set of VMs) is operational in the service-life time.
In the partially protected placement case, if one VM is placed on less than nodes, we could regard that this VM is jointly placed by more than one placement group. For example, in Fig. 1LABEL:sub@Fig:DPRea, each node is associated with its own availability value and we need to place two VMs ( and ) on it. We set and for simplicity. We assume that placement group places on node , and placement group places ’s replica (denoted by ) on node . On the other hand, is only placed on one node. Therefore, we can regard that and jointly place on node .
However, we cannot directly apply Eq. (3) to calculate its availability, since the availabilities of nodes which hold “shared” VMs will be counted more than once. To amend this, we use a new operator 111As in [18, 19] for the partially link-disjoint paths connection availability.. Suppose there are different nodes with availabilities . For a node with availability , can be defined as follows:
[TABLE]
Let denote consecutive operations of the different sets, then the availability (represented by ) of partially placement groups can now be represented as:
[TABLE]
where denotes the availability of placement group and can be calculated from Eq. (2). Now, going back to the example of Fig. 1LABEL:sub@Fig:DPRea, when there are no communication requirements between the two requested VMs, the placement availability of and is equal to .
In order to emphasize the importance of communication requirements between the VMs, we consider the example of Fig. 2. For simplicity, it is assumed that each node can host at most one VM and its availability value is depicted in Fig. 2. Moreover, we impose that node pairs and have communication delays bigger than the requested delay, i.e., these two node pairs do not satisfy the VM communication requirement.
As is shown in Fig. 2, there are in total 4 possible placement groups: (, , ), (, , ), (, , ) and (, , ). However, neither (, , ) nor (, , ) can form a feasible placement group, because the communication delay is violated in either of these groups, and therefore, their availability cannot be taken into account.222As a side note, neglecting the communication requirement of VM pairs, the overall availability of the placement groups would have been: . As a result, we only take into account the two placement groups (, , ) and (, , ). According to Eq. (5), their overall availability is .
4 Shared-Risk Node Group
In this section, we assume two types of failures/availabilities, namely Shared-Risk Node Group (SRNG) failures and single node failures/availabilities. A SRNG failure [23] reflects that a particular group of nodes will fail simultaneously, i.e., they have correlated failures. For example, in data center networks [24], servers are hosted by different racks, and within the same rack, servers are connected with a Top of Rack (ToR) switch. These ToR switches are further inter-connected through aggregate switches in a tree-like topology. Similarly, these aggregate switches are further connected with several core switches in the upper layer. In this context, the servers which are hosted by the same rack will fail simultaneously, if the rack they belong to fails. Similarly, the failure of a ToR switch will cause the failures of all the racks which are connected with it, that will subsequently cause failures of the hosted servers. One rack failure then corresponds to one distinct SRNG event. One (server) node can belong to multiple SRNG events (e.g., rack failure or switch failure). We assume there are in total SRNG events, and the failure probability of SRNG event is represented by . For the ease of elaboration, we let , which can represent the non-occurring probability of SRNG event . For each node , we denote as the set of all the SRNG events it belongs to. The VM placement availability should incorporate the SRNG non-occurring probabilities as well as the node availabilities. As a result, if nodes with availability , ,…, are used for hosting VMs () by a single placement , then the availability of this single placement can be calculated as follows:
[TABLE]
Similarly, the protected VM placement (fully and partially) availability can be calculated by substituting Eq. (6) with in Eq. (5). It is worthwhile to mention that the operator in Eq. (5) still holds for . For example, in Fig. 1LABEL:sub@Fig:SRNG, each node is assigned with a SRNG event and node availability value. Suppose , and . Assume that placement places on and on , and placement places on and on . In this sense, both the SRNG event failure and node availability should only be counted once, especially for and node (since they both belong to and ). Consequently, the VM placement availability of and is:
[TABLE]
5 Reliable Virtual Machine Placement
5.1 Problem Definition
We denote by the set of server nodes and by the set of links between them. The server nodes in form a complete graph333There is a possibility of all nodes to be connected, but the quality/goodness of these connections are determined by other factors (e.g., connection availability, communication delay). (). Each node has a storage upper bound of . For each link , a function returns if and can have a connection availability of at least and communication delay of at most , and [math] otherwise. A request is denoted by , where indicates the requested number of VMs with demanding capacity (). and are matrices, which specify the delay constraint and connection availability constraint between any two VMs, respectively, and is the requested VM placement availability.
Formally, the Reliable VM Placement (RVMP) problem is defined as follows:
Definition 1
For a request , the Reliable VM Placement (RVMP) problem is to place at most groups of VMs on a minimum number of nodes such that:
- •
The VM placement availability is no less than .
- •
Each node does not exceed its storage limit.
- •
Any two VMs and under the same placement group have a communication delay no more than , and a connection availability no less than .
In the RVMP problem, we assume that each VM can be placed at up to different nodes. Moreover, we only consider the server nodes and ignore some other nodes in the network (e.g., router nodes, switch nodes). In fact, the link between each node pair in the RVMP problem actually implies a (set of) path(s) which may traverse some other intermediate nodes. Finding reliable and delay-sensitive paths could be easier within a tree-like data center network, but this problem becomes harder when the node pairs are located in different data centers (a more general network). As we proved in [18, 19], the problem of finding link-disjoint paths for which the connection availability is no less than a given value is already NP-hard and cannot be approximated to an arbitrary degree. In this sense, jointly considering the RVMP problem and reliable routing problem will make it even harder to solve. Therefore, we assume is precalculated by using the algorithms proposed in Section 6, where we will address how to find reliable and delay-sensitive paths by taking link availability and link delay into account.
Theorem 1
The RVMP problem is NP-hard.
Proof:
Let us first introduce the NP-hard Bin-Packing problem [25]: Given items with sizes , , …, , and a set of bins with capacity , , …, , the Bin-Packing problem is to pack all the items into minimized number of bins without violating the bin capacity size. If we assume that for each node pair , for any and and all the nodes have availability , then the RVMP problem for is equivalent to the Bin-Packing problem, which is NP-hard. Next, let us analyze its complexity when the objective of minimizing the number of used nodes is not considered.
- •
Each node has unlimited storage: In this case, each set of VMs can be placed on one node and we need to find nodes in the network to store each set of VMs. This can be solved in searching when or using nodes to host groups of VMs when , which is polynomial time solvable.
- •
Each node has limited storage: Assume and , . Moreover, assume a certain value and that , remains the same for any . That is, the link between each node pair is only assigned with a delay value (connection availability is not taken into account). Under this assumption, Alicherry and Lakshman [26] have proved that the RVMP problem can be reduced to the 3SAT problem, and cannot be approximated to an arbitrary degree.
∎
The RVMP problem with SRNG failures is also NP-hard and cannot be approximated to an arbitrary degree, when we assume that each node is associated with one distinct SRNG event and all the node availabilities are assumed to be . In the following, we will devise both an exact solution and a heuristic to solve the RVMP problem.
5.2 Exact Solution
In this subsection, we propose an exact Integer Nonlinear Program (INLP) to solve the RVMP problem. We first solve the RVMP problem without SRNG failures and start by explaining the necessary notations and variables:
INLP notations:
: A VM placement request as specified in Section 5.1.
: set of nodes and set of links, respectively.
: The maximum number of times for one VM to be placed in the network.
Returns if a connection exists between and such that connection availability is at least and communication delay value is at most , and [math] otherwise.
: The non-occurring probability of the -th SRNG if node belongs to it, and otherwise.
INLP variable:
: a binary variable and it is equal to if VM is placed on node by placement group , and [math] otherwise, where , and .
Objective:
[TABLE]
Placement constraint:
[TABLE]
Storage constraint:
[TABLE]
Delay and connection availability constraint:
[TABLE]
VM placement availability constraint:
[TABLE]
Eq. (7) minimizes the number of total used nodes. For instance, we first calculate the maximum value of for node , and as long as for some and , it means that node is in use to host VM(s). After that, we take the sum of for all the nodes in and try to minimize this value. Eq. (8) ensures that each one of requested VMs must be placed in the network. Eq. (9) ensures that each node does not exceed its storage limit when VMs are placed on it. Eq. (10) makes sure that the specified delay constraint and connection availability of any two VMs under the same placement group are not violated. Eq. (11) ensures that the VM placement availability constraint is obeyed, according to Eq. (5). We note that Eq. (11) can simultaneously calculate the availability of the fully protected placement, partially protected placement, and single placement. For instance, when , Eq. (11) becomes:
[TABLE]
When for all , Eq. (12) becomes
[TABLE]
which is the VM placement availability constraint for the single placement.
To solve the RVMP problem with SRNG failures, we need to rewrite Eq. (11) in Eq. (13) and keep the objective and all other constraints the same (Eq. (7)-Eq. (10)).
Although inefficient in practice when the problem size is large, the INLP is useful for comparison purposes and demonstrates how accurate the heuristics are. This is shown in Figures 3 and 4 (for smaller size problems).
5.3 Heuristic Algorithm
Our proposed heuristic to solve the RVMP problem, called the Delay-Sensitive and Reliable (DSR) placement algorithm, is shown in Algorithm 1. Instead of placing VMs on nodes, the logic of DSR is to assign nodes to VMs until all the VMs are hosted by the nodes without violating VM delay and connection availability constraints. Since we want to use the least number of nodes to host VMs to satisfy the availability requirement, we gradually increase the amount of finding placement groups. In what follows, we explain each step of the heuristic algorithm, where the SRNG failures are first not considered.
In Step of Algorithm 1, we first initialize a binary variable representing whether VM is hosted by node under the group . After that, for placement group , we call Algorithm 2 to place VMs on nodes in Step . The purpose of Step is to avoid different groups to have the same placement result. But this will only happen when a single node’s free capacity is far greater than the VM demanding capacity. That is, all the VMs can be placed on the same node and its remaining free capacity is still large enough so that another set of VMs can be placed on it. In Step , we calculate the availability of , …, . If availability value of these placement groups is no less than , we call Algorithm 3 trying to return a partially VM placement solution in order to further reduce the number of used nodes. In Algorithm 3, for each node , where stores the nodes in the increasing order by their availabilities, we first clear all the VMs resident on . For each placement group , we try to use its other used nodes to host the VMs that are originally placed by it on . For simplicity, we apply a greedy approach: for each one (say ) of used nodes by placement group , we let host the VMs which are originally placed on by as many as possible. After that, we calculate whether the whole availability still satisfies . If so, we assign this partially placement solution to . Next, we will explain the details of Algorithm 2, which is to find a single placement.
In Step of Algorithm 2 we start with each , and assign it to in Step . We use a queue to store the VMs already placed, and initially it is set to empty. Besides, we also define variable to indicate whether VM is hosted by node corresponding to the placement group starting with VM . As long as ’s count is less than , Step -Step are going to assign nodes to host unassigned VMs. Step tries to find a node with maximum availability whose capacity should be at least . Moreover, if is placed on , it should not violate the delay and connection availability constraints with already hosted VMs. If it succeeds, in Step , the capacity of is reduced by , the availability of is changed to , and is added to . The reason to change a node’s availability is that if some nodes have been used to host the existing VM(s), then the availability for these nodes to host other (unassigned) VMs is . So we need to change its “availability” after each iteration of covering VM(s). If such a node cannot be found in Step , this indicates that not all the VMs are covered and we consider this placement group should “jointly” place uncovered VMs with one of placement groups found in Algorithm 1. The algorithm then breaks in Step . Following that, Step -Step search for an unsigned VM, which has the smallest value of to the VMs already placed, where is a user given value. By doing this, we want to find an unsigned VM that has “smaller” path delay and “greater” connection availability constraints with already placed VMs, and assigns it to . The motivation here is that we always first place the VM which has a more critical requirement in terms of path delay and connection availability. When ’s count is equal to , it indicates that all the VMs have been hosted, which means we get a “complete” placement group. Finally, in Step , the algorithm returns a placement group with the biggest availability from already determined single placements.
To solve the RVMP problem with SRNG failures, Alg. 1-3 remain the same except:
- •
In Step of Algorithm 2 and Step of Algorithm 3, we sort the nodes in by the product of their availabilities and non-occurring probabilities of all their belonging SRNG events in a decreasing order and an increasing order, respectively.
- •
In Step of Algorithm 2, we will find one node with maximum node availability multiplied by the non-occurring probabilities of SRNG events set , where denotes the set of SRNG events that belongs to but has already been considered/counted by the other nodes from Step to Step . The reason is that one unique SRNG event can only occur once, so we cannot calculate its value under the same placement group more than once.
The time complexity of Algorithm 2 can be calculated like this: There are VMs in total in Step , and Step has also iterations. Sorting algorithm for instance like insertion sort in Step takes time, and Step has a complexity of . Step -Step consume at most time. Therefore, the whole complexity of Algorithm 2 is . In Algorithm 3, Step consumes time via insertion sort and Steps - consume time, leading to a whole complexity of . Consequently, the whole time complexity of Algorithm 1 is , since it calls at most times of Algorithm 2.
5.4 Simulations
The simulations are run on a desktop PC with GHz and GB memory. We use an Intel(R)Core(TM)i5-4310M CPU 2.70GHz x64-based processor in our simulations. We use IBM ILOG CPLEX to implement the proposed INLP. All the heuristics are implemented by C# and compiled on Visual Studio 2015 (using .NET Framework 4.5).
We set for our heuristic DSR. We compare our exact INLP and heuristic DSR with two heuristics, namely (1) Greedy Placement (GP) and (2) Random Placement (RP). These 2 algorithms follow the similar routine with Algorithm 1, except: (1) in Step , they directly return the placement result if its availability is satisfied, instead of checking partially placement solution, and (2) they call different heuristics in Step (different from Algorithm 2), which we specify as follows:
- •
GP (or RP): It first selects a node with greatest availability (or randomly selects a node) and places as many VMs as possible on it under its storage limit. It then selects the second largest availability node (or randomly selects the second node) and places as many of the remaining VMs as possible, which should also satisfy the delay and connection availability constraints with the VMs already placed. This procedure continues until all the VMs are placed or all the nodes have been iterated.
In the following, we first test the algorithms for the RVMP problem without SRNG failures for both -node and -node networks, and then evaluate them for the RVMP problem with SRNG failures for a -node network.
5.4.1 -node network without SRNG failures
We first conduct simulations on a 16-node network. If we set (VM demanding capacity) relatively too small, then by placing as many VMs as possible on one node it may return a solution. If we set relatively too big, then the solution may not exist. Therefore, we let the node’s capacity be at most three times of the requested bandwidth of one single VM, by which we want to challenge the algorithm to find the solution. Consequently, the simulation parameters are set like this: the node capacities are randomly distributed between and units, and the node availabilities are randomly distributed among the set . For each request , , , each element in the delay matrix is between and , each element in the connection availability matrix is among the set , and is in the set . We randomly generate requests for , respectively. With respect to , when for link , it returns when the delay is at most , where is randomly chosen between , otherwise it returns [math]; when for link , it returns when the delay is at most , where is randomly chosen between , otherwise it returns [math]. We set and .
We first evaluate the performance of the algorithms in terms of Acceptance Ratio (AR), which is defined as the number of accepted requests over all the requests (between [math] and ). Figs. 3LABEL:sub@Fig:ARH2 and 4LABEL:sub@Fig:ARH3 show that the exact INLP always achieves the highest AR. DSR has a close performance with INLP, and it outperforms the other two heuristics. Besides, we notice that for the same algorithm, it achieves higher AR value when increases, since more VM replicas are allowed to be placed for a higher .
Next, we compare the algorithms in terms of Average Number of Used Nodes (ANUN). The ANUN is defined as the total number of nodes consumed by all the accepted requests divided by the number of accepted requests. From Figs. 3LABEL:sub@Fig:ANUNH2 and 4LABEL:sub@Fig:ANUNH3, we see that the achieved ANUN value by RP when , and when is the (or second) lowest. This is because its acceptance ratio in those scenarios is too low (under ), and it only finds solutions for some “easier” requests. Except for those cases, the INLP achieves the minimum value of ANUN, and our proposed DSR obtains the second lowest ANUN value. RP obtains a lower ANUN value than GP when and , since it is regarded to place more shared VMs. From above, we observe that even under the constrained simulation setup, the exact INLP can always accept most requests and consume the least amount of nodes as well, which validates its correctness.
Finally, Figs. 3LABEL:sub@Fig:TimeH2 and 4LABEL:sub@Fig:TimeH3 present the total running time over requests (in log scale). The INLP is significantly more time-consuming than all the 3 heuristics. The DSR, on the other hand, has a slightly higher running time than the other two heuristics, but it pays off by having a higher AR as shown in Figs. 3LABEL:sub@Fig:ARH2 and 4LABEL:sub@Fig:ARH3, and lower ANUN shown in Figs. 3LABEL:sub@Fig:ANUNH2 and 4LABEL:sub@Fig:ANUNH3.
5.4.2 -node network without SRNG failures
In this subsection, we simulate a -node complete graph, where the node capacities are randomly distributed in . The other simulation setup follows the same with Section 5.4.1. Since the problem sizes increase largely, the INLP becomes very time-consuming and it keeps running for at least one day without returning a feasible solution. We therefore only evaluate the heuristic algorithms. Due to the lack of the INLP, we generate sets of traffic requests for each requested VMs, respectively, and evaluate all the heuristic algorithms for those sets of traffic requests ( runs). By doing this, we want to establish confidence on the performance of heuristics. Figs. 5 and 6 depict the AR, ANUN and running time (in log scale) of all these algorithms, where the confidence interval is set to . The confidence interval is calculated for all the figures, but in those where it is not visible, the interval is negligibly small444We note here that some plots are log-scale that additionally contributes to the confidence interval visibility.. Similar to Section 5.4.1, DSR always achieves better performance than the other 2 heuristics in terms of AR (see Figs. 5LABEL:sub@Fig:AR100 and 6LABEL:sub@Fig:AR150) and ANUN (see Figs. 5LABEL:sub@Fig:ANUN100 and 6LABEL:sub@Fig:ANUN150). On the other hand, Figs. 5LABEL:sub@Fig:Time100 and 6LABEL:sub@Fig:Time150 show that DSR is more time consuming than the other heuristics, but it is still acceptable since it acquires higher AR and lower ANUN values. Another observation is that in this larger network scenario, RP obtains the highest ANUN value. This reveals that RP performs more poorly because of its randomness when the problem size grows.
5.4.3 -node network with SRNG failures
It is assumed that there are in total SRNG events, and each SRNG event occurs with the probability in the set . Each server node is associated with at most SRNG events. The other simulation setup follows the same with Section 5.4.2 and we also evaluate all the three algorithms by 100 runs to establish confidence. Since more SRNG events are induced for each node, the total VM placement availability for the same set of nodes will decrease according to Eq. (6), causing the optimal solution not to exist for when . Due to space limits, we only present the results for in Fig. 7, where a confidence interval is set to . Similar to Sections 5.4.1 and 5.4.2, DSR can obtain a better performance than the other 2 heuristics in terms of AR (see Fig. 7LABEL:sub@Fig:ARSRNG) and ANUN (see Fig. 7LABEL:sub@Fig:ANUNSRNG), but this comes at the expense of a higher running time as shown in Fig. 7LABEL:sub@Fig:TimeSRNG (in log scale). Due to the reason for incurring SRNG events, for all three algorithms, we can see that the achieved AR value in Fig. 7LABEL:sub@Fig:ARSRNG is lower than Fig. 5LABEL:sub@Fig:AR100, and the obtained ANUN value in Fig. 7LABEL:sub@Fig:ANUNSRNG is higher than Fig. 5LABEL:sub@Fig:ANUN100.
In all, we conclude that the exact INLP can be used as an optimal solution when the computation speed is not a big concern. However, as the problem size increases, its running time will increase exponentially. On the contrary, our proposed DSR is a good compromise between performance and running time, and it is the preferred choice for when the VM placement request needs to be computed on-the-fly.
6 Availability-Based Delay-Constrained Routing Problem
In the RVMP problem, we do not consider the link delay and availability, and assume that the function is given. In this section, we study how to find a connection over at most link-disjoint paths between a node pair, such that the connection availability is no less than and each path delay is no more than . For completeness, let us first formulate the connection availability calculation, which is introduced in [18, 19].
6.1 Link Failure Scenarios
Analogous to the node failure scenarios, we also address two kinds of link failure scenarios. For simplicity, suppose there are two (fully) link-disjoint paths and , and the availability of link is denoted as , where and is the failure probability of link . Then their total availability can be computed based on the following scenarios:
- •
Single-link failure: Analogous to the single node failure, here a path ’s availability (denoted by ) is equal to its lowest traversed link availability (highest failure probability). Using two disjoint paths will therefore lead to a total connection availability of . In Appendix B, we will address the ABDCR problem under the single-link failure scenario.
- •
Multiple link failures: This is a more general scenario where at one certain point in time, several links in the network may fail simultaneously. Hence, for a path , its availability should take into account all its links’ availabilities, i.e., . Consequently, , which indicates the probability that at least one of the two disjoint paths is available. In this paper, we assume multiple link failures may occur at any particular time point.
6.2 Connection Availability and Problem Definition
Similar to the node availability, we assume that the link availability is equal to the product of availabilities of all its components (e.g., amplifiers). If a path contains the links , , ,…, , and their corresponding (independent) availabilities are denoted by , , ,…, , then the availability of this (unprotected) path (represented by ) is equal to . If we take the of the link availabilities, finding a path with the highest availability is equivalent to the shortest path problem [27].
When, for a single connection (i.e., a single path), there are paths , ,…, with availabilities represented by , ,…, , the connection availability indicates the probability that at least one path is operational. We consider two cases, namely: (1) fully link-disjoint paths: these paths have no links in common, and (2) partially link-disjoint paths: at least two of these paths traverse a common link. In case (1), the availability (represented by ) can be calculated as follows:
[TABLE]
If we use Eq. (14) to calculate the availability for the partially link-disjoint case, the probability that the overlapping links operate (or the availability of the overlapping links) will be counted more than once. To solve this, we can analogously apply the operators and introduced in Section 3. Assuming there are partially link-disjoint paths , ,…, , the availability (represented by ) of partially link-disjoint paths can be calculated as:
[TABLE]
Let us use an example to explain how to calculate the connection availability for fully and partially link-disjoint paths, where is set to for simplicity. In Fig. 8 where the link availability is labeled on each link, paths and are fully link disjoint. According to Eq. (14), their availability is equal to:
[TABLE]
On the other hand, paths and are two partially link-disjoint paths. According to Eq. (15), the connection availability can be calculated as follows:
[TABLE]
Next, we formally define the Availability-Based Delay-Constrained Routing (ABDCR) problem as follows:
Definition 2
Given is a network represented by , where represents the set of nodes and denotes the set of links. Each link is associated with an availability value and a delay value . For a communication request represented by , where and denote the source and destination, represents the connection availability requirement and indicates the delay constraint, the Availability-Based Delay-Constrained Routing (ABDCR) problem is to establish a connection over at most (partially) link-disjoint paths, such that the connection availability is at least and each path has a delay no more than .
In the ABDCR problem, we regard that each request corresponds to the communication between each VM pair which is resident on different nodes. When, the delay constraint is not imposed on each path, the ABDCR problem is equivalent to the Availability-Based Path Selection (ABPS) problem [18, 19]. In [18, 19] we have proved that the ABPS problem is NP-hard for and cannot be approximated to an arbitrary degree. Therefore, the ABDCR problem for is also NP-hard and cannot be approximated to an arbitrary degree. When , the ABDCR problem is equivalent to the Multi-Constrained Routing problem, which is also NP-hard [28]. In the following, we propose an exact algorithm and two heuristics to solve the ABDCR problem.
6.3 Exact Algorithm
To solve the ABDCR problem exactly, we apply a modified Dijkstra’s algorithm by letting each node store as many subpaths as possible, which is similar to the exact algorithm for solving the multi-constrained routing problem [28]. We start with some notations used in the algorithm:
: the parent node of node for its stored -th subpath from to .
: the availability value stored at node for its stored -th subpath from to .
: the delay value stored at node for its stored -th subpath from to .
: the number of stored subpaths of node .
: node ’s stored -th subpath from to .
: the set of adjacent nodes of node .
The pseudo code of the exact algorithm for solving the ABDCR problem when is given in Algorithm 4.
When in the ABDCR problem, we could first duplicate the originate graph into copies , ,…, . After that, we create link to connect each graph copy with availability and delay [math] for , except for , where and . By doing this, we obtain an auxiliary graph , where the source node is and the destination node(s) is . In this context, if we find a path from to in , we can map into the original graph , where we can get (link-disjoint) paths from to . For example, Fig. 9 depicts the resulted auxiliary graph after transformation from the topology shown in Fig. 2 when . Suppose we find a path : -------, then it is equivalent to say that we find two link-disjoint paths s-a-b-t and s-c-d-t. On the other hand, if there is a path : -------, then it can be mapped to the same path --- in the original graph. In this context, we regard that the availability of in is the same with --- in .
As a result, we could slightly modify Algorithm 4 to solve the ABDCR problem for as follows ():
- •
In Step , the condition should only be if the availability of link-disjoint paths (after mapping them to the original graph) is greater than or equal to .
- •
In Step , for each node , its value is calculated based on link-disjoint paths after mapped to together with the subpath from to , according to Eq. (5). For example, suppose in Step 3 node is extracted and its stored subpath is -----. Now in Step 7, suppose the neighbor node is selected to update its value according to node . Therefore the subpath from to is ------, which are paths s-a-b-t and s-a-c after mapped to the original graph.
- •
In step , does not update its value. It also sets .
It is worthwhile to mention that our proposed exact algorithm can also solve the ABDCR problem in Shared-Risk Link Group (SRLG) networks. Similar to SRNG, the links in the same SRLG will fail simultaneously if the group they belong to fails. For example, in optical networks [29], several fibers may reside in the same duct and a cut of the duct would cut all fibers in it. One duct in this context corresponds to one distinct SRLG. To solve it, we only need to change the connection availability calculation in Step of Algorithm 4. More details of the connection availability in SRLG networks can be found in [18, 19].
The time complexity of algorithm 4 can be computed as follows. Let denote the maximum number of subpaths for each node to store, then in Step , contains at most subpaths. According to [30], , where is the Euler’s number. When using a Fibonacci heap to structure the heap, selecting the minimum cost path has a time complexity of [31] in Step . Step -Step take at most time for each link to be iterated thus resulting in time; because for a fixed link, the steps within the inner loop (Steps -) all cost time. Hence, the overall time complexity of Algorithm 4 is . Similarly, when for the exact algorithm, the overall time complexity is .
6.4 Heuristic algorithms
We propose two heuristic algorithms to solve the NP-hard ABDCR problem. The first one is called SeqTAMCRA: it leverages on TAMCRA [28], which is a heuristic to solve the multi-constrained routing problem. The procedure of SeqTAMCRA is the following: it iteratively runs TAMCRA, so in each iteration, we may obtain a path with the biggest availability and delay no more than . After each iteration, the traversed links will be pruned. This procedure continues until the connection availability is satisfied or the number of paths is bigger than .
The second heuristic is called TADRA, Tunable Availability-based Delay-constrained Routing Algorithm, and it is identical to the exact algorithm except that the number (variable ) of stored paths for each node should not exceed a given value (say ). For instance, Step of Algorithm 4 should be rewritten as:
if then.
6.5 Simulations
In order to verify the proposed algorithms, we conduct simulations on two networks555Since most of typical data center network topologies are tree-like (e.g., Fat-Tree, BCube), the number of link-disjoint paths between node pairs is limited. Hence, to examine the algorithms more thoroughly, we choose well-connected backbone networks for the evaluation.: USANet, displayed in Fig. 10, which is a realistic carrier backbone network, and GÉANT, shown in Fig. 11, which is a pan-European communications infrastructure. The link availability values are from the set , and the link delays are set between and . We randomly generate requests, and for each request , and are randomly generated, is among the set , and . We set . For both SeqTAMCRA and TADRA, the maximum number of stored paths is set to , where is the number of maximum link-disjoint paths and is the number of nodes in the network.
Figs. 12LABEL:sub@Fig:ARUSA and 12LABEL:sub@Fig:ARGEANT depict the Acceptance Ratio (AR) of the 3 algorithms, which is defined by the number of accepted requests divided by the total number of requests. The exact algorithm can always achieve the highest AR value, which also verifies its correctness. TADRA obtains close to optimal performance when and , while SeqTAMCRA performs well when . The reason is that when SeqTAMCRA dynamically maintains best paths for each node compared to the TADRA, so it can achieve a better performance. When , after finding a feasible path by SeqTAMCRA, pruning the used links will prevent it to find link-disjoint paths in some cases, leading to worse performance. Moreover, dynamically maintaining fixed number of best paths only works for when , since the connection availability calculation is non-linear when . Therefore, the exact algorithm and TADRA cannot adopt this technique to improve the efficiency for finding feasible paths. Nevertheless, we could jointly use TADRA when and SeqTAMCRA when as a heuristic combination.
When the solution does not exist, the exact algorithm needs much longer time to finish, we therefore only show the algorithms’ running times (in log scale) for all their accepted requests in Fig. 13. Even in this case, we see that the exact algorithm is still more time consuming than the others. TADRA requires more running time than SeqTAMCRA when , since its graph (input) size increases times.
7 Conclusion
In this paper, we have first studied the Reliable VM Placement (RVMP) problem. We have shown that the RVMP problem is NP-hard, and cannot be approximated to an arbitrary degree. To solve it, we have proposed an exact INLP as well as an efficient heuristic, and compare these algorithms with another two heuristic modifications. The simulation results reveal that, our proposed heuristic can always achieve a better performance in terms of acceptance ratio and the number of used nodes than the modified heuristics, although it consumes an (acceptably) higher running time. On the other hand, the exact INLP can always achieve the best performance, but its running time is significantly larger than all the heuristics. Following that, we have studied the Availability-Based Delay-Constrained Routing (ABDCR) problem. We have shown that the ABDCR problem is NP-hard and have proposed both an exact algorithm and two heuristics to solve it. Finally, we have tested these 3 algorithms via simulations on two networks. The simulation results indicate that the exact algorithm can always achieve the highest acceptance ratio, but this comes at the expense of much higher running time. Meanwhile, SeqTAMCRA and TADRA return close to optimal result in a shorter time for and , respectively, which suggests a combination of use when the computation time is a big concern.
In reality, the cloud provider can first solve the ABDCR problem via the proposed algorithms in Section 6.3 and/or 6.4 for different node pairs in the network. Those returned solutions serve as the input for the RVMP problem. At last, the cloud provider can solve the RVMP problem by using the proposed solutions in Section 5.2 and/or 5.3. This is one possible scenario how a practitioner can face both problems in Sections 5 and 6, and can apply our proposed solutions in the sequential order. In case the network (problem) size is too large but the computation time needs to be short, one possible approach is to first exclude some “poor availability” nodes from the graph and then run the algorithm(s) on the remainder of the network.
Acknowledgments
This research was funded by the joint EU FP7 Marie Curie Actions CleanSky Project, Contract No. 607584.
Appendix A RVMP problem under the single-node failure
In this appendix, we provide an INLP for the RVMP problem under the single-node failure scenario. The notations and variables follow the same with the ones in Section 5.2. Slightly different from Eqs. (7)-(11), Eq. (19) ensures that the primary placement plan () to put all the VMs on the network. Eq. (20) ensures that the primary placement plan does not place the same VM on the same node whose availability is less than with the backup placement plan (). Eq. (23) accounts for the placement availability. By setting , as long as one VM is placed on two nodes, the regarded “availability” value is returned as greater than , which is also greater than .
Objective:
[TABLE]
Placement constraint:
[TABLE]
[TABLE]
Storage constraint:
[TABLE]
Delay and connection availability constraint:
[TABLE]
VM placement availability constraint:
[TABLE]
Appendix B ABDCR problem under the single-link failure
In this section, it is assumed that at any particular time point, at most one link may fail. For a certain request , when in the ABDCR problem, we provide a polynomial-time algorithm to solve it. First, we remove the links whose availability is no greater than . After that, we run shortest path algorithm from to to obtain a minimum delay path. If there is a feasible path and its delay is less than , then it is the optimal solution, otherwise there is no solution.
When , if the optimal solution consists of fully link-disjoint paths, then fully link-disjoint paths also exist and have availability under the single-link failure scenario, which is optimal. When the optimal solution consists of partially link-disjoint paths, then (partially) link-disjoint paths are also enough. The reason is that the availability of partially link-disjoint paths is decided by one unprotected link (say ). Hence, it suffices to find link-disjoint paths. The proof for follows analogously from the proof for . Consequently, we have the following theorem:
Theorem 2
The ABDCR problem for under the single-node failure scenario is NP-hard.
Proof:
Fully link-disjoint paths: We regard that the link delay as the link weight in the graph. Hence, any two fully link-disjoint paths have connection availability , which can always satisfy . Now, the ABDCR problem is equivalent to the decision version of the disjoint min-max problem, which is to find two link-disjoint paths from a source to a destination, such that the maximum path weight is minimized. Since the disjoint min-max problem is NP-hard [32], our proof is therefore complete.
Partially link-disjoint paths: The case for partially link-disjoint paths can be reduced to the case of fully link-disjoint paths by a transformation such as in Fig. 14. More specifically, if we assume any link in Fig. 14, except for and , has availability less than , then no link, except for and , can be the unprotected link in the solution of the ABDCR problem for the partially link disjoint case from to . In this context, for such , solving the fully link-disjoint ABDCR problem from to is equivalent to solving the partially link-disjoint ABDCR problem from to .
∎
The reference list from the paper itself. Each links out to its DOI / PubMed record.
- 1[1] S. Yang, P. Wieder, and R. Yahyapour, “Reliable virtual machine placement in distributed clouds,” in Proc. of 8th IEEE/IFIP International Workshop on Reliable Networks Design and Modeling (RNDM) , 2016, pp. 1-7.
- 2[2] P. Mell and T. Grance, “The NIST definition of cloud computing,” Communications of the ACM , vol. 53, no. 6, p. 50, 2010.
- 3[3] B. Jennings and R. Stadler, “Resource management in clouds:Survey and research challenges,” Journal of Network and Systems Management , pp.1-53, 2014.
- 4[4] Z. Á. Mann, “Allocation of virtual machines in cloud data centers—-a survey of problem models and optimization algorithms,” ACM Computing Surveys ( C S U R 𝐶 𝑆 𝑈 𝑅 CSUR ) , vol. 48, no. 1, p. 11, 2015.
- 5[5] M. Alicherry and T. Lakshman, “Network aware resource allocation in distributed clouds,” in Proc. of IEEE INFOCOM , 2012, pp. 963-971.
- 6[6] O. Biran, A. Corradi, M. Fanelli, L. Foschini, A. Nus, D. Raz, and E. Silvera, “A stable network-aware vm placement for cloud systems,” in Proc. of 12th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGRID) , 2012, pp. 498-506.
- 7[7] J. W. Jiang, T. Lan, S. Ha, M. Chen, and M. Chiang, “joint vm placement and routing for data center traffic engineering,” in Proc. of IEEE INFOCOM , 2012, pp. 2876-2880.
- 8[8] X. Meng, V. Pappas, and L. Zhang, “Improving the scalability of data center networks with traffic-aware virtual machine placement,” in Proc. of IEEE INFOCOM , 2010, pp. 1-9.
