[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Loading snapshot with readonly qcow2 image

From: Michael Spradling
Subject: Re: [Qemu-devel] Loading snapshot with readonly qcow2 image
Date: Thu, 13 Dec 2018 18:33:02 +0000

On Nov 30 08:58, Eric Blake wrote:
> On 11/30/18 8:44 AM, Michael Spradling wrote:
> > Hello,
> > 
> > I would like to resume a snapshot via the command line option -loadvm
> > with a read only QCOW2 file.  For my use case, I would ideally like to
> > load multiple instances of different snapshots from the same QCOW2 image.
> > 
> > It seems this is not possible at the moment as when a snapshot is loaded, 
> > QEMU
> > copies some meta data around in the qcow2 image.
> > 
> > I have also tried to use the "-snapshot" option, which to my understanding
> > creates a new temporary QCOW2 file with a backing file pointing the original
> > image passed on the command line.  This also does not work, when looking
> > through the source it appears QEMU only supports loading snapshots from 
> > writable
> > QCOW2 images and doesn't support loading from images in backing files.
> > 
> > My question is has anyone looked into loading snapshots from a backing
> > file?  I have attempted to look through the code and this looks to be
> > difficult.  If I attempt to add support for this is there any general
> > advice to follow?  Any other ideas?
> 'qemu-nbd -l' can serve snapshots from a qcow2 file; perhaps that can be
> used to cobble together something that works for your needs?
> Sadly, internal snapshots don't get much attention these days, so there may
> well be missing functionality, but no one is really stepping up to provide
> patches.
> -- 
> Eric Blake, Principal Software Engineer
> Red Hat, Inc.           +1-919-301-3266
> Virtualization:  qemu.org | libvirt.org

I looked at "qemu-nbd -l" and this seems to only export a readonly
interface.  Really, what I need is a writable temp file that can load a
snapshot snapshot.

Please excuse and correct me if I get some of the terminology of the
sections below wrong.

I went down the path of hacking up some of the qemu qcow2 file system
code to see if I can achieve the ability to restore a snapshot from a
backing file to the temporarily created "-snapshot" qcow2 image.  The
backing file has been marked readonly by the filesystem and the active
image file was created with the "-snapshot" option.  I spend some time
reading the qcow2 documentation and it seems I have to copy the l1 and
l2 table values(are these actual host clusters) from the backing file
snapshot to the active images l1 and l2 tables.  Is there anything else
that may need updated that I have not yet stumbled upon?

I still don't have this working yet and I believe my area of problems is
qcow2_update_snapshot_refcount.  Can anyone explain what this does
exactly.  It seems the function does three different things based on the
value of addend, either -1, 0, 1, but its somewhat unclear.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]