Windows Server VM Migration von Citrix XenServer auf Hyper-V

Ich betreue einen Citrix XenServer, auf dem eine Reihe von Windows Server VMs laufen. Der Host ist eine eigentlich recht potente Maschine mit 2x Intel XEON E5620, 48 GB RAM und 4x 300 GB SAS 15 K HDDs als RAID 5 an einem Adaptec RAID Controller. Ok, nicht mehr ganz neu, aber nicht schlecht. Der XenServer Host beherbergt 6 Windows Server VMs und diese liefen immer in irgendeiner Weise nicht zufriedenstellend was die Performance angeht. Gut, die HDDs der VMs lagen alle auf dem gleichen RAID, aber so wirklich IO intensiv waren die VMs nicht, bzw. nicht alle (ein DB Host, ein RDS der allerdings auf einer eigenen SSD läuft, der Rest eher so FS Dingsis). Selbst als vergangenes Jahr ein SAS DAS angeschafft wurde und VMs auf diesem Host Großteils auf diesen Speicher verschoben wurden, blieb der Performance Boost aus. Ein IO Problem seitens der Festplatten konnte seither mit Sicherheit ausgeschlossen werden. Deshalb haben wir uns entschieden den XenServer in Rente zu schicken und durch die sonst bei uns eingesetzte Hyper-V Plattform zu ersetzen.

Gesagt, geplant. Wie also am sinnvollsten die VMs von XenServer auf Hyper-V migrieren. Ich habe 2 Wege getestet:

  1. Backup und Restore über Windows Server Backup
  2. Export und Konvertierung der VM über XenConvert

Meine Tests habe ich mit den beiden Linux VMs begonnen, welche auf dem XenServer liefen. Die oben aufgeführte erste Methode funktioniert da natürlich nicht, also blieb es bei der 2 Variante. Grundsätzlich tat dies auch, allerdings mit dem Effekt, dass meine VMs nach der erfolgten „Migration“ nicht mehr booten konnten. Irgendetwas ist da schief gelaufen. Doof. Da aber eh ein Distrubutionsupdate anstand, wurden die Linux VMs kurzerhand from scratch neu aufgesetzt und die Konfigurationsdateien von A nach B übernommen und fertig war der Lack.

Migration mittels Backup/Restore

Wahrscheinlich aus diesen Erfahrungen habe ich keine Tests mit XenConvert vorgenommen um meine Windows Server VMs zu migrieren und habe stattdessen folgendes Vorgehen entwickelt um meine Windows Server VMs von XenServer auf Hyper-V zu migrieren:

Backup der VM mit Windows Boardmitteln

  1. Auf dem XenServer die HDD „VM BMR“ der VM über Attach bereitstellen (auf ausreichenden Platz achten)
  2. HDD in der VM ggf. online schalten
  3. Auf der VM manuell ein Backup durchführen:
    1. Windows -Server-Sicherung starten
    2. Einmalsicherung
    3. Sicherungsoptionen: Unterschiedliche Optionen
    4. Sicherungskonfiguration auswählen: Benutzerdefiniert
    5. Elemente für Sicherung auswählen: Element hinzufügen -> Haken vor Bare-Metall-Recovery (inkludiert System-Reserviert, Systemstatus und LW C:\)
    6. Zieltyp: Lokale Festplatte
    7. Sicherungsziel auswählen: VM BMR Partition auswählen
    8. Bestätigung: Sicherung (starten)

HDD „VM BMR“ Partition eingebunden lassen.

Neue VM auf Hyper-V

Festplatte erzeugen

Über den „Hyper-V Manager“ auf dem gewünschten Hpyer-V Server eine Festplatte mit identischer Größe im VHDX Format erstellen. Fixed size. VHDX deshalb, damit später die VHDX mittels Resize-VHD von „unnötig“ zugewiesenem Speicher befreit werden kann. Die älteren VHD’s können nicht verkleinert werden.

VM erzeugen

  1. Über den „Hyper-V Manager“ die neue VM erzeugen und gewünschte Konfiguration vergeben
  2. Während der Erstellung der VM kann die Anzahl der CPUs für die VM nicht beeinflusst werden
  3. VM mit dem Netzwerk verbinden
  4. Zuvor erzeugte HDD der VM zuweisen
  5. In das CD/DVD-Laufwerk das Windows Installationsmedium einlegen

