ToDo/Block/old: Difference between revisions
Line 45: | Line 45: | ||
* Future improvement: move the option to the guest side (wce=on|off|none), host side can use cache=off|on|unsafe and deprecate none/directsync/writeback/writethrough | * Future improvement: move the option to the guest side (wce=on|off|none), host side can use cache=off|on|unsafe and deprecate none/directsync/writeback/writethrough | ||
====QCOW3 [Kevin]==== | |||
* Zero clusters for efficient sparse images and copy-on-read | |||
====Live block operations [Paolo]==== | ====Live block operations [Paolo]==== | ||
* Copy the contents of an image file while a guest is using it | * Copy the contents of an image file while a guest is using it |
Revision as of 15:36, 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]
- IDE, SCSI, virtio device can toggle write cache at runtime
- Idea: replace O_DSYNC with manual bdrv_flush calls after each write
- Minor speedups on qcow2 metadata updates too
- virtio automatically enables writethrough for old guests that cannot flush properly, even with cache=writeback (of course not with cache=unsafe)
- We can switch the default to cache=writeback!
- Future improvement: move the option to the guest side (wce=on|off|none), host side can use cache=off|on|unsafe and deprecate none/directsync/writeback/writethrough
QCOW3 [Kevin]
- Zero clusters for efficient sparse images and copy-on-read
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
- 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