  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 $\delta$, 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 w 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.
