qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: John Snow <jsnow@redhat.com>
To: Qemu-block <qemu-block@nongnu.org>
Cc: qemu-devel <qemu-devel@nongnu.org>, Kevin Wolf <kwolf@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>,
	Manos Pitsidianakis <el13635@mail.ntua.gr>,
	Fam Zheng <famz@redhat.com>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Max Reitz <mreitz@redhat.com>
Subject: [Qemu-devel] Persistent bitmaps for non-qcow2 formats
Date: Tue, 22 Aug 2017 15:07:04 -0400	[thread overview]
Message-ID: <f5ef1341-cfe2-6e20-3f98-b08ef2f7d373@redhat.com> (raw)

Well, we knew we'd want this sooner or later. I've got some pings
downstream over whether or not we support persistent bitmaps for
non-qcow2 formats.

Currently: no, we don't.

We tried two different ideas for storage agnostic bitmap persistence:


(1) Using qcow2 as a storage container format (similar to VM save
states) for information not associated with that particular drive.

This didn't go over so well; we decided it was too messy logistically to
manage data in any meaningful sense in a file that didn't share any
semantic relationship to the qcow2 in question.

Well, "We" decided is more like "Kevin and Max" decided. They are right,
though.


(2) Using a new proto-wrapper format that Fam Zheng designed that serves
as a simple top-layer redirect for metadata that allows us to associate
raw bitmap data with an arbitrary backing image.

This also didn't go over so well, the desire for a "new format" was
pretty thin, even if it was only a pseudo-format.


We'd still like to be able to use bitmaps with non-qcow2 formats
however, and people are going to keep asking. So here's a third thought:


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

             reply	other threads:[~2017-08-22 19:07 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-22 19:07 John Snow [this message]
2017-08-23  8:59 ` [Qemu-devel] Persistent bitmaps for non-qcow2 formats 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
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=f5ef1341-cfe2-6e20-3f98-b08ef2f7d373@redhat.com \
    --to=jsnow@redhat.com \
    --cc=el13635@mail.ntua.gr \
    --cc=famz@redhat.com \
    --cc=kwolf@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 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).