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 (S410) the cache type to "write through"; pause (S420) Input Output, IO, operations, and create an Infrastructure-as-a-Service, laaS, snapshot obtained (S430) 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 (S440) the queued IO operations associated with that virtual hard drive; resuming (S450) 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 (S460) 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 (S470) of failure of the first datacenter, arrange (S480) 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 (S410) the cache type to "write through"; pause (S420) Input Output, IO, operations, and create an Infrastructure-as-a-Service, laaS, snapshot obtained (S430) 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 (S440) the queued IO operations associated with that virtual hard drive; resuming (S450) 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 (S460) 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 (S470) of failure of the first datacenter, arrange (S480) 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 (S410) the cache type to "write through"; pause (S420) Input Output, IO, operations, and create an Infrastructure-as-a-Service, laaS, snapshot obtained (S430) 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 (S440) the queued IO operations associated with that virtual hard drive; resuming (S450) 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 (S460) 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 (S470) of failure of the first datacenter, arrange (S480) to have each virtual hard drive's replicated snapshot be consumed by a recovery service for the guest at the second datacenter. <EOS>