Wiederherstellen der VM von der Sicherung

  1. VM Starten (sollte automatisch von CD/DVD booten)
  2. Windows installieren: Vorgaben übernehmen und Weiter
  3. Auf „Computerreparaturoptionen“ klicken
  4. Den unteren Radiusbutton (Stellen Sie den Computer mithilfe eines zuvor gesicherten Systemabbilds …) -> Weiter
  5. Fehlermeldung „…kein Systemabbild gefunden“ mit abbrechen verlassen
  6. Systemabbildsicherung auswählen: Radiusbutton „Systemabbild auswählen“ markieren -> Weiter
  7. Speicherort der Sicherung für den Computer auswählen: Button „Erweitert“ klicken
  8. Im Netzwerk nach einer Systemabbild suchen -> Wirklich -> Ja. VM hat jetzt per DHCP eine IP bekommen
  9. Partition angeben: \\VM\e$ (VM = zuvor gesicherte VM, LW Buchstabe ggf. mit original VM abgleichen) und nachfolgend User/Pass angeben
  10. Sicherung sollte jetzt gefunden werden (ggf. Datum und Computer Spalte prüfen) und per Klick auswählen -> Weiter
  11. Partition auswählen -> weiter
  12. Datenträger formatieren -> weiter
  13. Fertigstellen -> Wiederherstellung beginnt

ACHTUNG:
Wenn nach erfolgreicher Wiederherstellung der VM der Reboot angefordert wird, die VM vom Netzwerk trennen, da ansonsten 2 identische Maschinen im Netz sind! Die wiederhergestellte VM wird nach einem Reboot per DHCP eine IP anfordern.

Post-Restore-Arbeiten in der neuen VM

XenServer VM Tools deinstallieren und Hyper-V Tools installieren

  1. Nach erfolgreichem Reboot der Maschine die „Citrix Tools for Virtual Machines“ über die Systemsteuerung deinstallieren. -> Reboot
  2. Nach Deinstall der XenServer Tools noch den Dienst entfernen: „sc delete xensvc“. Dieser bleibt nach der Deinstallation der XenServer Tools im System übrig.
  3. Aktuelle Version der Hyper-V Integrationsdienste installieren -> Reboot

HDD verkleinern

  1. Partition C: defragentieren
  2. Servermanager starten -> Speicher -> Datenträgerverwaltung
  3. Rechtsklick auf Partition C: -> verkleinern
  4. Datenträgerverwaltung schlägt automatisch die max. mögliche Verkleinerung vor -> Verkleinern
  5. Nachdem verkleinerte Partition in der Datenträgerverwaltung ersichtlich ist, warten, bis im Resourcenmonitor der Prozess mit dem Defrag (svchost.exe (defragsvc)) verschwunden ist.
  6. VM Shutdown

VHD im Hyper-V Host verkleinern

  1. Nur eine virtuelle Festplatte im VHDX Format kann verkleinert werden! Falls VHD Festplatte vorliegt, diese zunächst über den „Hyper-V Manager“ ins VHDX Format konvertieren (erzeugt eine neue Datei!).
  2. VM muss gestoppt sein, darf nicht auf die VHDX zugreifen!
  3. Powershell auf Hyper-V Server starten

IP-Konfiguration

Durch die geänderte Hardware hat die VM unter Hyper-V eine neue Netzwerkkarte (LAN-Verbindung 2) erhalten, welche auf DHCP eingestellt wird. Die IP Adresseinstellungen von ursprünglicher Maschine übernehmen.

Fertig.

Dieses Vorgehen ist bombensicher und ich habe damit bereits eine Windows Server VM erfolgreich von XenServer nach Hyper-V migriert. Der zeitliche Aufwand für diese Aktion hat sich bei der migrierten Maschine auf ca. 1,5 h belaufen. Am längsten hat der Restore gedauert. Das Backup selbst (~40 GB) war in weniger als 10 Minuten erledigt. Wenn man sich obigen Ablaufplan ansieht, sieht es im ersten Moment furchtbar kompliziert aus, zumal, wenn man sie mit der nachfolgenden Ablaufliste vergleicht. Trotz allem habe ich ein gutes Gefühl, weil hier nur mit Microsoft Mitteln gearbeitet wird und die Backup/Restore Prozeduren sich nach meinen Erfahrungen als rock-solid erwiesen haben.


