qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC] qed: Add QEMU Enhanced Disk format


From: Avi Kivity
Subject: Re: [Qemu-devel] [RFC] qed: Add QEMU Enhanced Disk format
Date: Tue, 07 Sep 2010 16:58:37 +0300
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.8) Gecko/20100806 Fedora/3.1.2-1.fc13 Lightning/1.0b2pre Thunderbird/3.1.2

 On 09/06/2010 01:04 PM, Stefan Hajnoczi wrote:
QEMU Enhanced Disk format is a disk image format that forgoes features
found in qcow2 in favor of better levels of performance and data
integrity.  Due to its simpler on-disk layout, it is possible to safely
perform metadata updates more efficiently.

Installations, suspend-to-disk, and other allocation-heavy I/O workloads
will see increased performance due to fewer I/Os and syncs.  Workloads
that do not cause new clusters to be allocated will perform similar to
raw images due to in-memory metadata caching.

The format supports sparse disk images.  It does not rely on the host
filesystem holes feature, making it a good choice for sparse disk images
that need to be transferred over channels where holes are not supported.

Backing files are supported so only deltas against a base image can be
stored.

The file format is extensible so that additional features can be added
later with graceful compatibility handling.

Internal snapshots are not supported.  This eliminates the need for
additional metadata to track copy-on-write clusters.

Compression and encryption are not supported.  They add complexity and
can be implemented at other layers in the stack (i.e. inside the guest
or on the host).

The format is currently functional with the following features missing:
  * Resizing the disk image.  The capability has been designed in but the
    code has not been written yet.
  * Resetting the image after backing file commit completes.
  * Changing the backing filename.
  * Consistency check (fsck).  This is simple due to the on-disk layout.

Signed-off-by: Anthony Liguori<address@hidden>
Signed-off-by: Stefan Hajnoczi<address@hidden>
---
This code is also available from git (for development and testing the tracing
and blkverify features are pulled in, whereas this single squashed patch
applies to mainline qemu.git):

http://repo.or.cz/w/qemu/stefanha.git/shortlog/refs/heads/qed

Numbers for RHEL6 install, cache=none disk image on ext3.  This is an
interactive install on my laptop, so not a proper benchmark but I want to show
there is real difference today:
  * raw: 4m4s
  * qed: 4m21s (107%)
  * qcow2: 4m46s (117%)

  Makefile.objs        |    1 +
  block/qcow2.c        |   22 -
  block/qed-cluster.c  |  136 +++++++
  block/qed-gencb.c    |   32 ++
  block/qed-l2-cache.c |  131 ++++++
  block/qed-table.c    |  242 +++++++++++
  block/qed.c          | 1103 ++++++++++++++++++++++++++++++++++++++++++++++++++
  block/qed.h          |  212 ++++++++++

docs/qed.txt ++++++++++++++++++++++++++++++++++++++++++++

?



--
error compiling committee.c: too many arguments to function




reply via email to

[Prev in Thread] Current Thread [Next in Thread]