If you’re not using Virtio drivers on your Windows VMs, you should be. It is actually really simple, especially now that an installer is available. In the past, you could only manually install the drivers which could be a bit daunting. Before we hop into that, let’s talk about Virtio and why you should care.
What is Virtio anyways?
It’s a virtualization standard that lets the guest know it’s virtual and that it needs to work with the hypervisor in order to provision resources. Typically, when you virtualize an operating system, such as Windows, it assumes it’s running on bare metal. You start performing network and disk operations with it and you notice that performance sucks. Well, this is why. When you install the Virtio drivers, you can use paravirtualized hardware.
As you would expect, Linux has Virtio builtin and most distros even include a qemu agent. Windows being Windows does not and therefore we need to provide these drivers.
Installing Virtio on a Proxmox Guest
This is actually really simple. First, download the latest stable ISO and upload it to a place where your Proxmox servers can access it.
Insert the ISO into your Windows VM’s virtual optical drive and then open Explorer. You’ll find a lot going on in there. Locate the win-guest-tools and run that. Accept the license (it’s GPLv2), and then install everything.
Accept the installation of all the drivers which is the default option. You may get some popups from Windows Security asking if you’d like to install these drivers. Click on Install. The drivers will be signed by Red Hat, Inc.
Once your drivers are installed, let’s get our VM ready for Virtio! Don’t forget to reboot – the instller will not prompt you.
Adjust your network device to VirtIO (paravirtualized). It’s usually the default NIC option when you create a VM anyways.
Don’t forget to enable the qemu guest agent! If you enable the guest agent, you’ll need to shut down your VM first for Proxmox to properly apply the change.
Important note: If you have a static IP set, you’ll have to reset it. Windows will see this as a whole new NIC being installed and it will lose the configuration.
And that’s it for the basic tweaks. Start up your VM and you should see an improvement.
In a simple test, I simply did a speed test. The first one with the emulated Intel E1000 and then the second with the VirtIO paravirtualized adapter.
Not too bad – a whole additional 70 Mbps helps a lot and makes the VM feel faster.