Der Ex- und Import von virtuellen Maschinen gilt unter Hyper-V als eine einfache und zuverlässige Möglichkeit, VMs von einem Hostserver auf einen anderen zu übertragen, wenn keine Live Migration möglich ist. So taucht dieses Verfahren auch in der Empfehlungsliste auf, wenn es darum geht, von einer Hyper-V-Umgebung unter Windows Server 2008 R2 auf eine neue Infrastruktur unter Windows Server 2012 R2 umzusteigen. Folgt man hierbei jedoch dem bekannten Weg, die betreffende VM zunächst in Hyper-V 2008 R2 zu exportieren und sie dann in Hyper-V 2012 R2 zu importieren, so schlägt dies fehl: Hyper-V behauptet dann, keine VM für den Import zu finden.
Was ist da los?
Die Lösung ist einfach, aber für viele unerwartet. Derselbe Vorgang klappt nämlich problemlos, wenn der Zielserver mit Windows Server 2012 – ohne R2 – läuft. In dieser Version hatte Microsoft das Import- und Export-Verfahren überarbeitet, die alte Technik aber noch unterstützt. Der aktuelle Windows Server 2012 R2 hingegen unterstützt nur noch die neue Fassung, kann mit der alten aber nichts mehr anfangen.
Export früher
In den ersten Versionen von Hyper-V (in Windows Server 2008/R2) erzeugte der VM-Export ein eigenes XML-basiertes Dateiformat für die Konfiguration der VM (mit der Dateiendung .EXP). Nur diese Exportdateien konnte der Hypervisor später wieder importieren. Das war damals für viele Admins eine Falle, denn eine “einfach kopierte” VM konnte man auf diesem Weg eben nicht wieder importieren – hierzu hätte man sie ausdrücklich erst exportieren müssen.
Export heute
In Windows Server 2012 haben die Redmonder das Verhalten geändert. Seit dieser Version importiert Hyper-V eine VM auch direkt aus den “Rohdaten”, also aus der einfachen XML-Konfigurationsdatei und den virtuellen Festplatten im VHD- oder VHDX-Format. Parallel allerdings verarbeitete der 2012-Server eben auch das alte Exportformat und erzeugte daraus eine neue gültige Konfigurationsdatei. Hinter den Kulissen hatte Microsoft die ganze Mimik in WMI-Funktionen verpackt: Für den alten Vorgang war die Version 1 dieser Funktionen zuständig, für die neue die Version 2. Beide hatte Windows Server 2012 an Bord.
In Windows Server 2012 R2 hingegen fehlt die erste WMI-Version für Hyper-V – daher kann der Hypervisor mit den EXP-Dateien auch nichts anfangen. Stattdessen reicht es aus, die zu importierende Quell-VM einfach vom Ursprungs-Host zu kopieren und dann per Import auf dem 2012-R2-Host einzubinden. Viel einfacher und schneller also.
Die Lösung
Was aber, wenn man nur eine “korrekt exportierte” VM von einem 2008-R2-Host hat? Hier gibt es drei Möglichkeiten.
- Wenn der 2008-R2-Host und die betreffende VM noch existieren, beendet man die VM in Hyper-V und schaltet vorsichtshalber auch den Hyper-V-Dienst ab (Hyper-V Virtual Machine Management Service, VMMS). Dadurch stehen die Dateien der VM nicht mehr im Zugriff. Diese kopiert man nun an den Zielpfad auf dem 2012-R2-Host und importiert sie dort.
- Sollte der alte Host mit der Original-VM nicht mehr existieren und man hat nur die EXP-Datei und die virtuellen Festplatten-Dateien, so kann man einen Umweg über einen Host mit Windows Server 2012 gehen. Dort importiert man die VM, weil diese Host-Version das ja noch kann. Die so entstehende VM kann man dann von dem 2012-Host aus erneut exportieren (was im neuen Format geschieht) und diesen Export dann auf dem 2012-R2-Host importieren. Alternativ könnte man auch hier die VM und den Hyper-V-Dienst beenden, die VM-Dateien direkt kopieren und sich so den Export sparen.
- Schließlich kann man auch auf dem 2012-R2-Host eine neue VM erzeugen, die ähnlich konfiguriert ist wie das Original. Die VHD-Dateien der exportierten VM bindet man dann als Festplatten dort an (die Boot-Platte muss auf jeden Fall am virtuellen IDE-Bus der VM hängen). Die VM sollte sich so problemlos starten lassen. Hierbei allerdings weist Hyper-V “neue” Hardware-Komponenten zu, sodass man etwa die Netzwerkkarte(n) neu konfigurieren muss.
Besonders der zweite Weg ist natürlich recht umständlich, denn wer hat schon einen 2012-Hostserver neben seiner neuen 2012-R2-Farm stehen? Rhoderick Milne von Microsoft hat einen Weg beschrieben, wie sich der Aufwand dafür etwas verringern lässt. Er nutzt dazu das Feature “Boot from VHD”, um auf einem bestehenden Rechner parallel eine Installation von Windows Server 2012 einzurichten, ohne das eigentliche Betriebssystem des Rechners zu beeinträchtigen. Natürlich wird man auch hiermit durchaus mehrere Stunden beschäftigt sein – falls es mehrere 2008-R2-VMs aus dem Export-Format zu konvertieren gilt, kann der Weg aber durchaus sinnvoll sein.
[How To Import Windows 2008 R2 VM To Windows 2012 or 8.1 Using Boot To VHD – 250 Hello – Site Home – TechNet Blogs]
http://blogs.technet.com/b/rmilne/archive/2013/12/02/how-to-import-windows-2008-r2-vm-to-windows-2012-or-8-1-using-boot-to-vhd.aspx
Und hier noch ein paar Hintergründe zu der ganzen Sache:
[Windows Hyper-V 2012 & 8.1 Hyper-V Did Not Find Virtual Machine to Import – 250 Hello – Site Home – TechNet Blogs]
http://blogs.technet.com/b/rmilne/archive/2013/10/22/windows-hyper-v-2012-amp-8-1-hyper-v-did-not-find-virtual-machine-to-import.aspx
http://faq-o-matic.net/?p=5759