[libvirt-users] Create qcow2 v3 volumes via libvirt

Eric Blake eblake at redhat.com
Tue May 1 21:31:53 UTC 2018


On 05/01/2018 04:17 PM, Paul O'Rorke wrote:
> 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 is not an insurmountable difficulty, just one that no one has spent 
time coding up.

> 
> 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?

If you have no internal snapshots, you can do a 'qemu-img convert' to 
copy just the portion of the image that is actively in use; the copy 
will use less disk space than the original because it got rid of the 
now-unused space.  'virt-sparsify' from libguestfs takes this one step 
further, by also removing unused space within the guest filesystem itself.

In fact, even if you do have internal snapshots, there is probably a 
sequence of 'qemu-img convert' invocations that can ultimately convert 
all of your internal snapshots into an external chain of snapshots; but 
I don't have a ready formula off-hand to point to (experiment on an 
image you don't care about, before doing it on your production image).

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

In a managed environment, external snapshots probably have the most 
support for creating and later merging portions of a chain of snapshots, 
although we could still improve libvirt to make this feel like more of a 
first class citizen.

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org




More information about the libvirt-users mailing list