vNext: VM Versionen und Formate

Virtuelle Maschinen in Hyper-V besitzen seit der ersten Hyper-V Versionen ein Attribut "VM-Version". Mit Windows Server 2012 R2 sind wir mittlerweile bei VM-Version 5.0 angekommen. Bei einem Verschieben von VMs auf neue Hyper-V Hosts, z.B. durch den Cluster-Migrations Assistenten oder dem Importieren von VMs wurde die VM Version automatisch an die aktuelle Version angepasst. Dies hat ein Verschieben der VM auf ältere Hosts im Rahmen von Fallback-Szenarien erschwert, denn ein Downgrade der VM-Version ist nicht möglich.

Aus diesem Grund erfolgt in der Technical Preview für Windows Server kein automatisches Upgrade mehr von Hyper-V Versionen.

So ist es möglich auf Hyper-V Hosts mit der Technical Preview virtuelle Maschinen mit älteren Versionen (wie z.B. der Version 5.0 aus 2012 R2 zu betreiben) zu betreiben. Dies ermöglicht eine Abwärtskompatibilität mit älteren Hosts, die neuen Features stehen der virtuellen Maschine jedoch erst nach einem Upgrade auf die VM-Version aus der Technical Preview (6.0) zur Verfügung. Neben der Option eines Fallbacks werden auch die Upgrade-Wege vereinfacht und ermöglichen Rolling Cluster Upgrades.

Neue virtuelle Maschinen werden weiterhin in der höchsten VM-Version erstellt. Die jeweils verwendete VM-Version ist in der GUI dem Hyper-V Manager zu entnehmen:

Oder via PowerShell:

Get-VM -Name <vmname> | fl version

Das Upgrade erfolgt ausschließlich via PowerShell mit CMDlet:

Update-VmConfigurationVersion <vmname>

Nach einem Upgrade befindet sich die VM dann auf Version 6.0.

Achtung: Bei einem Fehlschlagen des CMDlets erfolgt derzeit keine Fehlermeldung, daher sollte hinterher die Version unbedingt überprüft werden.

Wer alle seine virtuellen Maschinen nach einer Migration auf die neue Version upgraden möchte, kann dazu das folgende PowerShell Script von Brandon Linton benutzen:

$VMs = Get-VM *
Foreach( $VM in $VMs){

If ($VM.Version -ne '6.0'){

Write-Host "Stopping VM:"$VM.Name

Stop-VM $VM.Name

Write-Host "Updating VM Version" $VM.Version " on " $VM.Name

Update-VmConfigurationVersion $VM.Name -Force

Write-Host "Starting VM:"$VM.Name

Start-VM $VM.Name

       }

}

Nach einem Upgrade der VM Konfiguration ist die VM-Konfiguration keine XML-Datei mehr, sondern besteht aus zwei getrennten Dateien (.vmcx und .VMRS).

Diese Binär-Dateien sollten niemals direkt bearbeitet werden und erlauben schnellere Lese- und Schreibzugriffe auf die VM-Konfiguration, zusätzlich bieten Sie einen höheren Schutz vor Datenverlust.