KVM Guests: Install VirtIO Drivers for Windows Guests

March 22nd, 2011 | Tags: , , , , ,

Windows guests on the KVM hypervisors can get a very large kick in the pants when it comes to performance if you install the drivers necessary to leverage the VirtIO bus.  So first here are the necessary download links so that you can download the drivers.

http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/virtio-win-1.1.16.iso

http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/

Inside of the ISO we will find four directories Balloon, NetKVM, vioserial, and viostor.  We are only concerned with viostor and NetKVM, for the storage and networking drivers.  Vioserial is a serial interface which essentially lifts the single serial device limitation within KVM, and Balloon is a balloon memory driver I personally do not find this necessary due to the efficacy of the Kernel Samepage Merging (KSM) which is essentially memory deduplication.

Now when you are going to install the guest you need to install it with the IDE interface disks and the e1000 or rtl8139 network card in order to use the devices.  Once the install is completed, you can switch the NIC to virtio, attach a secondary disk using the VirtIO interface instead of IDE, and mount the VirtIO driver iso image as your CDROM and then install the device drivers as the new hardware is detected.  Also I noticed that when I installed the XP Guest my video controller did not detect a driver under Windows XP Pro x86, however if I switched the Video Model to cirrus it worked fine and detected the device properly.  If you are using virt-install to create the VM you can use the –video=cirrus parameter.  Once you have your devices installed properly a quick peak at Device Manager inside of the guest should reveal the VirtIO devices.

You can see the devices in question the “Red Hat VirtIO SCSI controller” and the “Red Hat VirtIO Ethernet Adapter.”

 

  1. December 16th, 2011 at 13:19
    Quote | #1

    Good posts on KVM. Thank you.

    The method you describe here leaves the Windows with paravirtualized driver only “secondary disks.” As you mentioned in another post, trying to get the virtio drivers working with windoze on all disks, including the boot disk, requires loading the virtio drivers during install. The process is straightforward and simple but W2k8r2 64bit will not find any of the latest (http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/) viostor drivers “suitable” requiring aborting the installation. The non-virtio ide disk guest fires up no problems. Have you had any luck installing virtio on boot disk for w2k8r2 guests with kvm/virt-install?

  2. matthew.mattoon
    December 16th, 2011 at 14:24
    Quote | #2

    Hi Redii,

    In my environments I simply install the OS with an IDE system volume, then once the drivers are installed I switch the IDE interface to VirtIO. Then you have VirtIO on the boot and data drives.

    -matt

  3. matthew.mattoon
    December 16th, 2011 at 14:26
    Quote | #3

    Additionally I also use the newer version of the VirtIO drivers at http://alt.fedoraproject.org/pub/alt/virtio-win/15/images/bin/virtio-win-0.1-mm34.iso

    -matt

Comments are closed.