Migration mittels XenConvert

Wie oben geschrieben, hatte ich meine Tests mit XenConvert mit meinen Linux VMs getestet und bin damit grandios auf die Nase gefallen, weshalb ich meine Tests damals nicht auf die Windows VMs ausgeweitet hatte. Eigentlich doof, aber manchmal reitet einen sowas. Nachdem ich nun gestern Abend erfolgreich eine Migration nach zuvor vorgestelltem Procedere durchgeführt hatte, habe ich mir heute nochmal die XenConvert Methode angesehen.

Export der VM

  • Shutdown der VM
  • Im XenCenter Export der VM mittels rechtsklick auf VM -> Export
  • Exportformat XVA Package

Konvertieren in das OVF Format

  1. XenConvert 2.3.1 herunterladen: http://www.citrix.com/downloads/xenserver/tools/conversion.html (nach unten scrollen)
  2. XenConvert starten
  3. Convert from „Xen Virtual Appliance“ to „Open Virtualization Format (OVF) Package“ -> Weiter
  4. Zuvor erstelle Export Datei auswählen -> Weiter
  5. Zielverzeichnis auswählen, keine weiteren Einstellungen nötig -> Weiter
  6. OVF Package Name vergeben -> Weiter
  7. Es wird nochmal eine Übersicht angezeigt und nach einem Klick auf „Convert“ wird die Konvertierung gestartet.
  8. Im Zielordner liegt nach Abschluss der Konvertierung eine VHD Datei „Ref_14.vhd“

Kopieren der VHD auf Hyper-V Server und VM erzeugen

  1. Ref_14.vhd ggf. umbenennen und auf Hyper-V Server kopieren
  2. Über den „Hyper-V Manager“ die neue VM erzeugen und gewünschte Konfiguration vergeben
  3. Während der Erstellung der VM kann die Anzahl der CPUs für die VM nicht beeinflusst werden, also anschließend ggf. anpassen
  4. VM mit dem Netzwerk verbinden
  5. VM starten.

Fertig.

Was hier noch fehlt, ist die Konvertierung der VHD in das VHDX Format und die Verkleinerung des Dateisystems mit anschließendem Shrink der VHDX. Zeitlicher Aufwand für einen Windows Server mit 40 GB HDD (10 GB genutzt):

  • 10 Minuten Export der VM
  • 10 Minuten Konvertierung XVA -> OVF
  • 10 Minuten VM erzeugen und VHD kopieren.

Unterm Strich ist diese Methode schneller. Ob Sie genauso rock-solid wie die erste Methode ist, muss sich im praktischen Test zeigen. Ich habe noch ein paar VMs zu migrieren. 🙂

Update 28.01.2015

Ich muss meine Aussage revidieren, dass die Migration von XenServer VMs mittels XenConvert schneller geht. Mein Test mit XenConvert betraf eine ”kleine„ VM mit einer kleinen Festplatte (< 50 GB). Die Durchführung einer VM Migration mit großer Festplatte (100 GB) dauerte dies sehr viel länger als die Sicherungsvariante. Allein der Export der VM aus dem XenCenter heraus dauerte gut 2 Stunden, da hier die komplette Festplatte (also 100 GB) exportiert werden, die Konvertierung benötigte ebenfalls sehr lange (> 1h) Die Sicherung der VM über Windows Serverbackup geht hier wesentlich schneller, diese war nach wenigen Minuten (!) abgeschlossen, da nur der belegte Festplattenspeicher gesichert wird, und nicht jedes Byte der HDD. Der Restore war in ca. 30 Minuten erledigt.

Veröffentlicht in Windows Server Getagged mit: , , , ,
Ein Kommentar zu “Windows Server VM Migration von Citrix XenServer auf Hyper-V
  1. Nichts desto trotz ist deine Exportvariante super. Insbesondere bei Linuxmaschinen ist diese Variante mit XenConvert sehr zu empfehlen. Und wenn der Zeitfaktor nicht bedeutsam ist – dann funktioniert es bestens. In Abwandlung von der Export-Variante gibt es folgende Änderung (so mache ich es) – Snapshot von der laufenden Maschine -> Snapshot exportieren -> Rest, wie oben.
    Danke für deinen Beitrag und besonders für die Links zu den alten XenConvert Versionen. mit den neuen geht es nämlich nicht mehr so.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*