Hyper-V – Hypervisor Type on Windows 10 vs Windows Server

hyper-vhypervisorvirtualizationwindowswindows-server-2016

Hyper-V on Windows 10 differs from Hyper-V on Windows Server in features and memory management, as stated in Microsoft docs for Hyper-V:

There are some features that work differently in Hyper-V on Windows
than they do in Hyper-V running on Windows Server.

Hyper-V features only available on Windows Server:

  • Live migration of virtual machines from one host to another
  • Hyper-V Replica
  • Virtual Fiber Channel
  • SR-IOV networking
  • Shared .VHDX

Hyper-V features only available on Windows 10:

  • Quick Create and the VM Gallery
  • Default network (NAT switch)

The memory management model is different for Hyper-V on Windows. On a server, Hyper-V memory is managed with the assumption that only the virtual machines are running on the server. In Hyper-V on Windows, memory is managed with the expectation that most client machines are running software on host in addition to running virtual machines.

But the last paragraph is a bit confusing to me. Does it mean that Hyper-V on Windows Server is Type 1 Hypervisor, and on Windows 10 Type 2 Hypervisor?

Best Answer

Does it mean that Hyper-V on Windows Server is Type 1 Hypervisor, and on Windows 10 Type 2 Hypervisor?

No. It means that the memory tuning assumes on Windows 10 the root partition (VM) runs apps, and not if Hyper-V Server.

The root partition is a VM, see the Hyper-V Architecture diagram.

People love to debate type 1 and type 2 for some reason. Here's one of the more informed debates, via Hacker News:

on init, the Hyper-V driver hijacks the running Windows instance, schedules it as the 'root partition', and runs it like just another VM.

unlike 'child partitions', the root partition still has non-virtualized drivers, which run unimpeded by privileged instruction traps.

when a child partition (guest VM) is started, it's scheduled as a peer to the root. its Virtual Processors (VPs) run alongside the root partition's VPs.

when the child partition traps into the hypervisor, or uses one of the enlightened drivers, the hypervisor dispatches a bus request to the root partition, which handles the IRQ using a Virtual Service Provider implemented by the host Windows kernel.

so the hypervisor is kind of a bridge between the host Windows and the child VMs, but the host Windows actually runs as a sort of privileged VM itself, just one with full hardware access and scheduling priority.

Related Topic