qemu/block
Stefan Hajnoczi bfe8043e92 qcow2: implement lazy refcounts
Lazy refcounts is a performance optimization for qcow2 that postpones
refcount metadata updates and instead marks the image dirty.  In the
case of crash or power failure the image will be left in a dirty state
and repaired next time it is opened.

Reducing metadata I/O is important for cache=writethrough and
cache=directsync because these modes guarantee that data is on disk
after each write (hence we cannot take advantage of caching updates in
RAM).  Refcount metadata is not needed for guest->file block address
translation and therefore does not need to be on-disk at the time of
write completion - this is the motivation behind the lazy refcount
optimization.

The lazy refcount optimization must be enabled at image creation time:

  qemu-img create -f qcow2 -o compat=1.1,lazy_refcounts=on a.qcow2 10G
  qemu-system-x86_64 -drive if=virtio,file=a.qcow2,cache=writethrough

Update qemu-iotests 031 and 036 since the extension header size changes
when we add feature bit table entries.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2012-08-06 22:39:14 +02:00
..
blkdebug.c
blkverify.c
bochs.c
cloop.c
cow.c
curl.c
dmg.c
iscsi.c
Makefile.objs
nbd.c
parallels.c
qcow2-cache.c
qcow2-cluster.c qcow2: implement lazy refcounts 2012-08-06 22:39:14 +02:00
qcow2-refcount.c
qcow2-snapshot.c
qcow2.c qcow2: implement lazy refcounts 2012-08-06 22:39:14 +02:00
qcow2.h qcow2: implement lazy refcounts 2012-08-06 22:39:14 +02:00
qcow.c
qed-check.c
qed-cluster.c
qed-gencb.c
qed-l2-cache.c
qed-table.c
qed.c
qed.h
raw-posix-aio.h
raw-posix.c
raw-win32.c
raw.c
rbd.c
sheepdog.c
stream.c
vdi.c
vmdk.c
vpc.c
vvfat.c