Signaling KVM/QEMU VM to quiesce, preparing for live backup

backupkvm-virtualizationqemuvirtualization

Assume a KVM/QEMU VM, which uses qcow/qcow2 as the image format for virtual disks. Backup is (to be) done on the VM host.

As far as my current understanding goes is that while we can create backups from the vm right out of the box using snapshots (with LVM, for example), these backups are merely crash-consistent, which is really not appropiate IMHO. Also, upon closer inspection, a lot of the tools and scripts currently floating around are doing exactly that – so either the authors were lazy or missed some fundamentals, or I'm completely wrong about the whole show.

My current solution is to call fsfreeze (or use the device-mapper) in the vm, prior taking the snapshot on the host.

However, how do I do this elegantly from the host? Using the virtio channel, speaking to qemu-ga or using QMP; they all seem to be in their infancy, highly asynchronous, and furthermore, it seems nothing is guaranteed to come through.

Am I really required to manually log into the VM's?
Are there no tools handling this properly already existing ? (There are a lot of features proposed for QEMU, but I couldn't find any [decent] doc's on implemented features relating to this).

Best Answer

What you are talking about is a function of the QEMU Guest Agent, or qemu-ga in short. Please take a look at https://wiki.qemu.org/Features/GuestAgent

Related Topic