Difference between revisions of "Windows 10 guest best practices"

From Proxmox VE
Jump to: navigation, search
(VirtIO drivers: - updated link to latest-virtio)
(overhaul to reflect changes in PVE 6 and current virtio isos)
Line 1: Line 1:
 +
 
==Introduction==
 
==Introduction==
  
This is a set of best practices to follow when installing a Windows 10 guest on a Proxmox VE server 4.x.  Right now it's a work in progress.
+
This is a set of best practices to follow when installing a Windows 10 guest on a Proxmox VE server 6.x.  Right now it's a work in progress.
  
 
==Install==
 
==Install==
Line 8: Line 9:
 
To obtain a good level of performance, we will install the [[Windows VirtIO Drivers]] during the Windows installation.
 
To obtain a good level of performance, we will install the [[Windows VirtIO Drivers]] during the Windows installation.
  
* Create a new VM, select "Microsoft Windows 8/2012" continue and mount your Windows 10 ISO in the CDROM drive
+
* Create a new VM, select "Microsoft Windows 10/2016/2019" as Guest OS and enable the "Qemu Agent" in the System tab. Continue and mount your Windows 10 ISO in the CDROM drive
* For your virtual hard disk select "VirtIO" as bus and "Write back" as cache option for best performance (the No cache default is safer, but slower)
+
* For your virtual hard disk select "SCSI" as bus with "VirtIO SCSI" as controller and "Write back" as cache option for best performance (the No cache default is safer, but slower)
 
* Configure your memory settings as needed, continue and set "VirtIO (paravirtualized)" as network device, finish your VM creation.
 
