Seit Windows Server 2012 R2 zeigt der Hyper-V-Manager für jede VM eine “Version” an. Dies ist dort ausgesprochen langweilig, denn es steht immer “5.0” in dem Feld. Aussagekräftig wird die Version erst mit Windows Server 2016.
Schon seit der ersten Hyper-V-Ausgabe tragen VMs intern Versionsnummern. Hierüber identifiziert der Host, welche Konfigurationsdaten für eine VM vorhanden sind. Bislang war diese Version faktisch an Hyper-V auf dem Host gekoppelt, denn jede Host-Version konnte nur genau eine VM-Konfigurationsversion nutzen. Übertrug man eine VM von einem “älteren” auf einen “neueren” Host – per Export und Import oder von Windows Server 2012 nach Windows Server 2012 R2 auch per Shared-Nothing Live Migration – dann konvertierte der Host die VM-Version stillschweigend. Damit war die VM nur mit diesem neueren Hyper-V-System kompatibel. Auf den “älteren” Host ließ sie sich dann nicht zurück übertragen.
Mit Windows Server 2016 gibt es nun (endlich) die Funktion “Cluster Rolling Upgrades” für Hyper-V-Cluster. Damit kann man einen bestehenden Cluster von Windows Server 2012 R2 aus Schritt für Schritt auf die neue Windows-Version bringen, indem man einzelne Hosts nacheinander mit Windows Server 2016 installiert und sie dann in den bestehenden Cluster wieder aufnimmt. Solange dieser Prozess noch nicht für alle Hosts abgeschlossen ist, läuft der Cluster im Mischbetrieb von 2012 R2 und 2016.
Während dieser Aktualisierungsphase kann man bestehende VMs frei zwischen den verschiedenen Hosts hin- und herschieben, denn Hyper-V in Windows Server 2016 konvertiert die VM-Konfigurationsversionen nicht mehr automatisch. Eine VM, die von einem 2012-R2-Host stammt, behält so ihre Version 5.0, bis man sie manuell aktualisiert. Erst dann kann sie nicht mehr auf einem älteren Host laufen.
In Windows Server 2016 kann man neue VMs auch gezielt mit einer älteren Konfigurationsversion erzeugen. Dies geschieht über den Schalter -version im PowerShell-Cmdlet New-VM. So lassen sich auch neu angelegte VMs in einem Misch-Cluster frei verschieben.
Bislang hatte Microsoft nicht ausdrücklich dokumentiert, welche Eigenschaften zu bestimmten VM-Versionen gehören. Da es in der Preview-Phase von Windows Server 2016 gleich mehrere neue VM-Konfigurationsversionen gab (6.0, 6.1, 6.2, 7.0, 7.1 und 8.0 – die Versionen vor 6.2 sind aber nicht mehr vorhanden), hat der Hersteller nun eine Übersicht veröffentlicht, welche Version für welche Funktion notwendig ist. Diese findet sich hier:
[Upgrade virtual machine version in Hyper-V on Windows 10 or Windows Server 2016]
https://technet.microsoft.com/en-us/windows-server-docs/compute/hyper-v/deploy/upgrade-virtual-machine-version-in-hyper-v-on-windows-or-windows-server
Interessanterweise gibt das Cmdlet Get-VMHostSupportedVersion auch zwei Versionen mit den Nummern 254.0 und 255.0 zurück, die als “Vorabversion” und “Experimentell” gekennzeichnet sind. Erzeugt man eine VM mit einer dieser Versionen, so warnt Hyper-V:
http://faq-o-matic.net/?p=7529