The KVM project, maintained by Qumranet, recently released paravirtual network drivers for Windows XP/2k guest machines. I thought it would be useful to document how to setup these drivers on a windows guest machine. These drivers will greatly increase the network performance and throughput on the guest machine. Network and Block devices are the main bottlenecks in virtual machine performance so this release will be received warmly by the community. At the moment, there are no plans by Qumranet to release paravirtual block drivers for windows guests. Although these drivers are designed for windows 2000 and XP, they should also work for windows 2003 server. So let's begin:
Before you do anything, you will need to first download the windows guest drivers on the running guest machine so that the machine will have access to the driver software when it's running on the virtio hardware the first time. The reason is because the guest machine will not have any network connectivity when running in this mode for the first time since no drivers would have been installed. The drivers can be downloaded as either as a zipped archive or an ISO format for easy installation. The latest release of the drivers can be downloaded at the official download site here. Extract the files into a known location on your windows guest.
Next, you need to run the guest on the new "virtio network card" by restarting the guest machine with the new virtual hardware by starting qemu/kvm using the -net nic,model=virtio option. An example is shown here:
qemu-system-x86_64 -hda windowsxp.img -net nic,model=virtio....
To really get the maximum benefit of the paravirtual network drivers, use the -net tap option as opposed to the -net user option.
When the windows guest is rebooted on new virtio nic the first time using the command above, the guest machine will automatically detect that it is running with new "hardware" and will prompt for installation of drivers. Do not connect to windows update to specify location of driver.
Choose the specified location where you downloaded the drivers. In my case, I'm running a windows xp guest and selected that folder.
The driver installation will now begin. Choose "Continue Anyway" at the microsoft hardware compatibility prompt.
What I found nice about the paravirtual network driver is that it was immediately functional after installation. There was no need to reset the interface to pick up dhcp settings or anything of the sort. I have been running my windows xp guest machine with these drivers and haven't had any issues so far. To verify that you are using the paravirtual network drivers in your windows guest you should see the Qumranet driver in the properties of your network interface as shown below:
I will post another article in the near future on using virtio block and network drivers with Linux guest machines on KVM host. Enjoy your new paravirtual network drivers!
The instructions for linux can be found here.
See the following post on getting the latest windows guest virtio drivers