FAQ: Windows Server 2016 and Hyper-V Integration Services

I’m frequently receiving questions about what’s wrong with Windows Server 2016 and how to manage Hyper-V IS. I’d like to discuss it in a FAQ manner. If your question is not answered, just feel free to leave a comment

Where is the integration services setup disk (VmGuest.iso)?

All of us remember times when we had to insert ISO which was available on Hyper-V host , run it on each VMs and check it’s version from time to time for keeping them up-to-date (yes, vmguest.iso was updated via Windows Update).

The process of Hyper-V IS upgrading has been changed since Windows Server 2016. Now VMs get IS updates directly from Windows Update (WU). ISO is not included and it’s not needed anymore.

It’s completely true if you have new OS inside VMs (Windows 2012 R2/Windows 8.1 and later). Hyper-V IS automatically get updates from WU in these OSes. No actions required.

We have another picture for older OSes (Windows Server 2012/Windows 8 and older). For such OSes, you need to verify that Data Exchange Service (DES) is turned on and running.

DES provides shared registry values (HostSystemOSMajor and HostSystemOSMinor under the hive HKLM\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters) between host and VMs for determining IS applicability. These values should be existed in VM in order to get IS updates from WU. If DES has never been enabled on VMs – IS won’t be provided.

hypervregs

Hack: you can edit/add these parameters and set values manually (of course, it’s unsupported)

Example of outdated IS in VM with WS2012R2 on WS2016 host (DES provided values from VM, compared them with host’s and they are not the same):

image

Linux Guests? Built-In or  Linux Integration Services are required

Unsupported Windows Server 2003? Integration services setup disk is required. Can be copied from WS2012R2 (download link is below). Better option: plan migration to newer OS

How to install IS manually?

Use this KB if DES can’t be enabled or WU is unavailable:

Hyper-V integration components update for Windows virtual machines that are running on a Windows 10 or Windows Server 2016-based host (IS  ver. 6.3.9600.17903) + IS update for Windows Server Guest OSes (IS ver. 6.3.9600.18080)

Update: IS was updated by the June’s month rollup to version 6.3.9600.18692

Note: To install this update, you must have April 2014, update rollup for Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2 (2919355) installed in Windows 8.1. Or, install Service Pack 1 for Windows 7.

To install IS (CAB-file) use PowerShell:

Add-WindowsPackage -PackagePath pathtocab -Online

If you want to do offline VM servicing : read guide from Sarah Cooley

TIP: IS with later version is available from uploaded VMGuest.iso below (use it to simplify overall process)

Where can I find ISO if I haven’t got Windows Server 2012 R2 installed?

I’ve uploaded Hyper-V Integrations Services ISO for you. It was taken from Windows Server 2012 R2 (up-to-date, 02/20/17 . IS version: 6.3.9600.18398). You can use this ISO to install Integration Services in “prehistoric” guest OSes (but again..migration to newer OS is better option for such VMs) on Windows Server 2016 or with hosts running on Windows 2012 R2/Windows 8.0/8.1 Download link for VMGuest.ISO

Update: here is a link for the latest Hyper-V Integration Services (version 6.3.9600.18692), taken from Server 2012 R2 + November updates: VMGuest.ISO (November, 2017)

Update: if you are running 2008 R2/2012R2 guest VMs on Windows 10/Server 2012R2/2016 hosts, there is a special update available at KB4072650 (6.3.9600.18907) 

I’m querying Integration Services version from PowerShell but it shows me 0 for all VMs. What’s wrong?

I’ve provided example of outdated IS in a VM SQL01 above. Cluster validation report generates a warning. PowerShell shows 0 in IntegrationServicesVersion

By default, PowerShell loads Hyper-V module with version 2. I tried to remove that module, import one with 1.1 version and query again IS versions. In that case, I received actual IS versions and  “Update required”  in IntegrationServicesState. It seems like something wrong with Hyper-V 2.0 module. Waiting for official fixes or confirmations.

hyperv

Update: this behavior is normal. VM support is based on the having critical updates and reporting IS version is no longer needed.

What is new in Failover Clustering in Windows Server 2016

Finally, I’d like to review what’s new in failover clustering in Windows Server 2016. Actually, I wrote this article a couple of months ago for Russian official Microsoft blog so if you are Russian you can go to this resource to read it in your native language.

