ToDo/Block/old: Difference between revisions

From QEMU
(Created page with '=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…')
 
Line 1: Line 1:
=Material for next QEMU release=
=Material for next QEMU release=


Coroutines in the block layer [Kevin]
====Coroutines in the block layer [Kevin]====
* Programming model to simplify block drivers without blocking QEMU threads
* Programming model to simplify block drivers without blocking QEMU threads


Generic copy-on-read [Stefan]
====Generic copy-on-read [Stefan]====
* Populate image file to avoid fetching same block from backing file
* Populate image file to avoid fetching same block from backing file again later
again later


Generic image streaming [Stefan]
====Generic image streaming [Stefan]====
* Make block_stream commands available for all image formats that
* Make block_stream commands available for all image formats that support backing files
support backing files


Live block copy
====Live block copy====
* 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
* Mostly a libvirt feature based on QEMU's blockdev-snapshot-sync and block_stream
* Mostly a libvirt feature based on QEMU's blockdev-snapshot-sync and block_stream


In-place qcow2 <-> qed conversion [Devin, GSoC 2011]:
====In-place qcow2 <-> qed conversion [Devin, GSoC 2011]:====
* Fast conversion between qcow2 and qed image formats without copy all data
* Fast conversion between qcow2 and qed image formats without copy all data
* Patches currently being reviewed and merged
* Patches currently being reviewed and merged


VMDK enhancements [Fam, GSoC 2011]
====VMDK enhancements [Fam, GSoC 2011]====
* Implement latest VMDK specs to support modern image files
* Implement latest VMDK specs to support modern image files
* Patches currently being reviewed and merged
* Patches currently being reviewed and merged


Block I/O limits [Zhi Yong]
====Block I/O limits [Zhi Yong]====
* Resource control for guest I/O bandwidth/iops consumption
* Resource control for guest I/O bandwidth/iops consumption


Runtime WCE toggling [?]
====Runtime WCE toggling [?]====
* wce=none|on|off and run-time guest toggling support
* wce=none|on|off and run-time guest toggling support
* Prerequisite to switching away from cache=writethrough by default
* 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====
* Handle snapshots
* Support shrinking
 
====qed online resize====
* Support shrinking


=Future changes=
=Future changes=

Revision as of 13:11, 22 August 2011

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

  • Handle snapshots
  • Support shrinking

qed online resize

  • 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

* Handle snapshots
* Support shrinking

qed online resize

* Support shrinking