* Configure your memory settings as needed, continue and set "VirtIO (paravirtualized)" as network device, finish your VM creation.
* For the VirtIO drivers, upload the driver ISO (use the stable VirtIO ISO, [https://fedoraproject.org/wiki/Windows_Virtio_Drivers#Direct_download get it from here]) to your storage, create a new CDROM drive (use "Add -> CD/DVD drive" in the hardware tab), and load the Virtio Drivers ISO in the new virtual CDROM drive
+
* For the VirtIO drivers, upload the driver ISO (use the stable VirtIO ISO, [https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/index.html#virtio-win-direct-downloads get it from here]) to your storage, create a new CDROM drive (use "Add -> CD/DVD drive" in the hardware tab) with Bus "IDE" and number 3. Load the Virtio Drivers ISO in the new virtual CDROM drive.
 
* Now your ready to start the VM, just follow the Windows installer.
 
* Now your ready to start the VM, just follow the Windows installer.
  
 
===Launch Windows install===
 
===Launch Windows install===
* After starting your VM launch the console
+
* After starting your VM launch the noVNC console
 
* Follow the installer steps until you reach the installation type selection where you need to select "Custom (advanced)"
 
* Follow the installer steps until you reach the installation type selection where you need to select "Custom (advanced)"
* Now click "Load driver" to install the VirtIO drivers for hard disk and the network. (successfully tested with "virtio-win-0.1.118.iso")
+
* Now click "Load driver" to install the VirtIO drivers for hard disk and the network.
** hard disk: Browse to the CD drive where you mounted the VirtIO driver and select folder "viostor\w8.1\amd64" and confirm. Select the  "Red Hat VirtIO SCSI controller" and click next to install it. Now you should see your drive.
+
** Hard disk: Browse to the CD drive where you mounted the VirtIO driver and select folder "vioscsi\w10\amd64" and confirm. Select the  "Red Hat VirtIO SCSI pass-through controller" and click next to install it. Now you should see your drive.
** Network: Repeat the steps from above (click again "Load driver", etc.) and select the folder "NetKVM\w8.1\amd64", confirm it and select "Redhat VirtIO Ethernet Adapter" and click next.
+
** Network: Repeat the steps from above (click again "Load driver", etc.) and select the folder "NetKVM\w10\amd64", confirm it and select "Redhat VirtIO Ethernet Adapter" and click next.
** Memory Ballooning: Again, repeat the steps but this time select the "Balloon\w8.1\amd64" folder, then the "VirtIO Balloon Driver" and install it by clicking next. With these three drivers you should be good covered to run a fast virtualized Windows 10 system.
+
** Memory Ballooning: Again, repeat the steps but this time select the "Balloon\w10\amd64" folder, then the "VirtIO Balloon Driver" and install it by clicking next. With these three drivers you should be good covered to run a fast virtualized Windows 10 system.
 
* Choose the drive and continue the Windows installer steps.
 
* Choose the drive and continue the Windows installer steps.
  
==Install additional VirtIO drivers on running System==
+
'''HINT:''' There is a [https://www.proxmox.com/en/training/video-tutorials/item/install-windows-2016-server-on-proxmox-ve video showing the process] for a Windows Server 2016 installation which is the same as for Windows 10.
:''See also: [[Paravirtualized Block Drivers for Windows]]''
+
 
 +
==Install Guest Agent and Services==
 +
 
 +
===Guest Agent===
 +
 
 +
If you enabled the Qemu Agent option for the VM the mouse pointer will probably be off after the first boot.
 +
 
 +
To remedy this install the "Qemu Guest Agent". The installer is located on the driver CD under guest-agent\qemu-ga-x86_64.msi. After the installation restart the VM.
  
[[File:Install virtio driver.png|200px|thumb|right|VirtIO Ethernet Installation]]
+
===Drivers and Services===
 +
[[File:Win10 virtio guest tool installer.png|200px|thumb|right|VirtIO guest tools installer]]
 +
The easiest way to install missing drivers and services is to use the provided MSI installer. It is available on the driver CD since version "[https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/ virtio-win-0.1.173-2]".
  
If you miss some VirtIO drivers, you may install them as follows on a running system.
+
Run the "virtio-win-gt-x64.msi" file located directly on the CD. If you do not plan to use [[SPICE]] you can deselect the "Qxl" and "Spice" features. Restart the VM after the installer is done.
  
To do so, start the file explorer, select the CDROM drive with the VirtIO iso image mounted and browse to the folder folder of the desired component. Some often needed, using the [https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso stable VirtIO iso], are:
+
After all this the RAM usage and IP configuration should be shown correctly in the summary page of the VM.
* Ethernet Adapter: NetKVM\w8.1\amd64 here right-click the setup information file "netkvm" and select install.
 
* Virtual Memory Balloon Driver: Balloon\w8.1\amd64 here right-click the setup information file "balloon" and select install.
 
* Hard disk: viostor\w8.1\amd64 here right-click the setup information file "viostor" and select install.
 
After the installation process the device should work as expected.
 
  
 
For more information and configuration about ballooning, see [[Dynamic Memory Management]]
 
For more information and configuration about ballooning, see [[Dynamic Memory Management]]
 +
 +
===Check for missing drivers===
 +
:''See also: [[Paravirtualized Block Drivers for Windows]]''
 +
[[File:Win10 unknown dev.png|200px|thumb|right|Unknown device in device manager]]
 +
[[File:Win10 update driver cd selection.png|200px|thumb|right|Make sure to include subfolders]]
 +
Go to the Device Manager to see if there are any drivers missing.
 +
For any unknown device:
 +
* Right click an select "Update driver".
 +
* Select "Browse my computer for driver software".
 +
* Select the Driver CD. Make sure that "Include subfolders" is checked.
 +
* Once a driver has been found you might be prompted with a security warning asking if you "Would like to install this device software". Click "Install".
  
 
==Further information==
 
==Further information==

Revision as of 16:21, 5 November 2019

Introduction

This is a set of best practices to follow when installing a Windows 10 guest on a Proxmox VE server 6.x. Right now it's a work in progress.

Install

Prepare

To obtain a good level of performance, we will install the Windows VirtIO Drivers during the Windows installation.

  • Create a new VM, select "Microsoft Windows 10/2016/2019" as Guest OS and enable the "Qemu Agent" in the System tab. Continue and mount your Windows 10 ISO in the CDROM drive
  • For your virtual hard disk select "SCSI" as bus with "VirtIO SCSI" as controller and "Write back" as cache option for best performance (the No cache default is safer, but slower)
  • Configure your memory settings as needed, continue and set "VirtIO (paravirtualized)" as network device, finish your VM creation.
  • For the VirtIO drivers, upload the driver ISO (use the stable VirtIO ISO, get it from here) to your storage, create a new CDROM drive (use "Add -> CD/DVD drive" in the hardware tab) with Bus "IDE" and number 3. Load the Virtio Drivers ISO in the new virtual CDROM drive.
  • Now your ready to start the VM, just follow the Windows installer.

Launch Windows install

  • After starting your VM launch the noVNC console
  • Follow the installer steps until you reach the installation type selection where you need to select "Custom (advanced)"
  • Now click "Load driver" to install the VirtIO drivers for hard disk and the network.
    • Hard disk: Browse to the CD drive where you mounted the VirtIO driver and select folder "vioscsi\w10\amd64" and confirm. Select the "Red Hat VirtIO SCSI pass-through controller" and click next to install it. Now you should see your drive.
    • Network: Repeat the steps from above (click again "Load driver", etc.) and select the folder "NetKVM\w10\amd64", confirm it and select "Redhat VirtIO Ethernet Adapter" and click next.
    • Memory Ballooning: Again, repeat the steps but this time select the "Balloon\w10\amd64" folder, then the "VirtIO Balloon Driver" and install it by clicking next. With these three drivers you should be good covered to run a fast virtualized Windows 10 system.
  • Choose the drive and continue the Windows installer steps.

HINT: There is a video showing the process for a Windows Server 2016 installation which is the same as for Windows 10.

Install Guest Agent and Services

Guest Agent

If you enabled the Qemu Agent option for the VM the mouse pointer will probably be off after the first boot.

To remedy this install the "Qemu Guest Agent". The installer is located on the driver CD under guest-agent\qemu-ga-x86_64.msi. After the installation restart the VM.

Drivers and Services

VirtIO guest tools installer

The easiest way to install missing drivers and services is to use the provided MSI installer. It is available on the driver CD since version "virtio-win-0.1.173-2".

Run the "virtio-win-gt-x64.msi" file located directly on the CD. If you do not plan to use SPICE you can deselect the "Qxl" and "Spice" features. Restart the VM after the installer is done.

After all this the RAM usage and IP configuration should be shown correctly in the summary page of the VM.

For more information and configuration about ballooning, see Dynamic Memory Management

Check for missing drivers

See also: Paravirtualized Block Drivers for Windows
Unknown device in device manager
Make sure to include subfolders

Go to the Device Manager to see if there are any drivers missing. For any unknown device:

  • Right click an select "Update driver".
  • Select "Browse my computer for driver software".
  • Select the Driver CD. Make sure that "Include subfolders" is checked.
  • Once a driver has been found you might be prompted with a security warning asking if you "Would like to install this device software". Click "Install".

Further information

Disk-Image Format: raw vs qcow2

Raw file format provides slightly better performance while qcow2 offers advanced features such as copy on write and Live_Snapshots. Since V2.3, qcow2 is the default format.

VirtIO drivers

Make it really easy: Build your ISO with drivers already included: Windows guests - build ISOs including VirtIO drivers

Latest iso with VirtIO drivers : https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/

See also

Windows 2012 guest best practices

Windows 8 guest best practices