  Cloud computing has emerged as a powerful and elastic platform for internet
service hosting, yet it also draws concerns of the unpredictable performance of
cloud-based services due to network congestion. To offer predictable
performance, the virtual cluster abstraction of cloud services has been
proposed, which enables allocation and performance isolation regarding both
computing resources and network bandwidth in a simplified virtual network
model. One issue arisen in virtual cluster allocation is the survivability of
tenant services against physical failures. Existing works have studied virtual
cluster backup provisioning with fixed primary embeddings, but have not
considered the impact of primary embeddings on backup resource consumption. To
address this issue, in this paper we study how to embed virtual clusters
survivably in the cloud data center, by jointly optimizing primary and backup
embeddings of the virtual clusters. We formally define the survivable virtual
cluster embedding problem. We then propose a novel algorithm, which computes
the most resource-efficient embedding given a tenant request. Since the optimal
algorithm has high time complexity, we further propose a faster heuristic
algorithm, which is several orders faster than the optimal solution, yet able
to achieve similar performance. Besides theoretical analysis, we evaluate our
algorithms via extensive simulations.
