qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Image streaming gives live block copy for free (and vic


From: Dor Laor
Subject: Re: [Qemu-devel] Image streaming gives live block copy for free (and vice versa)
Date: Sun, 26 Jun 2011 15:52:33 +0300
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110428 Fedora/3.1.10-1.fc14 Lightning/1.0b3pre Thunderbird/3.1.10 ThunderBrowse/3.3.5

On 06/24/2011 12:35 PM, Stefan Hajnoczi wrote:
On Sun, Jun 19, 2011 at 5:12 PM, Dor Laor<address@hidden>  wrote:
On 06/17/2011 08:53 AM, Stefan Hajnoczi wrote:

Perhaps someone has been saying this all along but I want to spell it
out that image streaming and live block copy are equivalent in theory.
I just realized this last night.  In practice we might choose one
implementation or two different ones for performance reasons.

If any of these are unclear please let me know and I'll try to post
diagrams.

Live block copy using image streaming
-------------------------------------

1. Create the destination image file and use the source image as the
backing file.
2. Quiesce I/O and pause VM.
3. Switch to destination image.
4. Resume VM.
5. Start streaming destination image in order to copy source image
data into destination file.
6. Streaming completes and disables the backing file, leaving the live
copied destination image that no longer depends on the source image.

Well streaming is copying just using post-copy approach.
Both pre and post are required:
  - post-copy (aka streaming) for fast live block migration of the VM
   for cpu load balance.
  - pre-copy (aka live block copy)
   If you manage to get a network outage between the source and the
   destination storage systems, you will manage to keep running the VM
   on the source side.

Out of interest, are you brainstorming using live block copy and image
streaming for pre- and post-copy live migration or do you have
concrete plans to update libvirt to use these mechanisms?

Adding Eric, Daniel and Dave from the libvirt team.


So far I've been focussing on the fast provisioning use case where
image streaming helps, but eventually I would like to improve the
state of storage migration too.

In general it seems to me that we need to reuse the design so fast provision, live block migration, live snapshot (merge) and non shared storage option will all use the same code and the same interfaces.


Stefan







reply via email to

[Prev in Thread] Current Thread [Next in Thread]