qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] Using TRIM to shrink qcow2 images


From: Paolo Bonzini
Subject: Re: [Qemu-devel] Using TRIM to shrink qcow2 images
Date: Thu, 08 Aug 2013 14:00:15 +0200
User-agent: Mozilla/5.0 (X11; Linux ppc; rv:17.0) Gecko/20130704 Icedove/17.0.7

On 08/08/2013 12:34 PM, Ralf Ramsauer wrote:
Hi,

QCOW2 uses a similar idea like file holes (sparse files) on filesystems [1].
RAW Images also may use file holes.

If qemu would support TRIM, then the guest could easily discard and zero
all unused blocks.

QEMU supports trim. 1.5 supports it with raw images only, 1.6 will add qcow2 support. Because it has the potential to cause fragmentation, it needs to be enabled explicitly. Just add "discard=on" to the -drive option:

    qemu-system-x86_64 -enable-kvm -m 2048 ...\
       -drive if=virtio,discard=on,file=$HOME/foo.qcow2

It's probably always a good idea if the image is a block device on an SSD, but not necessarily on an image that is backed (for example) by a file or by a thin-provisioned logical volume.

The host system could detect all unused blocks in a (e.g.) qcow2 image
and shrink it down to its minimum size.

This depends on the host support for discard (on block device-backed qcow2 images) or hole punching (for file-backed qcow2 images). For files, running fstrim in the guest will shrink down the on-disk footprint of a qcow2 image.

Paolo

Did anyone already think about that?

[1] : https://people.gnome.org/~markmc/qcow-image-format.html

Regards,





reply via email to

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