I have a couple of servers running Hyper-V Server, the free version of Microsoft’s hypervisor.
Hyper-V Server R2 is now available with some nice improvements. I tried an in-place upgrade. You do this by running setup from within a running instance of the server. This did not work when going from 2008 to 2012, but I am glad to report that it does work for 2012 to 2012 R2:
You will need to make sure that all the VMs are shut down before you run the upgrade. Otherwise you get a message and the upgrade fails:
In my case the upgrade was smooth and not too lengthy. However I was warned that because I use a pass-through drive in one VM, that this might cause a problem. It did, and the VM failed to start after the upgrade:
The fix was trivial: remove the pass-through drive and then add it back. After that the VM started.
Then I hit another problem. Although my VMs had started, they had no network connectivity, even after I upgraded the integration components. These VMs run Server 2008 R2, in case that makes a difference (I doubt it). The virtual switch still showed in Hyper-V settings but no traffic passed through to the VMs.
I tried two solutions. Removing the NIC from the VM and re-adding it made no difference (and this is also a poor solution since you then have to reconfigure the NIC in the VM). However deleting the virtual switch and replacing it with a new one of the same name and configuration was successful. The virtual NICs then have to be reconnected to the new virtual switch, but this is painless.
The UI for the new version looks exactly the same as before. However the Windows version number has changed from 6.2.9200 to 6.3.9600, so you can verify that the OS really was upgraded:
Is it better to avoid in-place upgrades? A clean upgrade is safer, if you do not mind exporting and re-importing the VMs, or moving them all to another host, before the upgrade. On the other hand, with the upgrade cycle now faster than before, in-place upgrade makes sense as a way of keeping pace with little pain.