Skip to content

docs(create-windows-vm): disk bus guidance (virtio-blk default) and Hyper-V enlightenments - #1076

Open
abonillabeeche wants to merge 9 commits into
harvester:mainfrom
abonillabeeche:docs-windows-vm-tuning
Open

docs(create-windows-vm): disk bus guidance (virtio-blk default) and Hyper-V enlightenments#1076
abonillabeeche wants to merge 9 commits into
harvester:mainfrom
abonillabeeche:docs-windows-vm-tuning

Conversation

@abonillabeeche

Copy link
Copy Markdown
Contributor

Summary

Adds guidance to the Windows VM creation documentation on three areas that operators typically need to configure by hand today:

  1. Volumes tab, rootdisk Bus — recommend SCSI (virtio-scsi) for Windows workloads that do sustained writes. virtio-scsi supports multiple queues and has a more efficient DISCARD path than virtio-blk. SATA remains a compatible fallback.
  2. Advanced Options, Cloud Config — clarify that this field IS processed on Windows images that ship with Cloudbase-Init. The previous wording ("not applied to Windows-based VMs") was too broad.
  3. Networks tab, Model — note that e1000 is a safe default while paravirtualized drivers are still being installed, and that switching to virtio after VMDP is loaded gives higher throughput and lower CPU overhead.

Adds a new Recommended Tuning section before Known Issues documenting how to enable KubeVirt's Hyper-V TLFS enlightenments on Windows guests, with the full YAML block and a verification command. This is a well-known Windows-on-KVM tuning that most people rediscover the hard way; documenting it in the VM creation page surfaces it at the right moment.

Same content is applied to both:

  • `docs/vm/create-windows-vm.md` (main)
  • `versioned_docs/version-v1.8/vm/create-windows-vm.md` (v1.8)

Notes

Documentation-only. No behavior changes.

…tenments

Update the Volumes tab guidance to recommend the SCSI bus (virtio-scsi)
for Windows workloads that do sustained writes; virtio-scsi supports
multiple queues and has a more efficient DISCARD path than virtio-blk.

Clarify that the Cloud Config field is processed on Windows images that
include Cloudbase-Init (rather than being ignored outright).

Note that after VMDP is installed the network model can be switched
from e1000 to virtio for better throughput.

Add a new "Recommended Tuning" section documenting KubeVirt's Hyper-V
TLFS enlightenments as a suggested performance tuning for Windows
guests, with the full YAML block and a verification command.

Signed-off-by: Alejandro Bonilla <abonilla@suse.com>
@abonillabeeche
abonillabeeche force-pushed the docs-windows-vm-tuning branch from 3bf9952 to 3f2175f Compare July 10, 2026 01:06

@jillian-maroket jillian-maroket left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review done

Comment thread docs/vm/create-windows-vm.md Outdated
Comment thread docs/vm/create-windows-vm.md Outdated
Comment thread docs/vm/create-windows-vm.md Outdated
Comment thread docs/vm/create-windows-vm.md Outdated
Comment thread docs/vm/create-windows-vm.md Outdated
Comment thread docs/vm/create-windows-vm.md Outdated
Comment thread docs/vm/create-windows-vm.md Outdated
abonillabeeche and others added 7 commits July 13, 2026 10:38
Co-authored-by: Jillian Maroket <67180770+jillian-maroket@users.noreply.github.com>
Signed-off-by: Alejandro Bonilla <abonilla@suse.com>
Co-authored-by: Jillian Maroket <67180770+jillian-maroket@users.noreply.github.com>
Signed-off-by: Alejandro Bonilla <abonilla@suse.com>
Co-authored-by: Jillian Maroket <67180770+jillian-maroket@users.noreply.github.com>
Signed-off-by: Alejandro Bonilla <abonilla@suse.com>
Co-authored-by: Jillian Maroket <67180770+jillian-maroket@users.noreply.github.com>
Signed-off-by: Alejandro Bonilla <abonilla@suse.com>
Co-authored-by: Jillian Maroket <67180770+jillian-maroket@users.noreply.github.com>
Signed-off-by: Alejandro Bonilla <abonilla@suse.com>
Co-authored-by: Jillian Maroket <67180770+jillian-maroket@users.noreply.github.com>
Signed-off-by: Alejandro Bonilla <abonilla@suse.com>
Co-authored-by: Jillian Maroket <67180770+jillian-maroket@users.noreply.github.com>
Signed-off-by: Alejandro Bonilla <abonilla@suse.com>

@jillian-maroket jillian-maroket left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thanks!

@mergify

mergify Bot commented Jul 14, 2026

Copy link
Copy Markdown

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

Comment thread docs/vm/create-windows-vm.md Outdated
3. `StorageClass`: You can use the default StorageClass `harvester-longhorn` or specify a custom one.
4. `Size`: The value `32` is set by default. See the disk space requirements for [Windows Server](https://docs.microsoft.com/en-us/windows-server/get-started/hardware-requirements#storage-controller-and-disk-space-requirements) and [Windows 11](https://docs.microsoft.com/en-us/windows/whats-new/windows-11-requirements#hardware-requirements) before changing this value.
5. `Bus`: The value `VirtIO` is set by default. You can keep it or change it to the other available options, `SATA` or `SCSI`.
5. `Bus`: The default value is `VirtIO`. For Windows workloads that generate sustained writes (such as large file copies, database write-ahead logs, and backup targets), `SCSI` (`virtio-scsi`) generally outperforms `VirtIO` (`virtio-blk`) because it supports multiple queues and uses a more efficient `DISCARD` path. `SATA` is a secondary option for scenarios where paravirtualized drivers cannot be loaded at boot time.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am curious about this one, since Kubevirt did not support SCSI with multiple queues.
I need to check... Or do we have any reference for it?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reverted to VirtIO.

…e disk bus

Benchmarks on Harvester + LVM CSI (Windows Server 2022, Hyper-V
enlightenments enabled to isolate the bus) show virtio-blk matches
virtio-scsi on sequential/random-read and delivers ~2x the IOPS at about
half the latency on random-write and mixed workloads. Update the Bus
guidance to recommend virtio-blk as the default and position virtio-scsi
as the choice for many-disks-per-controller and SCSI features (UNMAP/
DISCARD passthrough, persistent reservations). Applies to current docs and
the v1.8 versioned copy, matching harvester/harvester#11127.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Alejandro Bonilla <abonilla@suse.com>
@abonillabeeche abonillabeeche changed the title docs(create-windows-vm): virtio-scsi bus and Hyper-V enlightenments guidance docs(create-windows-vm): disk bus guidance (virtio-blk default) and Hyper-V enlightenments Aug 6, 2026
@abonillabeeche
abonillabeeche requested review from a team as code owners August 6, 2026 00:09
@abonillabeeche
abonillabeeche requested a review from Yu-Jack August 6, 2026 00:09
abonillabeeche added a commit to abonillabeeche/docs that referenced this pull request Aug 6, 2026
…r#1076

The disk-bus and Hyper-V enlightenment guidance for create-windows-vm.md
lives in harvester#1076. Remove the duplicated copy here so this PR is
scoped solely to Resource Overcommit defaults and the Virtual Machines
landing-page pointer, per review feedback.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Alejandro Bonilla <abonilla@suse.com>

@Vicente-Cheng Vicente-Cheng left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants