All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: John Snow <jsnow@redhat.com>
Cc: Max Reitz <mreitz@redhat.com>, Qemu-block <qemu-block@nongnu.org>,
	qemu-devel <qemu-devel@nongnu.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>,
	Manos Pitsidianakis <el13635@mail.ntua.gr>,
	Fam Zheng <famz@redhat.com>,
	Stefan Hajnoczi <stefanha@redhat.com>
Subject: Re: [Qemu-devel] Persistent bitmaps for non-qcow2 formats
Date: Tue, 5 Sep 2017 15:15:19 +0200	[thread overview]
Message-ID: <20170905131519.GK4633@localhost.localdomain> (raw)
In-Reply-To: <6fd08a23-a4f1-527f-6665-d1dbeb51a64a@redhat.com>

Am 23.08.2017 um 19:44 hat John Snow geschrieben:
> On 08/23/2017 01:31 PM, Max Reitz wrote:
> > On 2017-08-22 21:07, John Snow wrote:
> > 
> > [...]
> > 
> >> (3) Add either a new flag that turns qcow2's backing file into a full
> >> R/W backing file, or add a new extension to qcow2 entirely (bypassing
> >> the traditional backing file mechanism to avoid confusion for older
> >> tooling) that adds a new read-write backing file field.
> >>
> >> This RW backing file field will be used for all reads AND writes; the
> >> qcow2 in question becomes a metadata container on top of the BDS chain.
> >> We can re-use Vladimir's bitmap persistence extension to save bitmaps in
> >> a qcow2 shell.
> >>
> >> The qcow2 becomes effectively a metadata cache for a new (essentially)
> >> filter node that handles features such as bitmaps. This could also be
> >> used to provide allocation map data for RAW files and other goodies down
> >> the road.
> >>
> >> Hopefully this achieves our desire to not create new formats AND our
> >> desire to concentrate features (and debugging, testing, etc) into qcow2,
> >> while allowing users to "have bitmaps with raw files."
> >>
> >> Of course, in this scenario, users now have two files: a qcow2 wrapper
> >> and the actual raw file in question; but regardless of how we were going
> >> to solve this, a raw file necessitates an external file of some sort,
> >> else we give up the idea that it was a raw file.
> >>
> >>
> >> Sound good?
> > 
> > While I don't quite like the idea of R/W backing files, I guess "don't
> > quite like" is still rather good.
> 
> Yeah, it's not necessarily my first pick, but it might be the least bad.

As for backing files always being read-only, that ship has sailed long
ago. We really never had it because I think HMP 'commit' was introduced
at the same time as backing files, but at least it was still contained
in synchronous function protected by the BQL. But at latest since we
introduced live block jobs, it's not a reasonable assumption to make any
more.

At this point, I have no problems with adding more users of writable
backing files any more. We'll have to use op blockers to make it safe.

> If you have any suggestions or alternatives for a way to accomplish the
> same in a way that does not leave any, even faint, bad taste in your
> mouth you are more than welcome to suggest it.

Maybe one thing that I don't want to dismiss right away would be a
separate BlockDriver for passthrough qcow2 images so that we don't
clutter all functions with special cases. But I'm not compeltely
convinced of it either.

I think I once had a use case for clusters that are marked as
"read/write to backing file", but I can't seem to remember it now. If we
had such a per-cluster setting, then a separate BlockDriver wouldn't be
an option, obviously.

Kevin

  reply	other threads:[~2017-09-05 13:16 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-22 19:07 [Qemu-devel] Persistent bitmaps for non-qcow2 formats John Snow
2017-08-23  8:59 ` Vladimir Sementsov-Ogievskiy
2017-08-23 18:04   ` Vladimir Sementsov-Ogievskiy
2017-08-23 18:37     ` Vladimir Sementsov-Ogievskiy
2017-08-25  0:55     ` John Snow
2017-08-25 12:05       ` Vladimir Sementsov-Ogievskiy
2017-08-25 13:44       ` Max Reitz
2017-08-28  2:57         ` Fam Zheng
2017-08-28 18:11           ` John Snow
2017-08-29  9:26             ` Yaniv Lavi (Dary)
2017-08-30 10:35               ` Max Reitz
2017-08-30 12:58                 ` Yaniv Lavi (Dary)
2017-08-30 21:25                   ` John Snow
2017-08-31  7:53                     ` Yaniv Lavi (Dary)
2017-09-05 13:01           ` Kevin Wolf
2017-09-05 13:18             ` Fam Zheng
2017-09-05 13:27               ` Kevin Wolf
2017-09-05 13:39                 ` Fam Zheng
2017-09-05 14:39                   ` Kevin Wolf
2017-08-29  1:18         ` John Snow
2017-08-29 14:30           ` Eric Blake
2017-08-29 21:02             ` John Snow
2017-08-30 11:18               ` Max Reitz
2017-08-30 11:14           ` Max Reitz
2017-08-23 17:31 ` Max Reitz
2017-08-23 17:44   ` John Snow
2017-09-05 13:15     ` Kevin Wolf [this message]
2017-08-30 13:36 ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2017-08-30 13:45   ` Daniel P. Berrange
2017-08-30 21:39     ` John Snow
2017-09-05 11:46 ` [Qemu-devel] " Kevin Wolf
2017-09-06 13:11   ` Stefan Hajnoczi

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=20170905131519.GK4633@localhost.localdomain \
    --to=kwolf@redhat.com \
    --cc=el13635@mail.ntua.gr \
    --cc=famz@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    --cc=vsementsov@virtuozzo.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.