Skip to content
  • Chunyan Liu's avatar
    qemu-img create: add 'nocow' option · 4ab15590
    Chunyan Liu authored
    
    
    Add 'nocow' option so that users could have a chance to set NOCOW flag to
    newly created files. It's useful on btrfs file system to enhance performance.
    
    Btrfs has low performance when hosting VM images, even more when the guest
    in those VM are also using btrfs as file system. One way to mitigate this bad
    performance is to turn off COW attributes on VM files. Generally, there are
    two ways to turn off NOCOW on btrfs: a) by mounting fs with nodatacow, then
    all newly created files will be NOCOW. b) per file. Add the NOCOW file
    attribute. It could only be done to empty or new files.
    
    This patch tries the second way, according to the option, it could add NOCOW
    per file.
    
    For most block drivers, since the create file step is in raw-posix.c, so we
    can do setting NOCOW flag ioctl in raw-posix.c only.
    
    But there are some exceptions, like block/vpc.c and block/vdi.c, they are
    creating file by calling qemu_open directly. For them, do the same setting
    NOCOW flag ioctl work in them separately.
    
    [Fixed up 082.out due to the new 'nocow' creation option
    --Stefan]
    
    Signed-off-by: default avatarChunyan Liu <cyliu@suse.com>
    Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
    4ab15590