/etc/libvirt/qemu/vmname.xml を見て以下の部分に discard='unmap' 入れとけとのことだけど、
/sys/block/vda/queue/discard_max_bytes 見ても 0 のままなので上手く行ってない模様。
virtio を virtio-scsi に書き換えても駄目みたい。おかしいなぁ、controller 作らないと駄目かな?
<disk type='file' device='disk'>
<driver name='qemu' type='raw' discard='unmap'/>
<source file='/var/lib/libvirt/images/vdiskname.img'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</disk>
参考:
追記: 2015-04-19
やっぱり virtio-scsi にするのがポイントだった模様。
Ubuntu 14.04.2 LTS 上の virt-manager から「VirtIO Disk 1」→「詳細なオプション」→「ディスクバス」を「Virtio」から「SCSI」に変更すると、
「VirtIO Disk 1」が「SCSI Disk 1」となり、
/etc/libvirt/qemu/vmname.xml 上での接続も virtio-scsi になった。
また、起動後のデバイスも /dev/vda が /dev/sda になると共に、
/etc/libvirt/qemu/vmname.xml 上で disk driver に discard="unmap" を追加することにより
/sys/block/sda/queue/discard_max_bytes にも 0 でない値が表示されるようになった。
ただし、これ、Linux だとあまり苦労はないんだけど、Windows だとインストール時に追加でドライバーが要る他、インストール後にすると起動ディスクを見失って再起動出来なくなるので結構面倒臭い。
加えて 2015-04-19 現在、Windows 10 Technical Preview で使えるコンパイル済みの virtio-scsi 用 driver が見当たらない状況。
から辿れる
- Latest VirtIO drivers for Windows from Fedora / virtio-win-0.1-100.iso 2015-01-22 18:19 67M
に Windows 8 用のドライバは入っているのだが、少なくともこれは 10 TP に転用出来なかった。
追記: 2017-12-10
disk の bus が scsi じゃなくて virtio になってると、仮想マシン上では上記の virtio-scsi 経由ではなく pci 直付けのストレージデバイス(virtio)として見える。
しかし virtio は discard 非対応なんだそうで、2017-12-10 現在でも virtio-blk の todo に挙がってる状態。
bus を scsi にしといて virtio-scsi 経由で接続してやる必要があった。orz
参考: