Verregnete Sonntage bieten sich an, einige (zeitintensive) Wartungsarbeiten, Aktualisierungen und Backups der eigenen Serverlandschaft zu machen. Da ist es ruhig, die verschiedenen Server können mal offline gehen und man hat das Gefühl, wieder mal “sicherer” zu sein.

So gedacht exportiere ich aus meinem Hyper-V Server 1 eine virtuelle Maschine (VM) mit Snapshots um sie vorübergehend auf Hyper-V Server 2 laufen zu lassen. Nebenbei entferne ich nach dem Backup die alten Snapshots und sichere die VM auf eine externe Platte.

Also auf zum Import der VM auf Hyper-V Server 2. Man startet den Import-Vorgang, der Balken läuft und … es folgt ein Fehler:

"Failed to import the virtual machine from import directory … Error: One or more arguments are invalid (0x80070057)"

hyper-v-import-error-1

Komisch. Das habe ich doch schon öfters gemacht… Moment, mit SCVMM oder manuell anscheinend immer nur auf derselben Maschine?

Nachdem auch der zweiter Versuch (war vielleicht der Kopiervorgang korrupt?) gescheitert ist begibt man sich in die Suchmaschine seiner Wahl. Zum Glück habe ich auch ziemlich rasch Lösungen dazu gefunden:

Genau dieses Problem wird im Blog von Rexiology@MSDN und im social.technet.microsoft.com-Forum beschrieben – es dürfte sich also um einen bekannten Fehler von Hyper-V handeln.

Dieser Fehler tritt auf, wenn man VMs nicht mit SCVMM verschiebt (klar, denn ich habe meinen “alten “SCVMM entfernt und der neue SCVMM 2008 ist noch nicht in meiner Produktivumgebung im Einsatz = Murphy´s Law).
Der Import schlägt fehl, wenn auf einer anderen Hyper-V Maschine in der Export-Datei der Abschnitt "ScopeOfResidence" mit einem Wert belegt ist.

Der Workaround zur Lösung sieht wie folgt aus:

hyper-v-import-error-3

Wechseln Sie in das Verzeichnis der exportierten VM in …\<VM-Name>\Virtual Machines und öffnen Sie die Export-Datei *.exp mit dem Notepad.
Die Export-Datei - der Dateiname ist eine GUID z.B. 88F08B29-E8D1-4EBA-9E6D-4DA0BCA174A7.exp - ist eine einfache XML-Datei. (Am besten diese vor Manipulationen in ein anderes Verzeichnis sichern.)

hyper-v-import-error-4

Gleich im ersten Abschnitt findet sich der Schlüssel <PROPERTY NAME="ScopeOfResidence" TYPE="string">. Hier ist ein Wert <VALUE>…</VALUE> enthalten, z.B. <VALUE>f02b6638-bc83-4b76-80c7-76e85cabc1ae</VALUE>

hyper-v-import-error-5

Entfernen Sie nun den vorhandenen Wert, sodass nur <VALUE></VALUE> stehen bleibt – wie im Screenshot oben. Nun die Datei speichern und schließen. Das wars!

Nun kann die VM in Hyper-V wie gewohnt importiert werden.

Dieses Problem wird laut Microsoft in R2-Version gelöst, so schreibt Ben Armstrong [MSFT]: “...We do know of the issue that import fails if the virtual machine is in a scope that does not exist on the target computer, and that is getting fixed in R2 (currently in the beta build)…“

Ben hat auch ein kleines VBScript geschrieben, mit welchem alle VMs eines Hyper-V Servers “behandelt” werden sodass dieses Problem nicht auftritt. Dabei passiert genau das gleiche, nämlich dass alle Werte der Msvm_VirtualSystemGlobalSettingData Sektion entfernt werden. Wie gesagt, unter SCVMM tritt dieser Fehler nicht auf, denn dieser entfernt genauso diese Schlüssel.

So, meine VM konnte somit doch verschoben werden und ich kann meinen Wartungs-Sonntag forsetzen!

Beitrag von Toni Pohl