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

Reply via email to