qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Asynchronously Mirroring a Virtual Machine


From: Tomer Margalit
Subject: [Qemu-devel] Asynchronously Mirroring a Virtual Machine
Date: Wed, 22 Dec 2010 14:43:21 +0200

Hi,

I am a grad. student in Tel-Aviv university, and my theses is focused on asynchronous mirroring.
I have already built asynchronous mirror software (which is composed of a driver and a daemon), which works by setting up a virtual block device over an existing one, and thus mirroring the existing one (asynchronously) to the network using a window.

What I would like to add to it is the ability to asynchronously mirror a (QEMU) VM as well, so that if the primary site crashes, the VM can be restored (to the last stable point) immediately.

Since I want it to be as general as possible, I will not rely on my mirror, but only on there being a virtual block device that is mirroring me (and that has consistent writes (that is, if write A succeeded, and afterwards write B succeeded, then if B is on the secondary site, then A must be there too)), and that there is some kind of marking mechanism (so that I can mark the last consistent state).

The reason I want to do this using QEMU is that it has live migration - which is almost what I need.
Right now my plan is to treat the memory as a file, and put it and all the vm images on the same mirroring block device. 
Then, every minute or so, I will (stop the vm) sync the memory and disks, and put a mark (where during the minute I will continue to write what I can).

This sounds to me like doing a continuous "live migration", but never actually moving the machine, and after finishing the migration on the side that initiated it, not throwing away the dirty/clean pages (so that the memory does not have to be moved completely again).

I would appreciate any direction and/or suggestions in this matter.

Also, I wondered where can I find some documentation about the whole migration process - should I just read the code, or is there any document about it?

Thanks,
    Tomer

reply via email to

[Prev in Thread] Current Thread [Next in Thread]