Also, I described some of the new features before RTM-version (when only TPs were available) and almost all of them can be applied to Windows Server 2016 as well. It means there are no significant changes in RTM for them. I’ll provide a short description of such features and links to my previous posts with a detailed information.

And yes, of course, completely new functionality (Load Balancing, for instance) will also be described here

* I have all of this in PDF format. Ping me in the comments/email and I’ll send to you the copy

Cluster OS Rolling upgrade

Cluster migration is usually a headache for administrators. It could be the reason of huge downtime (because we need to evict some nodes from old cluster, build the new one based on these nodes or new hardware and migrate roles from source cluster. So, in the case of overcommitment we won’t have enough resources to run migrated VMs). It’s critical for CSPs and other customers that have implemented SLA policy.

Windows Server 2016 fixes this by adding possibility to place Windows Server 2012 R2 and Windows Server 2016 nodes in the same cluster during upgrade/migration phase.

The new feature named as Cluster Rolling Upgrade (CRU) significantly simplifies overall process and allows us to successively upgrade existed nodes without destroying cluster. It helps to reduce downtime and any required costs (hardware, staff time and etc.)

Cluster Rolling Upgrade Windows Server 2016

The full list of CRU benefits is listed below:

  • Hyper-V virtual machine and Scale-out File Server workloads can be upgraded ONLY from Windows Server 2012 R2 to Windows Server 2016 without any downtime. Other cluster workloads will be unavailable during the time it takes to failover (for example, SQL Server with AlwaysOn FCI ~ 5 minutes of downtime)
  • It does not require any additional hardware (for example, you evicted 1 node of 4. The rest 3 nodes are online and they must have resources for workloads live migrated from evicted node. In this case zero-downtime is predicted)
  • The cluster does not need to be stopped or restarted.
  • In-Place OS upgrade is supported BUT Clean OS install is highly recommended. Use In-Place upgrading carefully and always check logs/services before adding node back to cluster.
  • A new cluster is not required. In addition, existing cluster objects stored in Active Directory are used.
  • The upgrade process is reversible until the customer crosses the “point-of-no-return”, when all cluster nodes are running Windows Server Technical Preview, and when the Update-ClusterFunctionalLevel PowerShell cmdlet is run.
  • The cluster can support patching and maintenance operations while running in the mixed-OS mode.
  • CRU is supported by VMM 2016 and can be automated through PowerShell/WMI

To get more details read my previous post that shows CRU in action (it’s been written for Technical Preview but can still be used with RTM)

Hint: get list of supported VM’s version by host (Get-VMHostSupportedVersion).

Supported VMs Version by Hyper-V Host

Cloud Witness

Failover cluster in Windows Server 2012 R2 can be deployed with an external disk or file share witness which must be available for each cluster nodes and it’s needed as a source of extra vote. As you may know, witness is highly recommended (I’d say it’s required!) for Windows Server 2012 R2 cluster regardless of a number nodes in it (dynamic quorum automatically decides when to use witness).

In Windows Server 2016 a new witness type has been introduced – Cloud Witness. Yes, it’s Azure-based and it’s specially created for DR-scenarios, Workgroup/Multi-Domain cluster (will be described later), guest clusters and clusters without shared storage between nodes.

Cloud Witness uses Azure Storage resources (Azure Blog Storage through HTTPS protocol. HTTPS port should be opened on all cluster nodes) for read/write operations. Same storage account can be used for different clusters because Azure creates a blob-file generated for each cluster with unique IDs. These blob-files are kept in msft-cloud-witness container and require just KBs of storage. So, costs are minimal and Cloud Witness can be simply used as a third site (“arbitration’) in stretched clusters and DR solutions.

Cloud Witness in Windows Server 2016

Cloud Witness scenarios:

  • Multi-Site clusters
  • Clusters without shared storage (Exchange DAG, SQL Always-On and etc.)
  • Guests clusters running on Azure and On-Premises
  • Storage Cluster with or without shared storage (SOFS)
  • WorkGroup and Multi-Domain Clusters (new in WS2016. It’ll be described later)

Continue reading “What is new in Failover Clustering in Windows Server 2016”