On Sun, Apr 24, 2011 at 12:17 AM, Jagane Sundar <jagane@xxxxxxxxxx> wrote: > I would like to get your input on a KVM feature that I am > currently developing. > > What it does is this - it can perform full and incremental > disk backups of running KVM VMs, where a backup is defined > as a snapshot of the disk state of all virtual disks > configured for the VM. Great, there is definitely demand for live snapshots and online backup. Some efforts are already underway to implement this. Jes has worked on a live snapshot feature for online backups. The snapshot_blkdev QEMU monitor command is available in qemu.git and works like this: qemu> snapshot_blockdev virtio-disk0 /tmp/new-img.qcow2 It will create a new image file backed by the current image file. It then switches the VM disk to the new image file. All writes will go to the new image file. The backup software on the host can now read from the original image file since it will not be modified. There is no support yet for live merging the new image file back into the original image file (live commit). Here are some of the workflows and requirements: http://wiki.qemu.org/Features/Snapshots http://wiki.qemu.org/Features/Snapshots2 http://wiki.qemu.org/Features/Block/Merge It is possible to find the dirty blocks by enumerating allocated clusters in the new image file - these are the clusters that have been written to since the snapshot. > My proposal will also eventually need the capability to run an > agent in the guest for sync'ing the filesystem, flushing > database caches, etc. I am also unsure whether just sync'ing > a ext3 or ext4 FS and then snapshotting is adequate for backup > purposes. virtagent is being developed by Mike Roth as a guest agent for QEMU. One of the use cases for virtagent is backup/snapshots and Jes has submitted patches to add file system freeze. You can find both virtagent and fsfreeze on the qemu mailing list. > Please let me know if you find this feature interesting. I am > looking forward to feedback on any and all aspects of this > design. I would like to work with the KVM community to > contribute this feature to the KVM code base. Do you have a link to a git repo with your code? Stefan -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html