I have been using internal snapshots on production qcow2 images for a couple of years, admittedly as infrequently as possible with one exception and that exception has had multiple snapshots taken and removed using virt-manager's GUI.

I was unaware of this:
There are some technical downsides to
internal snapshots IIUC, such as inability to free the space used by the
internal snapshot when it is deleted,

This might explain why this VM recently kept going into a paused state and I had to extend the volume to get it to stay up.  This VM is used for testing our software in SharePoint and we make heavy use of snapshots.  Is there nothing I can to do recover that space? 

What would be the best practice then for a VM that needs to be able to create and remove snapshots on a regular basis?

Paul O'Rorke
Tracker Software Products (Canada) Limited
www.tracker-software.com
Tel: +1 (250) 324 1621
Fax: +1 (250) 324 1623



Support:
http://www.tracker-software.com/support
Download latest Releases
http://www.tracker-software.com/downloads/




On 2018-05-01 01:11 PM, Gionatan Danti wrote:
Il 01-05-2018 10:56 Daniel P. Berrangé ha scritto:
qcow2 is widely used in production at large scale in general. Just not
with internal snapshots - almost everything uses external snapshots,
aka backing file chains.

The QEMU community still tends to discourage use of internal snapshots.
There are not even any QMP monitor commands to use them - you are forced
to use the legacy HMP interface to QEMU for mgmt. All of the workaround
providing interesting block storage mgmt is focused on external snapshots
(aka the backing_file option). There are some technical downsides to
internal snapshots IIUC, such as inability to free the space used by the
internal snapshot when it is deleted, loading/saving snapshots blocks
execution of the guest OS, and probably more I've forgotten about.

The only nice thing about internal snapshots is simplicity of mgmt, and
that is a very nice thing indeed, which is why virt-manager has code
to support that - it was much easier to add that code for external
snapshots. Just a shame about all the downsides :-(

So internal snapshots remain something very useful for lab/tests, but are not recommended for regular use in production environment, right?

Thanks.