Skip to content
  • Stefan Hajnoczi's avatar
    qcow2: implement lazy refcounts · bfe8043e
    Stefan Hajnoczi authored
    
    
    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: default avatarStefan Hajnoczi <stefanha@linux.vnet.ibm.com>
    Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
    bfe8043e