Best practices for running Hyper-V on Windows 10

Now that Microsoft has announced that it will be discontinuing Hyper-V Server (the free version of Hyper-V), many people will begin running their lab VMs on Windows 10 or Windows 11 based Hyper-V deployments. Even though the copy of Hyper-V that comes with Windows 10 is really similar to the one you get with Windows Server, there are some significant differences. Those differences, along with the fact that virtual machines are being hosted on a laptop or a desktop, mean that you have to take a slightly different approach to dealing with your virtual machines. As such, I wanted to take the opportunity to share a few best practices for Windows 10 Hyper-V. This list is not meant to be all-inclusive, but I wanted to address some of the more common issues.

Don’t forget about licensing


Licensing matters when it comes to hosting Hyper-V VMs on Windows 10. Hyper-V is only included with Windows 10 Pro, Enterprise, and Education, so you will need to make sure to purchase the correct Windows 10 edition.

The other consideration concerning licensing is that you will need to license your guest operating systems. Your existing Windows 10 license allows you to run Windows 10 on the parent operating system, but you will need a separate license for any operating systems that you run within virtual machines.

You will need more disk space than you think

Each virtual machine that you create will need at least one virtual hard disk. While it is true that you can save disk space by creating dynamically expanding virtual hard disks, those virtual disks will grow as you add data to them.

When running Hyper-V on Windows 10, however, two things often cause people to run out of disk space unexpectedly. First, when you delete a virtual machine from within the Hyper-V Manager, that virtual machine is not truly gone. Instead, the virtual machine object is deleted, but the virtual hard disk remains (and continues to consume physical disk space). Hence, you will need to delete the virtual hard disk to reclaim drive space.

Hyper-V on Windows 10

Second, when you use the Quick Create feature to create a virtual machine, Windows downloads an operating system image and then uses that image to build the virtual machine. These images can consume quite a bit of space, and even though they are no longer needed once the new virtual machine is up and running, quick create images are not automatically deleted.

Incidentally, I have seen people create Hyper-V virtual machines on portable USB hard disks as a way of circumventing their machine’s storage limitations. While this approach does work, keep in mind that it greatly impacts virtual machine performance, especially if multiple virtual machines are running simultaneously because the USB bus becomes a bottleneck to virtual machine storage IOPS.

Your parent OS configuration matters

Microsoft’s best practices for running Hyper-V on a Windows Server have long stated that the parent operating system should be dedicated to running Hyper-V. It’s acceptable to run a backup agent on the parent operating system or perhaps an anti-malware program (assuming that it has been configured with the exceptions required by Hyper-V). But Microsoft discourages its customers from running any applications on Hyper-V hosts. Microsoft even goes so far as to recommend that Hyper-V servers be deployed without a GUI interface (without the Desktop Experience installed).

In contrast, Windows 10 machines are not usually dedicated to a specific purpose. It’s extremely common for Windows 10 machines to have a number of applications installed alongside Hyper-V. There is nothing wrong with configuring Windows 10 in this way, but you do have to think about the impact those applications will have on your Hyper-V virtual machines.

Running applications consume resources such as CPU cycles, memory, and storage IOPS. This reduces the amount of resources that are available to your virtual machines. However, you also need to consider the impact of applications that are installed but not running.

Many applications have processes or system services that run in the background even when the application itself is not running. For example, an application might have an automatic update component that is always running in the background.

Such configurations are often unavoidable, but it is important to periodically clean up your Windows system configuration (particularly those items that are set to launch at system startup) so that you aren’t unnecessarily wasting hardware resources that could be better used by your virtual machines.

Be aware of the missing features

As previously noted, there are several Windows Server Hyper-V features that are not included in Windows 10. These features (and capabilities) include:

  • Live migration
  • Virtual machine replication
  • Virtual fibre channel
  • SR-!OV networking
  • Shared VHDX virtual hard disks

It’s easy to get hung up on the individual features, but what is more important is that these missing features collectively point to the idea that you shouldn’t be hosting production workloads on Windows 10 Hyper-V virtual machines. This is especially true when you also consider that Windows 10 does not support failover clustering and thus lacks a way of making Hyper-V virtual machines highly available.

Resource management is critical

Resource contention is an ever-present issue in any virtualization environment. Virtual machines compete with each other and with the parent operating system for the resources that they need. Even so, Windows 10 Hyper-V tends to be a little bit less forgiving than Windows Server Hyper-V, VMware, or other hypervisors when it comes to resource management. After all, laptops and desktops tend to have fewer resources available than even a modestly equipped server. Additionally, the parent Windows 10 operating system can make significant demands of the underlying hardware (depending on how it is configured and how it is being used at a given moment). The best thing that you can do to ensure that your Hyper-V VMs perform well is to be aware of the resources being consumed by both the virtual machines and by the parent Windows 10 OS to ensure that they have adequate hardware resources available at all times.

Featured image: Shutterstock

Leave a Comment

Your email address will not be published.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Scroll to Top