The following walkthrough will run through the steps to update a Windows Server 2008 R2 Enterprise Hyper-V Cluster to SP1. The Hyper-V R2 hosts we are using here, have never received a Windows patch since first build.
Note: If you are using SCVMM2008 R2, recommend upgrading this to SCVMM2008 R2 SP1 first!
i. Before starting make sure your backups are secure and you know you can restore those backups.
ii. Download the Service Pack 1 file to your Hyper-V hosts (windows6.1-KB976932-X64.exe)
(Optional) Run a cluster validation test before starting but don’t do the full cluster validation test as this requires some cluster downtime. Recommend omit storage tests.
Fig. 1: Validate This Cluster…
Fig. 2: Run only tests I select
Fig. 3: Deselect Storage
1. Live migrate all the guests from the node you wish to update to SP1
2. Disable antivirus services.
3. In Failover Cluster Manager, Pause the node (pause is typically used when performing updates etcetera)
Fig. 4: Pause node
4. Reboot the node first to make sure it is in a clean state.
5. Double-click to start up the Service Pack 1 file, and follow the prompts to install it.
Fig. 5: Install Windows Server 2008 R2 Service Pack 1
Fig. 6: Windows Server 2008 R2 Service Pack 1 is now installedVerify it has installed
Fig. 7: Using systeminfo to verify Service Pack level
8. Check the event log for any errors
Note 1: In the setup event log you’ll see these messages –
i) Initiating changes for package KB976932. Current state is Absent. Target state is Installed. Client id: SP Coordinater Engine.
ii) Package KB976932 was successfully changed to the Installed state.
Note 2: if an extra reboot is required you’ll see an extra entry in between these stating “A reboot is necessary before package KB976932 can be changed to the Installed state” in which case reboot!
9. Resume node
Fig. 8: Failover Cluster Manager – Resume nodeantivirus.
11. Live migrate guests from the next node to the node already upgraded to SP1 and repeat 1 to 9 until all nodes are upgraded.
12. It is recommended to run a Cluster Validation after the upgrade of all cluster nodes has finished – remember to omit storage tests (see above)!
13. Finally, update guests VMs with the new SP1 version of the Hyper-V Integration Components (Action > Insert Integration Services Setup Disk.) The guests will require a reboot to complete to installation.
Note: If you have SCVMM2008 R2, you can use it to update multiple.
With Hyper-V R2 SP1 installed and the Integration Components updated, you can take advantage of the Dynamic Memory and RemoteFX features.
Credits, Sources, and Further Reading
Lab Note – VMware Workstation 9 with Hyper-V
In the lab we were running Hyper-V inside VMware Workstation 9 – which is perfectly possible, just remember to select/change the Guest operating system to ‘Microsoft Windows Hyper-V (unsupported)’.
Fig. 9: VMware Workstation 9 – Guest O/S = Hyper-V (unsupported)‘Hyper-V cannot be installed’ message when you attempt to tick the box for the Hyper-V role in server manager.
Fig. 10: Hyper-V cannot be installed
Real World Experience on a 3 Node Cluster
One minor issue encountered was that the Hyper-V Virtual Machine Management Service hung on one of the hosts whilst it was shutting down. Left if for about 20 minutes until it became obvious it was stuck, then easy fix was just to kill vmms.exe from the DOS CLI on another server.
The command is>
taskkill.exe /S SYSTEM /IM vmms.exe
Note 1: This is logged in with a domain account with administrative privileges across the hosts.
The full command syntax is>
taskkill.exe /S SYSTEM /U USERNAME /P PASSWORD /IM PROCESS
Also worth knowing for listing running processes on a remote (or the local) host>
tasklist.exe /S SYSTEM /U USERNAME /P PASSWORD
Note 2: The VMM service only hung on one host; this could be because I had not disabled the AV service (Symantec Endpoint Protection) on the host which I did for the others.
Note 3: Because of the time it was taking to apply the service pack (one host took 2 hours), ended up patching two of the three hosts at the same time (two paused hosts,) and this worked fine. Here we had the luxury of being able to shutdown all the guests.