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
next prev parent 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).