Failure-Aware Construction and Reconfiguration of Distributed Virtual Machines for High Availability Computing