From: Stefan Hajnoczi <stefanha@gmail.com>
To: Philipp Hahn <hahn@univention.de>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 00/13] QED image streaming
Date: Wed, 15 Jun 2011 13:18:14 +0100 [thread overview]
Message-ID: <BANLkTikkJvVi5EP6SnqFnrs8tpp-KNcvEw@mail.gmail.com> (raw)
In-Reply-To: <201106151246.28880.hahn@univention.de>
On Wed, Jun 15, 2011 at 11:46 AM, Philipp Hahn <hahn@univention.de> wrote:
> On Tuesday 14 June 2011 20:18:18 Stefan Hajnoczi wrote:
>> 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.
> ...
>> 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.
>
> Does this also work for intermediate images, that is
> - master image on a NFS share,
> - local copy on a local drive using CoR-streaming from master,
> - local instance based on local copy using CoW.
>
> We normally have mostly independent servers without a shared storage, expect a
> global NFS share for the master images. Currently we have to copy the master
> image to the local server first, before we than can create lots of instances
> from then, which have few changed relative to the master, so we don't want
> the copying to happen there.
No, unfortunately adding another level of backing files prevents use
of streaming today. The reason is because backing files are opened
read-only. This ensures that multiple VMs running concurrently will
not change the backing file. Image formats are typically not safe for
concurrent updates from multiple applications just like regular file
systems cannot be accessed from multiple hosts simultaneously. You'd
need a cluster file system for that, and similarly we need multiple
writers support for image formats or some other solution.
We'd need a solution that makes it possible to update the local copy
of the master image while multiple VMs are running. For example
qemu-nbd serving the local copy of the master image and each VM image
using the backing file over NBD. That way all accesses to the local
copy of the master image go through qemu-nbd and streaming can be
performed safely. I haven't tested this approach, it might require
some improvements to qemu-nbd and I expect the performance would need
work too.
Thanks for raising this use case, I think it's an interesting one
because you are saving disk space by keeping a local master copy.
Stefan
next prev parent reply other threads:[~2011-06-15 12:18 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 [this message]
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
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=BANLkTikkJvVi5EP6SnqFnrs8tpp-KNcvEw@mail.gmail.com \
--to=stefanha@gmail.com \
--cc=hahn@univention.de \
--cc=qemu-devel@nongnu.org \
/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).