ToDo/Block/old: Difference between revisions
No edit summary |
|||
Line 44: | Line 44: | ||
* Idea: replace O_DSYNC with manual bdrv_flush calls after each write | * Idea: replace O_DSYNC with manual bdrv_flush calls after each write | ||
** Possible to get some speedups on qcow2 metadata updates too (certainly with respect to O_SYNC; not sure how much with O_DSYNC) | ** Possible to get some speedups on qcow2 metadata updates too (certainly with respect to O_SYNC; not sure how much with O_DSYNC) | ||
====Live block operations [Paolo]==== | ====Live block operations [Paolo]==== | ||
Line 52: | Line 50: | ||
* Improved error handling, similar to -drive rerror/werror | * Improved error handling, similar to -drive rerror/werror | ||
** Errors can pause or cancel the job (with possibly separate handling for ENOSPC) | ** Errors can pause or cancel the job (with possibly separate handling for ENOSPC) | ||
=Material for next QEMU release= | |||
====In-place qcow2 <-> qed conversion [Devin, GSoC 2011]:==== | ====In-place qcow2 <-> qed conversion [Devin, GSoC 2011]:==== |
Revision as of 15:32, 10 July 2012
QEMU 1.0
Coroutines in the block layer [Kevin]
- Programming model to simplify block drivers without blocking QEMU threads
- All synchronous drivers converted to asynchronous
VMDK enhancements [Fam, GSoC 2011]
- Implement latest VMDK specs to support modern image files
- Patches currently being reviewed and merged
iSCSI block device integration
- Enable userspace-only remote access to disk images
QEMU 1.1
Generic copy-on-read [Stefan]
- Populate image file to avoid fetching same block from backing file again later
Generic image streaming [Stefan]
- Make block_stream commands available for all image formats that support backing files
Block I/O limits [Zhi Yong]
- Resource control for guest I/O bandwidth/iops consumption
- Usable with virtio on QEMU 1.0
snapshot_blkdev and Backup API [Jeff]
- Support for consistent disk snapshots
NBD asynchronous I/O [Paolo]
- Improved performance
virtio-scsi [Paolo/Stefan]
- The next step after virtio-blk, full SCSI command set and appears as SCSI HBA in guest
- Real /dev/sda devices in guest
- No more modifying guest drivers to add simple storage protocol features
QEMU 1.2
Runtime WCE toggling [Paolo]
- wce=none|on|off and run-time guest toggling support
- Is wce=... an option for guest devices or block devices?
- Easy for IDE, little harder for virtio, somewhat harder for SCSI (MODE SELECT)
- Prerequisite to switching away from cache=writethrough by default
- Idea: replace O_DSYNC with manual bdrv_flush calls after each write
- Possible to get some speedups on qcow2 metadata updates too (certainly with respect to O_SYNC; not sure how much with O_DSYNC)
Live block operations [Paolo]
- Copy the contents of an image file while a guest is using it
- Various implementations: active/synchronous (guest sees I/O completion when data reaches both source and destination), passive/asynchronous (guest sees I/O completion when data reaches source only)
- Improved error handling, similar to -drive rerror/werror
- Errors can pause or cancel the job (with possibly separate handling for ENOSPC)
Material for next QEMU release
In-place qcow2 <-> qed conversion [Devin, GSoC 2011]:
- Fast conversion between qcow2 and qed image formats without copy all data
- Patches currently being reviewed and merged
Block migration [Juan?]
- Block migration working with a separate migration thread
- Perhaps just drop it.
IDE CD-ROM passthrough [Paolo/Markus?]
- Track host tray state
Unified request object
- Unify BdrvTrackedRequest, RwCo etc. in a single struct.
- Perhaps expose make_request to device models and do_request to drivers to allow specifying more flags (FUA, write zeros,...)
Future changes
Cow overlay [Dong Xu "Robert"]
- Allow live block copy and image streaming to raw destination files
-blockdev [Markus?]
- Explicit user control over block device trees
- Perhaps base this on QEMU Object Model right away
QCOW3 [Kevin]
- Extend qcow2 format to address current and future image format challenges
- Feature bits for fine-grained file format extensions
- Sub-clusters to reduce metadata size and fragmentation
- Zero clusters for efficient sparse images and copy-on-read
- luks-like key scheme that allows changing passphrase without re-encrypting data
NBD server for block device migration [Stefan?]
- Enable remote access to live disk images for external backup software
Avoid blocking QEMU threads
- Today loss of NFS connectivity can hang guests
- It's critical never to block the vcpu thread
- The iothread should also not block while the qemu mutex is held
- All blocking operations must be done asynchronously or in a worker thread
tcm_vhost [Zhi Yong]
- Directly connect virtio-scsi with Linux in-kernel SCSI target
- Pass-through of host SCSI devices
qcow2 online resize [Zhi Yong]
- Handle snapshots
- Support shrinking
qed online resize [Zhi Yong]
- Support shrinking