All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <aliguori@us.ibm.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: Dor Laor <dlaor@redhat.com>,
	agl@linux.vnet.ibm.com,
	Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>,
	jes sorensen <jes.sorensen@redhat.com>,
	Marcelo Tosatti <mtosatti@redhat.com>,
	qemu-devel@nongnu.org, Avi Kivity <avi@redhat.com>
Subject: Re: [Qemu-devel] Image streaming and live block copy
Date: Thu, 16 Jun 2011 08:10:23 -0500	[thread overview]
Message-ID: <4DFA00BF.5030605@us.ibm.com> (raw)
In-Reply-To: <4DF9F899.5050301@redhat.com>

On 06/16/2011 07:35 AM, Kevin Wolf wrote:
> Am 14.06.2011 20:18, schrieb Stefan Hajnoczi:
>> Overview
>> --------
>>
>> This patch series adds image streaming support for QED image files.  Other
>> image formats can also be supported in the future.
>>
>> Image streaming populates the file in the background while the guest is
>> running.  This makes it possible to start the guest before its image file has
>> been fully provisioned.
>>
>> Example use cases include:
>>   * Providing small virtual appliances for download that can be launched
>>     immediately but provision themselves in the background.
>>   * Reducing guest provisioning time by creating local image files but backing
>>     them with shared master images which will be streamed.
>>
>> When image streaming is enabled, the unallocated regions of the image file are
>> populated with the data from the backing file.  This occurs in the background
>> and the guest can perform regular I/O in the meantime.  Once the entire backing
>> file has been streamed, the image no longer requires a backing file and will
>> drop its reference
>
> Long CC list and Kevin wearing his upstream hat - this might be an
> unpleasant email. :-)
>
> So yesterday I had separate discussions with Stefan about image
> streaming and Marcelo, Avi and some other folks about live block copy.
> The conclusion was in both cases that, yes, both things are pretty
> similar and, yes, the current implementation don't reflect that but
> duplicate everything.
>
> To summarise what both things are about:
>
> * Image streaming is a normal image file plus copy-on-read plus a
> background task that copies data from the source image
> * Live block copy is a block-mirror of two normal image files plus a
> background task that copies data from the source image

Is this correct in practice?

Image streaming has the following semantics for A -> B where B is the 
backing file of A.

1) All writes go to A.
2) If a read can be satisified by A, read from A, else read from B, copy 
to A, then return

Block copy has the following semantics where A is the source and B is 
the destination.

1) All reads and writes go to A
2) Copy data from B to A in the background
3) When B matches the content of A, switch over to B

Other than at a hand wave, they both do copies, I'm not sure I see the 
overlap in implementations.

Regards,

Anthony Liguori

  parent reply	other threads:[~2011-06-16 13:22 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-14 18:18 [Qemu-devel] [PATCH 00/13] QED image streaming Stefan Hajnoczi
2011-06-14 18:18 ` [Qemu-devel] [PATCH 01/13] qemu-config: }, { -> }, { to please checkpatch.pl Stefan Hajnoczi
2011-06-14 18:18 ` [Qemu-devel] [PATCH 02/13] block: add -drive copy-on-read=on|off Stefan Hajnoczi
2011-06-14 18:18 ` [Qemu-devel] [PATCH 03/13] qed: replace is_write with flags field Stefan Hajnoczi
2011-06-14 18:18 ` [Qemu-devel] [PATCH 04/13] qed: extract qed_start_allocating_write() Stefan Hajnoczi
2011-06-14 18:18 ` [Qemu-devel] [PATCH 05/13] qed: make qed_aio_write_alloc() reusable Stefan Hajnoczi
2011-06-14 18:18 ` [Qemu-devel] [PATCH 06/13] qed: add support for copy-on-read Stefan Hajnoczi
2011-06-14 18:18 ` [Qemu-devel] [PATCH 07/13] qed: avoid deadlock on emulated synchronous I/O Stefan Hajnoczi
2011-06-14 18:18 ` [Qemu-devel] [PATCH 08/13] qerror: add qerror_from_args() to create qerror objects Stefan Hajnoczi
2011-06-14 18:18 ` [Qemu-devel] [PATCH 09/13] block: add bdrv_aio_copy_backing() Stefan Hajnoczi
2011-06-14 18:18 ` [Qemu-devel] [PATCH 10/13] qmp: add QMP support for stream commands Stefan Hajnoczi
2011-06-14 18:18 ` [Qemu-devel] [PATCH 11/13] block: add -drive stream=on|off Stefan Hajnoczi
2011-06-14 18:18 ` [Qemu-devel] [PATCH 12/13] qed: intelligent streaming implementation Stefan Hajnoczi
2011-06-14 18:18 ` [Qemu-devel] [PATCH 13/13] trace: trace bdrv_aio_readv/writev error paths Stefan Hajnoczi
2011-06-15 10:46 ` [Qemu-devel] [PATCH 00/13] QED image streaming Philipp Hahn
2011-06-15 12:18   ` Stefan Hajnoczi
2011-06-16 12:35 ` [Qemu-devel] Image streaming and live block copy (was: [PATCH 00/13] QED image streaming) Kevin Wolf
2011-06-16 12:49   ` [Qemu-devel] Image streaming and live block copy Avi Kivity
2011-06-16 13:08     ` Kevin Wolf
2011-06-16 13:38       ` Avi Kivity
2011-06-16 14:52       ` Marcelo Tosatti
2011-06-16 15:30         ` Stefan Hajnoczi
2011-06-17 12:31           ` Marcelo Tosatti
2011-06-18  9:15             ` Stefan Hajnoczi
2011-06-18  9:17               ` Stefan Hajnoczi
2011-06-19 16:02                 ` Dor Laor
2011-06-24  9:28                   ` Stefan Hajnoczi
2011-06-26 12:50                     ` Dor Laor
2011-06-27  7:48                       ` Kevin Wolf
2011-06-27  9:13                         ` Dor Laor
2011-06-17 13:54           ` Marcelo Tosatti
2011-06-17  8:36         ` Kevin Wolf
2011-06-17  8:57           ` Stefan Hajnoczi
2011-06-17  9:22             ` Kevin Wolf
2011-06-17 10:11               ` Stefan Hajnoczi
2011-06-17 12:21           ` Anthony Liguori
2011-06-17 13:04           ` Marcelo Tosatti
2011-06-17 13:50           ` Marcelo Tosatti
2011-06-16 13:10   ` Anthony Liguori [this message]
2011-06-16 13:50     ` Kevin Wolf
2011-06-16 14:38   ` [Qemu-devel] Image streaming and live block copy (was: [PATCH 00/13] QED image streaming) Marcelo Tosatti
2011-06-16 14:55     ` Marcelo Tosatti
2011-06-17  8:21     ` [Qemu-devel] Image streaming and live block copy Kevin Wolf

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=4DFA00BF.5030605@us.ibm.com \
    --to=aliguori@us.ibm.com \
    --cc=agl@linux.vnet.ibm.com \
    --cc=avi@redhat.com \
    --cc=dlaor@redhat.com \
    --cc=jes.sorensen@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mtosatti@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.