From: Kevin Wolf <kwolf@redhat.com>
To: Anthony Liguori <aliguori@linux.vnet.ibm.com>
Cc: "libvir-list@redhat.com" <libvir-list@redhat.com>,
qemu-devel <qemu-devel@nongnu.org>,
Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Subject: Re: [Qemu-devel] QEMU interfaces for image streaming and post-copy block migration
Date: Tue, 07 Sep 2010 17:20:44 +0200 [thread overview]
Message-ID: <4C86584C.9070406@redhat.com> (raw)
In-Reply-To: <4C86560D.9030308@linux.vnet.ibm.com>
Am 07.09.2010 17:11, schrieb Anthony Liguori:
> On 09/07/2010 10:02 AM, Kevin Wolf wrote:
>> Am 07.09.2010 16:49, schrieb Anthony Liguori:
>>
>>>> Shouldn't it be a runtime option? You can use the very same image with
>>>> copy-on-read or copy-on-write and it will behave the same (execpt for
>>>> performance), so it's not an inherent feature of the image file.
>>>>
>>>>
>>> The way it's implemented in QED is that it's a compatible feature. This
>>> means that implementations are allowed to ignore it if they want to.
>>> It's really a suggestion.
>>>
>> Well, the point is that I see no reason why an image should contain this
>> suggestion. There's really nothing about an image that could reasonably
>> indicate "use this better with copy-on-read than with copy-on-write".
>>
>> It's a decision you make when using the image.
>>
>
> Copy-on-read is, in many cases, a property of the backing file because
> it suggests that the backing file is either very slow or potentially
> volatile.
The simple copy-on-read without actively streaming the rest of the image
is not enough anyway for volatile backing files.
> IOW, let's say I'm an image distributor and I want to provide my images
> in a QED format that actually streams the image from an http server. I
> could provide a QED file without a copy-on-read bit set but I'd really
> like to convey this information as part of the image.
>
> You can argue that I should provide a config file too that contained the
> copy-on-read flag set but you could make the same argument about backing
> files too.
No. The image is perfectly readable when using COW instead of COR. On
the other hand, it's completely meaningless without its backing file.
>>> So yes, you could have a run time switch that overrides the feature bit
>>> on disk and either forces copy-on-read on or off.
>>>
>>> Do we have a way to pass block drivers run time options?
>>>
>> We'll get them with -blockdev. Today we're using colons for format
>> specific and separate -drive options for generic things.
>>
>
> That's right. I think I'd rather wait for -blockdev.
Well, then I consider -blockdev a dependency of QED (the copy-on-read
part at least) and we can't merge it before we have -blockdev.
>>> You need to understand the cluster boundaries in order to optimize the
>>> metadata updates. Sure, you can expose interfaces to the block layer to
>>> give all of this info but that's solving the same problem for doing
>>> block level copy-on-write.
>>>
>>> The other challenge is that for copy-on-read to be efficiently, you
>>> really need a format that can distinguish between unallocated sectors
>>> and zero sectors and do zero detection during the copy-on-read
>>> operation. Otherwise, if you have a 10G virtual disk with a backing
>>> file that's 1GB is size, copy-on-read will result in the leaf being 10G
>>> instead of ~1GB.
>>>
>> That's a good point. But it's not a reason to make the interface
>> specific to QED just because other formats would probably not implement
>> it as efficiently.
>
> You really can't do as good of a job in the block layer because you have
> very little info about the characteristics of the disk image.
I'm not saying that the generic block layer should implement
copy-on-read. I just think that it should pass a run-time option to the
driver - maybe just a BDRV_O_COPY_ON_READ flag - instead of having the
information in the image file. From a user perspective it should look
the same for qed, qcow2 and whatever else (like copy-on-write today)
Kevin
next prev parent reply other threads:[~2010-09-07 15:20 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-07 13:41 [Qemu-devel] QEMU interfaces for image streaming and post-copy block migration Anthony Liguori
2010-09-07 14:01 ` Alexander Graf
2010-09-07 14:31 ` Anthony Liguori
2010-09-07 14:33 ` Stefan Hajnoczi
2010-09-07 14:51 ` Anthony Liguori
2010-09-07 14:55 ` Stefan Hajnoczi
2010-09-07 15:00 ` Anthony Liguori
2010-09-07 15:09 ` Stefan Hajnoczi
2010-09-07 15:20 ` Anthony Liguori
2010-09-08 8:26 ` Kevin Wolf
2010-09-07 14:34 ` Kevin Wolf
2010-09-07 14:49 ` Stefan Hajnoczi
2010-09-07 14:57 ` Anthony Liguori
2010-09-07 15:05 ` Stefan Hajnoczi
2010-09-07 15:23 ` Anthony Liguori
2010-09-12 12:41 ` Avi Kivity
2010-09-12 13:25 ` Anthony Liguori
2010-09-12 13:40 ` Avi Kivity
2010-09-12 15:23 ` Anthony Liguori
2010-09-12 16:45 ` Avi Kivity
2010-09-12 17:19 ` Anthony Liguori
2010-09-12 17:31 ` Avi Kivity
2010-09-07 14:49 ` Anthony Liguori
2010-09-07 15:02 ` Kevin Wolf
2010-09-07 15:11 ` Anthony Liguori
2010-09-07 15:20 ` Kevin Wolf [this message]
2010-09-07 15:30 ` Anthony Liguori
2010-09-07 15:39 ` Kevin Wolf
2010-09-07 16:00 ` Anthony Liguori
2010-09-07 15:03 ` [Qemu-devel] " Daniel P. Berrange
2010-09-07 15:16 ` Anthony Liguori
2010-09-12 10:55 ` [Qemu-devel] " Avi Kivity
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=4C86584C.9070406@redhat.com \
--to=kwolf@redhat.com \
--cc=aliguori@linux.vnet.ibm.com \
--cc=libvir-list@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@linux.vnet.ibm.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.