Hi Paolo!
On Thu, Aug 8, 2013 at 10:00 PM, Paolo Bonzini <pbonz...@redhat.com> wrote: > 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 > > btw I tried "discard=on" as you described (with if=virtio) and received an error: [root@localhost ~]# fstrim -v / fstrim: /: FITRIM ioctl failed: Operation not supported In my case if=virtio means virtio-blk. If I use virtio-scsi or ibmvscsi, fstrim works just fine but failing virtio-blk bothers me a bit as we might have a bug in ppc64, do not we? (we == ppc64 folks, of course :) ) > 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<https://people.gnome.org/~markmc/qcow-image-format.html> >> >> Regards, >> >> > > -- Alexey