qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
To: John Snow <jsnow@redhat.com>, Qemu-block <qemu-block@nongnu.org>
Cc: qemu-devel <qemu-devel@nongnu.org>, Kevin Wolf <kwolf@redhat.com>,
	Manos Pitsidianakis <el13635@mail.ntua.gr>,
	Fam Zheng <famz@redhat.com>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Max Reitz <mreitz@redhat.com>
Subject: Re: [Qemu-devel] Persistent bitmaps for non-qcow2 formats
Date: Wed, 23 Aug 2017 21:04:37 +0300	[thread overview]
Message-ID: <cb783ebb-198e-1814-2f9c-aec93c83b17a@virtuozzo.com> (raw)
In-Reply-To: <a81c8dfb-3d98-57ad-8159-5147283433fa@virtuozzo.com>

23.08.2017 11:59, Vladimir Sementsov-Ogievskiy wrote:
> 22.08.2017 22:07, John Snow wrote:
>> 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?
>
> Looks interesting. It is a clean reusing of qcow2-bitmaps without any 
> modifications to them.
>
> Should there be some problems with internal snapshots and other things?
>
>
>
Hm. looks like that this backing file should not only receive all reads 
and writes, but almost everything ->bdrv_ handlers, except bitmap 
related of course. This doesn't seems simple to implement. Especially if 
imaging some not-raw feature-full format under this thin qcow2 layer.. 
Or we can restrict this RW backing file to be raw-only?


-- 
Best regards,
Vladimir

  reply	other threads:[~2017-08-23 18:04 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 [this message]
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=cb783ebb-198e-1814-2f9c-aec93c83b17a@virtuozzo.com \
    --to=vsementsov@virtuozzo.com \
    --cc=el13635@mail.ntua.gr \
    --cc=famz@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.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).