From: Michael Spradling <michael@os.amperecomputing.com>
To: Eric Blake <eblake@redhat.com>
Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] Loading snapshot with readonly qcow2 image
Date: Thu, 13 Dec 2018 18:33:02 +0000 [thread overview]
Message-ID: <20181213183253.GE10456@mswork1> (raw)
In-Reply-To: <faae3e4a-bce7-849a-b510-1c94ffb03413@redhat.com>
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.
Thanks,
Michael
next prev parent reply other threads:[~2018-12-13 18:33 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-30 14:44 [Qemu-devel] Loading snapshot with readonly qcow2 image Michael Spradling
2018-11-30 14:58 ` Eric Blake
2018-12-13 18:33 ` Michael Spradling [this message]
2018-12-13 21:43 ` Eric Blake
2018-12-14 16:03 ` Michael Spradling
2018-12-14 20:28 ` Eric Blake
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181213183253.GE10456@mswork1 \
--to=michael@os.amperecomputing.com \
--cc=eblake@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).