ToDo/Block/old

From QEMU

Material for next QEMU release

Coroutines in the block layer [Kevin]

  • Programming model to simplify block drivers without blocking QEMU threads

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

Live block copy

  • Copy the contents of an image file while a guest is using it
  • Mostly a libvirt feature based on QEMU's blockdev-snapshot-sync and block_stream

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

VMDK enhancements [Fam, GSoC 2011]

  • Implement latest VMDK specs to support modern image files
  • Patches currently being reviewed and merged

Block I/O limits [Zhi Yong]

  • Resource control for guest I/O bandwidth/iops consumption

Runtime WCE toggling [?]

  • wce=none|on|off and run-time guest toggling support
  • Prerequisite to switching away from cache=writethrough by default

Future changes

Cow overlay [Dong Xu "Robert"]

  • Allow live block copy and image streaming to raw destination files

snapshot_blkdev and Backup API [Jes, Jagane]

  • Support for consistent disk snapshots and dirty block tracking
  • Allow backup software to integrate with QEMU

-blockdev [Markus?]

  • Explicit user control over block device trees
  • Perhaps base this on QEMU Object Model right away

QCOW3

  • 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

iSCSI/NBD/Remote block device integration

  • Enable remote access to disk images for live migration and other tasks
  • Still unclear what will be done in this area

Pre/post block copy based on image streaming

  • Working block migration that works with a separate migration thread

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

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

tcm_vhost [Stefan]

  • 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

Future changes

Cow overlay [Dong Xu "Robert"]

* Allow live block copy and image streaming to raw destination files

snapshot_blkdev and Backup API [Jes, Jagane]

* Support for consistent disk snapshots and dirty block tracking
* Allow backup software to integrate with QEMU

-blockdev [Markus?]

* Explicit user control over block device trees
* Perhaps base this on QEMU Object Model right away

QCOW3

* 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

iSCSI/NBD/Remote block device integration

* Enable remote access to disk images for live migration and other tasks
* Still unclear what will be done in this area

Pre/post block copy based on image streaming

* Working block migration that works with a separate migration thread

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

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

tcm_vhost [Stefan]

* 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