this example uses windows server 2022. Windows 11 will be basically the same
It is beyond this gist to be a deep tutorial.
this gist is part of this series
- Download your windows ISO of choice (i am using windows 2022 Data Center for this example.)
- Download the lates virtio.iso too
- go to
Datacenter > pve1 > expand child nodes in left pane > local (pve1)
(i don't know why i find this unintutive) - click
ISO Images
- click
upload
and path to your ISO and clickupload
- you will need to do this on every node you want to create VMs on (ISOs are not replicated by default - but see this is you want to replicate across nodes)
- on the node you uploaded the click the
create VM
in the upper right corner - on the General page you need to specify a
name
and the clicknext
- on the OS page
- set the ISO to boot, select your storage and then select the iso image from the drop down
- set guest OS to windows and the latest date
- click next
- For the system page it is imperative you pick the pool you created ealier for EFI and TPM storage as follows:
- Set the disk to virtio block storage for max perf
- it is also important to select the ceph pool when creating disks for the VM as follows (note my personal preference to use write through for the cache policy - i don't care about loosing reads, i do care about loosing writes; the discard setting is outside the scope of this gist.
do not start the VM at this point.
- navigate to
Datacenter > pve1 > vmnode > hardware
- click
add
- choose
cd / dvd drive
- set as
SATA2
- choose your storage and the virtio ISO Image and click ok.
- now boot the VM and press key to boot from DVD
- when it ask where you want to install OS it will ve blank - click
load driver
- click
browse
- navigate to the virtio CD drive (e.g D: or whatver letter it has)
- expanf the file structure and select
d:\viostor\2k22\amd64
and clickok
- you should see the Red Hat Virtio SCSI controller listed - if so click
next
. - now you can select the unallocated space and continue with install
- when you can login to the OS install everything on the virtio CD using the istall application in the root of the CD
- shutdown machine and change network type to virtio and GPU to VirtIO-GPU (and unmount virtio cd and install dvd) and reboot
- in the gui select
Datacenter > HA
- click
add
in the resources pane - select
ClusterGroup1
(this was created in an ealier gist in this gist sequence)
- select the VM from pve1 node treet in the GUI
- start the VM if it is not already started and wait fo bootstorm activity to subside
- click
migrate
in the top right corner of the UI - select another node say
pve3
and selectmigrate
- note it should say online like the following:
Your vM should migrate in a minute or so at maximum with no errors.
- make sure your VM is started on pve3
- pull the power on node pve3
- watch it fail over in about 3 to 4 minutes
@scyto
I came across this content in the "help" section of the Hard Drive creation screen. Not sure if it's just more recent info or not, but it appears VirtIO SCSI is the most modern driver that provides high performance. Is there something more to consider that pushed you toward VirtIO Block?
"A SCSI controller of type VirtIO SCSI single and enabling the IO Thread setting for the attached disks is recommended if you aim for performance. This is the default for newly created Linux VMs since Proxmox VE 7.3. Each disk will have its own VirtIO SCSI controller, and QEMU will handle the disks IO in a dedicated thread. Linux distributions have support for this controller since 2012, and FreeBSD since 2014. For Windows OSes, you need to provide an extra ISO containing the drivers during the installation.
The VirtIO Block controller, often just called VirtIO or virtio-blk, is an older type of paravirtualized controller. It has been superseded by the VirtIO SCSI Controller, in terms of features."