Remus: High Availability via Asynchronous Virtual Machine Replication


Allowing applications to survive hardware failure is an expensive undertaking, which generally involves re-engineering software to include complicated recovery logic as well as deploying special-purpose hardware; this represents a severe barrier to improving the dependability of large or legacy applications. We describe the construction of a general and transparent high availability service that allows existing, unmodified software to be protected from the failure of the physical machine on which it runs. Remus provides an extremely high degree of fault tolerance, to the point that a running system can transparently continue execution on an alternate physical host in the face of failure with only seconds of downtime, while completely preserving host state such as active network connections. Our approach encapsulates protected software in a virtual machine, asynchronously propagates changed state to a backup host at frequencies as high as forty times a second, and uses speculative execution to concurrently run the active VM slightly ahead of the replicated system state.

Open Access Media


@inproceedings {213651,
author = {Brendan Cully and Geoffrey Lefebvre and Dutch Meyer and Mike Feeley and Norm Hutchinson and Andrew Warfield},
title = {Remus: High Availability via Asynchronous Virtual Machine Replication},
booktitle = {5th {USENIX} Symposium on Networked Systems Design and Implementation ({NSDI} 08)},
year = {2008},
address = {San Francisco, CA},
url = {},
publisher = {{USENIX} Association},
month = apr,

Presentation Audio