When it comes to virtualizing with Hyper-V, at some point you will come across a new learning opportunity in regards to provisioning the storage associated with the VMs. Hyper-V has a lot of ways to run a VM from a storage perspective (and there may be more!):
- On local NTFS volumes
- On iSCSI or Fibre Channel volumes
- On Clustered Shared Volumes
- Shared VHDX drives
- SMB 3.0 shares
- Replicated Hyper-V VMs
- Hardware VSS drivers
Because of this, there is a good chance that one or more storage technologies are being used. This is especially true if you’ve been using Hyper-V for a while and have been using newer features in addition to the features that were around since Windows Server 2008 R2 with Hyper-V in addition to the Windows Server 2012 (and R2) Hyper-V features.
One of the best ways to check the storage of your Hyper-V VMs is built right in to Server Manager with the Best Practices Analyzer (BPA). The BPA has been around for a while and is built-in to Server Manager, though you have to scroll down and look for it! The figure below shows how you can run BPA for your Hyper-V host:
The BPA is run specifically to the Hyper-V role on the host, so the results that will be displayed here are specific to Hyper-V. The best part about running the BPA, is that the results are context-sensitive to the roles and features in use on this server. So, if you are using Clustered Shared Volumes or hardware VSS; the results will be updated accordingly. I recently ran BPA on one of my Hyper-V hosts and I can immediately see corrective action that needs to be done based on the Hyper-V storage of the VMs and host configuration:
The BPA is a great starting point for deciding what to change in your host environment if necessary. This is especially important as there are many things involved with VMs and their configuration. The example above is a warning about storage provisioning when it comes to dynamically extending virtual disks. A Hyper-V host can have for example 10 VMs, each with 127 GB of storage for the first virtual disk that has the operating system installed. Additional drives may be added as well. Most base operating system disks are as small as 8 GB and go up from there. So those 10 VMs may only take 80 GB or more, but they can grow. In fact, each VM is “entitled” to take up to 127 GB of disk space on the host. Is there 1.27 TB of drive space available? That is the basis of this warning in BPA as that host doesn’t have the space should each VM grow to their full size.
This and other benefits can be found in the BPA and as mentioned earlier, the results are specific to the host configuration and Hyper-V role. Lastly, it’s built right in to Server Manager so there is no real reason why you can’t run it now! If you prefer PowerShell, the Invoke-BpaModel CmdLet can be used to populate the Server Manager console as well with BPA content.
Have you used the BPA recently for a Hyper-V host? Did you find any surprises in the results? Share your experience below.