i have few VMs running on top of spinning rust. recently i’ve upgraded one of them to not-yet-stable debian bookworm. upgrade would be pretty slow but.. i’ve edited the VM definition and asked KVM to allow host server to cache any IO operations. speedup was great, bullseye->bookworm upgrade finished in less than 5 minutes.
# stop the VM
# on the KVM host
virsh edit nameOfVM
# search for virtual disk definition and add
# cache='unsafe' as below:
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='unsafe' />
<source file='/mnt/vms/nameOfVM/vda.qcow2'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</disk>
virsh define /etc/libvirt/qemu/nameOfVM.xml
virsh start nameOfVM
# after the upgrade repeat above and remove cache='unsafe'
for more details – see Red Hat’s documentation.