Paravirtualized Network Drivers for Windows

From Proxmox VE
Jump to navigation Jump to search

Introduction

In order to improve network performance, special paravirtualized network drivers can be installed in Windows guests: to use them, you have to obtain those drivers and then install them on the VM guest os.

See Windows_VirtIO_Drivers to get info about

  • downloading VirtIO drivers
  • changelog and guest OS compatibility
  • other kind of guest devices supported

Download

Download the latest drivers (ISO) as suggested by the page Windows_VirtIO_Drivers to your desktop.

Then upload the ISO to your Proxmox VE server:

  • logon to the Proxmox VE web interface
  • select a ISO-enabled storage (see Storage_Model#Storage_type_Content)
  • switch to "content" tab
  • just use the "upload" button on the menu bar.

Installation

Choose the right driver

In the iso file provided by Fedora Project drivers for different Windows versions are available, in several folders.

The folder names can be a bit confusing, since they refer to the Microsoft legacy naming (i.e. lh=longhorn, that is Vista): you can refer to the schema below (showing also block/baloon drivers folder names):

OS Numeric version dir for Storage / Balloon dir for Network
W2008 R2 / Windows 7 6.1 Win7 (32/64) Win7 (32/64)
W2008 / Vista 6.0 Wlh (32/64) Vista (32/64)
W2003 5.2 Wnet (32/64) XP (32/64)
XP 5.1 - 32bit, 5.2 - 64bit WXp (32 only) XP (32/64)

NB:

  • Windows XP drivers are known to work also on Windows 2003 Server
  • Win7 drivers can be used for Windows 2008r2

Prepare KVM guest on Proxmox VE

Network Card: virtio
  • Shutdown your KVM Virtual Machine and change the used Network Card to "virtio".
  • Select the previously uploaded ISO image as CDROM
  • Start your Virtual Machine

Installation of paravirtualized driver within Windows

The Windows device manager should now detect a new network device. Just point the driver wizard to the CD-ROM containing the drivers. The drivers are not signed, choose install anyway and you are done.

If you get any conflicting IP errors or just want to clean up the old card, enable the devmgr_show_nonpresent_devices option on the server.

My Computer -> Properties -> Advanced -> Env Variables –> System Var -> New

 Name: devmgr_show_nonpresent_devices
 Value:	1

OK/Close all windows.

My Computer -> Properties -> Hardware -> Dev Mgr -> View -> Show hidden dev

Now locate & remove old NIC

Performance Improvements

The KVM Project has established a 'best practice' with regard to acheiving optimal performance in Windows guests using the virtio driver.

Permanent changes to the Windows registry are required.

The procedure is published here: http://www.linux-kvm.org/page/WindowsGuestDrivers/kvmnet/registry.

Alternative: e1000

Although not paravirtualized, Windows is known to work well with the emulated Intel e1000 network card.

Just remember that

  • the built in e1000 drivers in Win7/Win2008 are fine but
  • the built in e1000 drivers in WinXP/Win2003 are not working!
    you need to install the usual drivers from Intel (see Intel® Ethernet Connections CD (176 MB) or Intel® Drivers Setup File (20 MB)).
    A walkthrough on installing e1000 drivers in a Windows XP KVM is available here. But the link for drivers download provided in that walkthrough was broken, use above Intel Drivers File Setup instead.

See also