Chapter 10. KVM Paravirtualized (virtio) Drivers

Paravirtualized drivers enhance the performance of guests, decreasing guest I/O latency and increasing throughput to near bare-metal levels. It is recommended to use the paravirtualized drivers for fully virtualized guests running I/O heavy tasks and applications.
Virtio drivers are KVM's paravirtualized device drivers, available for Windows guest virtual machines running on KVM hosts. These drivers are included in the virtio package. The virtio package supports block (storage) devices and network interface controllers.
The KVM virtio drivers are automatically loaded and installed on the following:
  • Red Hat Enterprise Linux 4.8 and newer
  • Red Hat Enterprise Linux 5.3 and newer
  • Red Hat Enterprise Linux 6 and newer
  • Red Hat Enterprise Linux 7 and newer
  • Some versions of Linux based on the 2.6.27 kernel or newer kernel versions.
Versions of Red Hat Enterprise Linux in the list above detect and install the drivers, additional installation steps are not required.
In Red Hat Enterprise Linux 3 (3.9 and above), manual installation is required.

Note

PCI devices are limited by the virtualized system architecture. Refer to Section 4.1, “KVM Restrictions” for additional limitations when using assigned devices.
Using KVM virtio drivers, the following Microsoft Windows versions are expected to run similarly to bare-metal-based systems.
  • Windows Server 2003 (32-bit and 64-bit versions)
  • Windows Server 2008 (32-bit and 64-bit versions)
  • Windows Server 2008 R2 (64-bit only)
  • Windows 7 (32-bit and 64-bit versions)
  • Windows Server 2012 (64-bit only)
  • Windows Server 2012 R2 (64-bit only)
  • Windows 8 (32-bit and 64-bit versions)
  • Windows 8.1 (32-bit and 64-bit versions)

10.1. Installing the KVM Windows virtio Drivers

This section covers the installation process for the KVM Windows virtio drivers. The KVM virtio drivers can be loaded during the Windows installation or installed after the guest is installed.
You can install the virtio drivers on a guest virtual machine using one of the following methods:
  • hosting the installation files on a network accessible to the virtual machine
  • using a virtualized CD-ROM device of the driver installation disk .iso file
  • using a USB drive, by mounting the same (provided) .ISO file that you would use for the CD-ROM
  • using a virtualized floppy device to install the drivers during boot time (required and recommended only for XP/2003)
This guide describes installation from the paravirtualized installer disk as a virtualized CD-ROM device.
  1. Download the drivers

    The virtio-win package contains the virtio block and network drivers for all supported Windows guest virtual machines.
    Download and install the virtio-win package on the host with the yum command.
     # yum install virtio-win
    The list of virtio-win packages that are supported on Windows operating systems, and the current certified package version, can be found at the following URL: windowsservercatalog.com.
    Note that the Red Hat Enterprise Virtualization Hypervisor and Red Hat Enterprise Linux are created on the same code base so the drivers for the same version (for example, Red Hat Enterprise Virtualization Hypervisor 3.3 and Red Hat Enterprise Linux 6.5) are supported for both environments.
    The virtio-win package installs a CD-ROM image, virtio-win.iso, in the /usr/share/virtio-win/ directory.
  2. Install the virtio drivers

    When booting a Windows guest that uses virtio-win devices, the relevant virtio-win device drivers must already be installed on this guest. The virtio-win drivers are not provided as inbox drivers in Microsoft's Windows installation kit, so installation of a Windows guest on a virtio-win storage device (viostor/virtio-scsi) requires that you provide the appropriate driver during the installation, either directly from the virtio-win.iso or from the supplied Virtual Floppy image virtio-win<version>.vfd.