From: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
To: qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>, Anthony Liguori <aliguori@us.ibm.com>
Subject: [Qemu-devel] [RFC PATCH 0/8] QED image streaming
Date: Wed, 27 Apr 2011 14:27:27 +0100 [thread overview]
Message-ID: <1303910855-28999-1-git-send-email-stefanha@linux.vnet.ibm.com> (raw)
This patch series adds image streaming support for QED image files. Other
image formats can 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 contents of the backing file are written
to the unallocated regions of the image 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 it will
drop its reference.
Example invocation:
$ # my_fedora.qed is a tiny file initially but will be streamed when the guest starts
$ ./qemu-img create -f qed -o backing_file=fedora-14.img,copy_on_read=on,stream=on my_fedora.qed
Formatting 'my_fedora.qed', fmt=qed size=10737418240 backing_file='fedora-14.img' cluster_size=0 table_size=0 copy_on_read=on stream=on
$ # run the guest and stream fedora-14.img into my_fedora.qed
$ x86_64-softmmu/qemu-system-x86_64 -m 512 -enable-kvm -drive if=virtio,file=my_fedora.qed,cache=none
This patch series is structured as follows and is based on work that Adam
Litke, Anthony Liguori, and I have done:
[PATCH 1/8] block: add bdrv_aio_stream
Introduce the .bdrv_aio_stream() BlockDriver interface.
[PATCH 2/8] qmp: Add QMP support for stream commands
Introduce monitor commands to start/stop image streaming as well as querying
the state of image streaming.
[PATCH 3/8] qed: add support for Copy-on-Read
[PATCH 4/8] qed: intelligent streaming implementation
[PATCH 5/8] qed: detect zero writes and skip them when to an unalloc
Implement QED support for .bdrv_aio_stream().
[PATCH 6/8] blockdev: Allow image files to auto-enable streaming
[PATCH 7/8] qed: Add QED_CF_STREAM flag to auto-enable streaming
[PATCH 8/8] qed: Add -o stream=on image creation option
Introduce a flag that auto-starts image streaming when the image file is opened.
TODO
* Settle on monitor interfaces and libvirt interaction
* Streaming background I/O throttling
* Additional testing
next reply other threads:[~2011-04-27 13:27 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-27 13:27 Stefan Hajnoczi [this message]
2011-04-27 13:27 ` [Qemu-devel] [PATCH 1/8] block: add bdrv_aio_stream Stefan Hajnoczi
2011-04-29 11:56 ` Kevin Wolf
2011-05-06 13:21 ` Stefan Hajnoczi
2011-05-06 13:36 ` Kevin Wolf
2011-05-06 15:47 ` Stefan Hajnoczi
2011-04-27 13:27 ` [Qemu-devel] [PATCH 2/8] qmp: Add QMP support for stream commands Stefan Hajnoczi
2011-04-29 12:09 ` Kevin Wolf
2011-05-06 13:23 ` Stefan Hajnoczi
2011-04-27 13:27 ` [Qemu-devel] [PATCH 3/8] qed: add support for Copy-on-Read Stefan Hajnoczi
2011-04-27 14:29 ` Paolo Bonzini
2011-04-29 12:14 ` Kevin Wolf
2011-05-06 13:24 ` Stefan Hajnoczi
2011-04-27 13:27 ` [Qemu-devel] [PATCH 4/8] qed: intelligent streaming implementation Stefan Hajnoczi
2011-04-27 13:27 ` [Qemu-devel] [PATCH 5/8] qed: detect zero writes and skip them when to an unalloc cluster Stefan Hajnoczi
2011-04-27 13:27 ` [Qemu-devel] [PATCH 6/8] blockdev: Allow image files to auto-enable streaming Stefan Hajnoczi
2011-04-29 12:20 ` Kevin Wolf
2011-04-27 13:27 ` [Qemu-devel] [PATCH 7/8] qed: Add QED_CF_STREAM flag " Stefan Hajnoczi
2011-04-27 13:27 ` [Qemu-devel] [PATCH 8/8] qed: Add -o stream=on image creation option Stefan Hajnoczi
2011-04-27 13:41 ` [Qemu-devel] [RFC PATCH 0/8] QED image streaming 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=1303910855-28999-1-git-send-email-stefanha@linux.vnet.ibm.com \
--to=stefanha@linux.vnet.ibm.com \
--cc=aliguori@us.ibm.com \
--cc=kwolf@redhat.com \
--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).