Migration von VMs in Xen-Umgebung auf ein Ubuntu KVM-System

Mygeeto

Lieutenant
Registriert
Nov. 2009
Beiträge
728
Hallo,

ich bin insgesamt ziemlich neu im Virtualisierungsthema und kenn mich mit vielen Dingen noch nicht aus.
Ich beschäftige mich aktuell damit VMs, die auf einem Xen-Server laufen in eine KVM-Umgebung zu migrieren. Dabei handelt es sich vor allem um Linux-Systeme. Also soche mit Fedora und Ubuntu. Nur einige wenige sind mit Windows-Betriebssystem.
Die VMs habe ich einfach erstmal als vhd exportiert und in der KVM-Umgebung in eine VM als Volume eingehangen(also ja quasi wie als wenn man die Festplatte einfach in einen anderen PC einbaut). Nun ja, damit war ich nicht sehr erfolgreich. Leider booten die die Betriebssysteme nicht richtig. Die einzelnen Partitionen werden beim booten nämlich nicht gefunden.... Also z.B. /swap /boot etc. Das heißt die Systeme schalten in den Recovery-Modus(bei Fedora zum Beispiel dracut).

Wie ich recherchiert habe liegt es wohl daran, dass eine VM in einer Xen-Umgebung mit einem Xen-eigenen Bootloader gebootet wird. KVM allerdings setzt voraus, dass GRUB und der Standard-Kernel installiert ist, weil dort die VM quasi aus sich selber booten können muss? Stimmt das so?
In anderen Tutorials finde ich einfach ein Vorgehen, bei welchem mit einem Programm namens virt-v2v eine Konvertierung durchgeführt wird und dann das Resultat in die KVM-Umgebung eingehangen wird.

Kennt jemand ein Vorgehen, was ich beachten muss bei einer Migration von Virtuellen Maschinen von einem Hypervisor auf einen anderen Hypervisor? Also in diesem Fall von einer Xen-Umgebung in eine KVM-Umgebung.

Vielen Dank


VG

Mygeeto
 
Deine Infos sind soweit korrekt. Einfach die VHD exportieren reicht nicht sondern die VM muss migriert werden. Klassisch kennt man das als p2v also wenn physikalische Server zur VM werden sollen, VMware hatte hier früh eine einfache passende Software. Beim Wechsel des Hypervisors muss man entsprechend ein v2v, also virtuell2virtuell. Eine VM besteht je nach Hypervisor ja nicht nur aus einer Datei wo das Dateisystem drin liegt sondern eben auch Config-Parameter wie Anzahl Kerne, RAM, usw.

Das Ganze "umgehen" kann man z.B. indem man einen weiteren Layer zwischen Hypervisor und VM packt, bestes Beispiel dürfte da OpenStack sein, ist aber für die meisten kleinen und mittelständischen Unternehmen nicht relevant.

Für dein Vorhaben hast du zwei Optionen:
1. Migration, eben das genannte v2v
2. Du hast eine sehr gute Backup-/Disaster-Recovery-Strategie/Software und machst eine Sicherung der Xen-VM und kannst von da aus ein Restore auf KVM durchführen wobei ich gerade aus dem Stehgreif keine Lösung kennt, die so unabhängig vom Hypervisor ist.
 
Okay, danke schonmal. Jetzt ist es aber in der Tat so, dass zumindest in der Destination-Umgebung eine weitere Schicht, nämlich tatsächlich OpenStack darüber liegt.
Konvertiere ich dann die VMs ebenfalls mit virt-v2v nach KVM? Ich frage mich nämlich grundsätzlich, wie das "konvertieren" mit virt-v2v gemeint ist.
Wie ich es versteh: Ich installiere mir einfach virt-v2v auf irgendeinem behelfsmäßigen Linux-System, kopiere da drauf mein VM-Image von einer VM aus dem Xen-Server, konvertiere das dann mit den Parametern und den Output lade ich dann in meine OpenStack-Anlage hoch und baue daraus dann in OpenStack eine VM?

Oder muss ich mir virt-v2v auf dem Destination-System direkt drauf installieren? Also auf den Host-System, in diesem Fall der KVM-Server?
Es gibt ein Tutorial, das ich auf der RedHat-Seite gefunden habe: https://access.redhat.com/articles/1353783
Dort ist es jedenfalls so beschrieben, dass man das Konvertieren auf dem Host-System durchführen muss.

Ich mein man konvertiert ja nicht einfach nur eine "mp3 nach wma" oder ist es doch in übertragenem Sinne so eifnach und man kann das konvertieren auf jedem System durchführen?

VG
Mygeeto
 
Nein so einfach ist es nicht. Wenn dann kannst du es eher mit Container-Formaten wie mkv vergleichen wo du von h264 nach h265 konvertierst.

Bei einem p2v installiert man die p2v-Software innerhalb des Os des zu migrierenden Servers und von da aus startet man dann die Migration. Am Ende hat man eine laufende VM und einen ausgeschalteten physikalischen Server.

Bei kurzem überfliegen der Red Hat Anleitung benötigst du in dem Fall wirklich einen Zwischenserver, eventuell kannst du das auf einem der KVM-Hosts auch installieren.

Da das Ganze anscheinend im Unternehmensumfeld stattfindet hast du 3 Optionen:

1. Ihr holt euch professionellen Support durch einen externen Mitarbeiter ran für das Projekt. Pro: Bei gut ausgewähltem Dienstleister klappt es relativ reibungslos und dieser trägt auch die Verantwortung. Contra: teuer

2. Du eignest dir selbst das Wissen dazu an. Das bedeutet im besten Fall eine komplette (kleine) Testumgebung um das Vorhaben durchzuspielen. Auf keinen Fall solltest du mit Produktivsystemen rumspielen. Optional lass dir von deinem Arbeitgeber eine entsprechende OpenStack Schulung bezahlen.

3. Du setzt auf OpenStack ein neues System auf und migrierst die Daten und Programme entsprechend und umgehst so den Konvertierungsteil.


Für dich am besten wäre mMn Methode 2. Nur so lernst du neues, erweiterst deinen Horizont und verstehst auch, was du da machst und tippst nicht nur ein Tutorial von jemandem aus dem Internet aus einem Forum ab.
 
Okay, ich probiere jetzt erstmal einfach den Standard-Kernel und GRUB/GRUB2 in einer Xen-VM zu installieren, danach runterfahren und exportieren und dann in der OpenStack-Umgebung damit zu booten. Eventuell reicht das ja schon. Weil so wie es ausgeschaut hat, konnte er halt einfach nur den Bootvorgang nicht machen wegen fehlendem Bootloader und hat deshalb die Partitionen nicht gefunden.

Ansonsten wenn das nicht geht, dann bau ich mir einfach auf meinem Testlaptop mal ein Ubuntu mit KVM-Umgebung und versuch dadrauf eine der Xen-VMs mit v2v zu konvertieren und schließlich erfolgreich in die KVM-Umgebung zu migrieren. Das Gerät ist ziemlich fix mit i7 vPro usw. und sollte dafür ausreichen.

Danke Dir soweit. :cool_alt:
 
Zurück
Oben