after more then 10 years of using VMWare Workstation (Starting with VMWare Workstation 5). I’m in the process of moving to KVM/libvirt, but I want to use qcow2 with trim support.
I’m using Fedora 25 with virt-manager to create my virtual machines. A lot of pages describe that very well like Chris Irwins. But I found another problem.
To support trim you need to make sure you have at least 2.1, but I want the latest version 2.7. This it the default, so normally you don’t need to change this with virsh edit DOMAIN:
<type arch='x86_64' machine='pc-i440fx-2.7'>hvm</type>
One parameter that you need to change manually (and that can not be done with virt-manager) tells qemu that the discard/trim should be forwarded to the underlying image.It looks like this:
<driver name='qemu' type='qcow2' discard='unmap'/>
All of this can be found on the Internet. A problem that I faced with RHEL7 and others is that virt-manager creates the disc-controller as a antique LSI/NCR controller and that RHEL7 does not support this. To fix this you have to this model to the scsi controller:
<controller type='scsi' index='0' model='virtio-scsi'>
With this RHEL7, Windows 10 and FreeBSD 11 Machines can be configured to run with trimming there images them self.
To migrate you Windows 10 from “libvirt” auf “libvirt-scsi” is quite easy. Add a new libvirt-scsi Disc to an existing Installation. Install the driver for libvirt-scsi, reboot. Now you system supports this driver. After the this reboot, shutdown the machines again and change the disc type of all discs to libvirt-scsi like above and reboot again. Your system should start up with it’s libvirt-scsi enabled disc.
To run the trim command to cleanup unused space, run this in an Admin PowerShell:
Optimize-Volume -DriveLetter c -ReTrim -Verbose
Rinse and repeat for all disc letters.
As always no warranty that this does not break you system.