[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,