A system comprising: a cloud-based virtual machine connected to multiple virtual hard drives and associated with a guest of a first datacenter; and a recovery management server including a processing unit to execute program code to cause the recovery management server to: substantially simultaneously for each virtual hard drive: if a cache type associated with that virtual hard drive is "write back", changing the cache type to "write through"; pause Input Output, IO, operations, and create an Infrastructure-as-a-Service, laaS, snapshot obtained directly from a stack of the virtual hard drive while the IO operations are paused such that subsequent IO operations are queued for later execution; executing the queued IO operations associated with that virtual hard drive; resuming IO operations associated with that virtual hard drive such that new IO operations are performed; and if the cache type of that virtual hard drive was changed to "write through", changing the cache type back to "write back"; directly replicate the snapshot for each virtual hard drive at a second datacenter without re-creating IO operations for each virtual hard drive via a log file; and upon an indication of failure of the first datacenter, arrange to have each virtual hard drive's replicated snapshot be consumed by a recovery service for the guest at the second datacenter. a cloud-based virtual machine connected to multiple virtual hard drives and associated with a guest of a first datacenter; and a recovery management server including a processing unit to execute program code to cause the recovery management server to: substantially simultaneously for each virtual hard drive: if a cache type associated with that virtual hard drive is "write back", changing the cache type to "write through"; pause Input Output, IO, operations, and create an Infrastructure-as-a-Service, laaS, snapshot obtained directly from a stack of the virtual hard drive while the IO operations are paused such that subsequent IO operations are queued for later execution; executing the queued IO operations associated with that virtual hard drive; resuming IO operations associated with that virtual hard drive such that new IO operations are performed; and if the cache type of that virtual hard drive was changed to "write through", changing the cache type back to "write back"; directly replicate the snapshot for each virtual hard drive at a second datacenter without re-creating IO operations for each virtual hard drive via a log file; and upon an indication of failure of the first datacenter, arrange to have each virtual hard drive's replicated snapshot be consumed by a recovery service for the guest at the second datacenter. if a cache type associated with that virtual hard drive is "write back", changing the cache type to "write through"; pause Input Output, IO, operations, and create an Infrastructure-as-a-Service, laaS, snapshot obtained directly from a stack of the virtual hard drive while the IO operations are paused such that subsequent IO operations are queued for later execution; executing the queued IO operations associated with that virtual hard drive; resuming IO operations associated with that virtual hard drive such that new IO operations are performed; and if the cache type of that virtual hard drive was changed to "write through", changing the cache type back to "write back"; directly replicate the snapshot for each virtual hard drive at a second datacenter without re-creating IO operations for each virtual hard drive via a log file; and upon an indication of failure of the first datacenter, arrange to have each virtual hard drive's replicated snapshot be consumed by a recovery service for the guest at the second datacenter.