Live backups create-snapshot-as and memspec

David Wells dwells at
Fri Feb 26 18:29:45 UTC 2021

El 25/2/2021 a las 11:37, Peter Krempa escribió:
> On Wed, Feb 24, 2021 at 14:49:19 -0300, David Wells wrote:
>> Hi all!
>> I've been using libvirt for some time and until now I have treated backups
>> of virtual computers as if they where physical computers installing the
>> backup client on the guest. I am now however facing the need to backup a
>> couple a couple of guest at the host level so I've been trying to catch up
>> by reading, googling and by trial and error too. Up to now I've been able to
>> backup a live machine whith a command like the following
>>> virsh snapshot-create-as --domain test --name backup --atomic --diskspec
>>> vda,snapshot=external --disk-only
>> This command creates a file test.backup and in the meantime I can backup the
>> original test.qcow2 but for what I saw this disk image is in a "dirty"
>> state, as if the machine I could restore from this file had been turned off
>> whithout a proper shutdown.
>> I know that I can later restore the machine to its original state by issuing
>> a command like this
>>> virsh blockcommit --domain test vda --active --pivot
>>> virsh snapshot-delete test --metadata backup
>> I have seen that it is possible to create the snapshot using a memspec
>> parameter which would make the backup of the guest as if it where in a clean
>> state, however I haven't found the equivalent of the blockcommit for the
>> memory file, in a sort of speak, to be able to restore the guest to it's
>> original state.
> The memory image file doesn't depend on any other state nor does the VM
> use it after the snapshot is taken, if you don't need it you can delete
> it.
> The disk overlay you create by  'virsh snapshot-create-as' records only
> differences to the original image, but for memory state it doesn't make
> much sense as the memory is small and changes a lot, so we take a
> snapshot of the whole memory.
> Now to restore the state of a VM to a snapshot taken with memory,
> libvirt's native APIs for reverting don't work on external snapshots
> yet.
> You can use 'virsh restore memimg' to load VM's state as the memory
> snaphsot images have the same format as images created by 'virsh save'.
> Please note though that the configuration of the VM is taken from the
> save image if you do so, which includes paths to disk images, which may
> no longer be correct or desired, but virsh save-image-edit can be used
> to modify the XML if needed.
Hi all!

Peter, thank you very much for your reply! So if I understood correctly 
there is no way, at this time, to backup a live guest in a way that I 
can restore it to a "clean" state. Also, if I understood correctly, the 
probability of a corrupt system on restore of the vm is minimized having 
the qemu guest agent installed on the guest and issue the virsh 
create-snapshot-as with the --quiesce parameter, is this correct?

Thanks in advance!
Best regards,
David Wells.

More information about the libvirt-users mailing list