Jump to content

Discard=Unmap on Virtio Disks

Featured Replies

Posted

I ran across an article whose author claimed that on recent versions of qemu,  discard=unmap was functional on virtio disks.  So I did some testing.

 

I have not run all permutations, but have tested:

  Unraid 6.9.2

  UEFI and Seabios VMs

  Q35-5.1 and i440fx-5.1 VMs

  Windows 10 and Windows 11 with the latest virtio drivers, virtio-win-0.1.196.iso

  Ubuntu 21.4

  raw and qcow2 vdisks

  vdisks on XFS and BTRFS disks

  vdisks with and without the copy-on-write attribute set

 

In all cases, the virtio disk was functionally equivalent to a virtio-scsi disk.  On file deletion, windows unmapped blocks immediately.  Linux unmapped blocks after running fstrim.

 

https://chrisirwin.ca/posts/discard-with-kvm-2020

Edited by aim60

Thanks for this!

  • 3 months later...
  • 1 month later...

Thank you for this nugget!

  • 2 years later...

Hello,

 

Doesn't work for me :(

 

Quote

<emulator>/usr/local/sbin/qemu</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback' discard='unmap'/>
      <source file='/mnt/user/domains/Gaming/vdisk1.img'/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
    </disk>

image.png.305354cd1c2cc0977769a4167211f2a3.png
image.png.d1a6a784bb73108a4b4bfaef40b8d480.png

 

Can you help me ?

Edited by thymon

Did you run the Windows Defrag and Optimize drives after making the change?

Of course... :(

If you have the space copy the vdisk elsewhere, then copy back using cp --sparse=always, that will confirm if the vdisk growing is the problem. 

Ok, I'll try that.
I've free space in the Array.

 

thx

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...