Feed abonnieren

Viele Unternehmen und Organisationen wechseln derzeit von herkömmlichen Virtualisierungsplattformen zu Hybrid Cloud-Lösungen. Ein Team von Red Hat Engineers realisierte vor Kurzem eine umfangreiche Migration von Red Hat Virtualization zu Red Hat OpenShift mit dem Migrations-Toolkit für die Virtualisierung, einem modernen Tool für die Migration virtueller Workloads zu OpenShift.

Unsere Red Hat Virtualization Umgebung führte mehr als 10 Jahre lang erfolgreich Hunderte von virtuellen Maschinen (VMs) aus, die von Engineers teils für Entwicklungs- und Testzwecke, teils für Produktions-Workloads verwendet wurden. Da wir uns aber dem End of Life von Red Hat Virtualization nähern, war es in unseren Augen an der Zeit, unsere VMs zu OpenShift zu migrieren.

Angesichts der Art der VMs, die wir in Red Hat Virtualization ausführen, und um Unterbrechungen für Endbenutzende zu minimieren, entschieden wir uns, die Workloads in den VMs weiterhin auf OpenShift auszuführen – mit OpenShift Virtualization. Die Migration wurde daher mit dem Migrations-Toolkit für die Virtualisierung 2.4 durchgeführt, der damals fortschrittlichsten Version mit erweiterten Migrationsfunktionen.

Die Umstellung von Red Hat Virtualization auf OpenShift stellte uns vor viele Herausforderungen, nicht nur auf unserer Seite, sondern auch seitens der Nutzenden. Im Rest dieses Artikels erläutern wir, wie wir diese bewältigen konnten, und bieten weitere Erkenntnisse aus unseren Erfahrungen.

Vorbereitung und Planung

Eine sorgfältige Planung war für eine erfolgreiche Migration unerlässlich. Als wir mit der Planung der Migration begannen, wurde uns bewusst, dass wir vor einigen Herausforderungen standen.

In einem ersten Schritt mussten wir sicherstellen, dass der OpenShift-Zielcluster über ausreichende Ressourcen verfügt, um die migrierten Workloads zu bewältigen. Wir identifizierten zunächst VMs, die in letzter Zeit nicht in Red Hat Virtualization verwendet worden waren und deren Eigentümer nicht in die neue OpenShift-Umgebung migrieren wollten. Diese VMs wurden nicht in die Migration einbezogen. Anschließend stellten wir sicher, dass in OpenShift genügend Storage für die Disks der VMs vorhanden war, die wir migrieren wollten. Wir sorgten außerdem dafür, dass genügend IP-Adressen für die VMs zugewiesen wurden, die wir im Ziel-VLAN in OpenShift migrieren wollten.

In einem zweiten Schritt stellten wir fest, dass wir das Provisionierungsmodell von Red Hat Virtualization und die Umgebung von OpenShift Virtualization verbinden mussten. In Red Hat Virtualization wurden dann neue VMs für Nutzende von unseren Admins zugewiesen. Nutzende in OpenShift Virtualization wurden hingegen Projekten zugewiesen. Sie können die VMs in ihren Projekten dadurch selbst erstellen.

In einem dritten Schritt wurden im Migrations-Toolkit für die Virtualisierung die Berechtigungen von Nutzenden sowohl für die Quell- als auch für die Zielanbieter festgelegt. Auf diese Weise definieren Nutzende den Quellanbieter, von dem die VMs migriert werden sollen, für die sie Berechtigungen haben, und den Zielanbieter, auf dem VMs in ihrem Namen erstellt werden sollen. Wir zogen es vor, sämtliche VMs auf einmal zu migrieren, anstatt die einzelnen Nutzenden zu bitten, ihre VMs jeweils selbst zu migrieren. Daher mussten wir mit Nutzenden arbeiten, die über Administratorrechte auf beiden Plattformen verfügten, da sie dadurch auf die VMs in Red Hat Virtualization zugreifen sowie VMs in den einzelnen Projekten in OpenShift erstellen konnten.

Es war keine einfache Aufgabe, die in letzter Zeit verwendeten VMs – in unserem Fall die des letzten Jahres – und die Größe ihrer Disks zu bestimmen, um festzustellen, ob der OpenShift-Zielcluster über ausreichend Storage-Kapazität verfügt. Zusätzlich mussten wir die Eigentümer der VMs in Red Hat Virtualization dazu bringen, entsprechende Projekte in OpenShift zu erstellen, um die Verbindung mit dem anderen Bereitstellungsmodell sicherzustellen. Diese Herausforderungen konnten wir durch die Implementierung von Python-Skripten lösen.

Eine erste Gruppe von Skripten erfasste mit oVirt SDK Daten von Red Hat Virtualization. Anhand dieser Daten ermittelten wir, wann die VMs zuletzt genutzt wurden, und filterten dann die VMs heraus, die im vergangenen Jahr nicht verwendet wurden. Als die endgültige Liste der zu migrierenden VMs stand, erfassten wir Details zur Größe und zu den Eigentümern der Disks. Die Daten von Red Hat Virtualization zeigten, dass der OpenShift-Cluster nicht über genügend Storage verfügte, um die Daten der migrierten VMs zu speichern. Wir fügten daher eine neue Storage-Klasse hinzu, um den Storage im OpenShift-Cluster zu vergrößern.

Eine zweite Gruppe von Skripten wurde verwendet, um die Projekte im OpenShift-Cluster mit der Kubernetes-API vorzubereiten. Anhand der Daten aus den ersten Skripten konnten wir die jeweiligen Eigentümer der migrierten VMs ermitteln. Für die einzelnen Gruppen von Eigentümern erstellten wir dann Projekte im OpenShift-Cluster und wiesen sie den jeweiligen Eigentümern zu, indem wir ihnen die Cluster-Rolle mit Administratorberechtigungen erteilten.

Nehmen wir zur Veranschaulichung eine VM namens shared_vm, deren Eigentümer 2 Nutzende von Red Hat Virtualization sind, Alice und Bob. In OpenShift erstellen wir jetzt ein Projekt namens alice-bob-ns, für das sowohl Alice als auch Bob über Berechtigungen verfügt. Anschließend migrieren wir die VM shared_vm zum Projekt alice_bob_ns. Andere VMs von Alice und Bob in Red Hat Virtualization können ebenfalls in das Projekt alice_bob_ns migriert werden. Alice und Bob können anderen Projekten mit VMs von Red Hat Virtualization zugewiesen werden, deren Eigentümer sie allein oder zusammen mit anderen Nutzenden sind. Mit diesem Ansatz lässt sich das Problem der unterschiedlichen Provisionierungsmodelle in den Umgebungen von Red Hat Virtualization und OpenShift beheben.

Nachdem dieses Herausforderung überwunden war, konnten wir mit der Migration der virtuellen Maschinen beginnen.

Ausführung

Die Migration selbst umfasste mehrere Schritte:

  1. Zunächst stellten wir das Migrations-Toolkit für die Virtualisierung auf dem OpenShift-Cluster bereit, zu dem wir migriert waren. Das Migrations-Toolkit für die Virtualisierung kann VMs zum OpenShift-Cluster migrieren, auf dem es ausgeführt wird, oder aber zu Remote-OpenShift-Clustern, die als Zielanbieter hinzugefügt werden. In unserem Fall wurden die VMs zu einem einzelnen OpenShift-Cluster migriert, weswegen wir den Operator des Migrations-Toolkits für die Virtualisierung auf diesem Cluster installierten.
  2. In der OpenShift-Webkonsole nutzten wir einen Administrator zur Konfiguration des OpenShift-Clusters für die Migration. Dazu waren folgende Schritte erforderlich:
    1. Erstellen eines für die Migration vorgesehenen Verwaltungsprojekts
    2. Erstellen des Quellanbieters für Red Hat Virtualization, des lokalen OpenShift-Clusters als Zielanbieters und der Storage- und Netzwerk-Mappings im Verwaltungsprojekt
  3. Aufgrund der großen Anzahl an Migrationsplänen, die für die Migration zu den Zielprojekten erforderlich waren, automatisierten wir deren Erstellung und Ausführung mit von uns implementierten Skripten, die mit Administratorrechten ausgeführt wurden. Diese Skripte führten die folgenden Aktionen aus:
    1. Pro Zielprojekt wurde ein Plan zur kalten Migration erstellt. Wir haben uns für die kalte Migration entschieden, weil die Ausfallzeiten der VMs für uns nicht von Bedeutung waren und Kaltmigrationen in der Regel schneller sind als Warmmigrationen.
    2. Zum Auslösen der Migrationspläne wurde ein sogenannter „Migration-by-Migration“-Plan erstellt.

Die meisten VM-Migrationspläne wurden erfolgreich abgeschlossen, aber wir standen während der VM-Migrationen vor 2 interessanten Herausforderungen.

Während der ersten VM-Migration stellten wir fest, dass die Migrationen länger dauerten als erwartet. Der Grund war, dass eine große Anzahl von Migrationsplänen gleichzeitig durchgeführt wurden.

Im Migrations-Toolkit für die Virtualisierung können wir die Anzahl der VM-Migrationen begrenzen, die parallel als Teil eines Migrationsplans ausgeführt werden. Es gibt jedoch keine Möglichkeit, die Anzahl der VM-Migrationen zu begrenzen, die in verschiedenen Migrationsplänen ausgeführt werden. Durch die gleichzeitige Ausführung vieler Migrationspläne wurde die Netzwerkbandbreite aufgebraucht, was die VM-Migrationen verlangsamte.

In unserem Fall war die Zeit, die für die Migration aller Migrationspläne benötigt wurde, wichtiger als die Ausfallzeit der einzelnen migrierten VMs. Außerdem wurde die Gesamtdauer der Migration dadurch nicht beeinflusst. Die Erschöpfung der Netzwerkbandbreite kann jedoch die Gesamtdauer der Migration beeinflussen, etwa wenn es bei VM-Migrationen zu Zeitüberschreitungen kommt oder wenn die Ausfallzeit der einzelnen VMs minimiert werden muss. In solchen Fällen sollten Sie Ihre Migrationspläne entweder schrittweise implementieren oder Warmmigrationen durchführen.

Das zweite Problem bestand darin, dass 3 von 120 VM-Migrationen fehlschlugen. Bei einer genaueren Untersuchung stellten wir fest, dass die Ursache ein Fehler in unserer Codebasis war. Wir konnten den Fehler schnell beheben und die VMs mit einer korrigierten Version des Migrations-Toolkits für die Virtualisierung erfolgreich migrieren. Ein Fix für dieses Problem ist im Migrations-Toolkit für die Virtualisierung Version 2.5 enthalten.

Mit diesen Anpassungen konnten wir sämtliche VMs erfolgreich zu OpenShift migrieren.

Validierung von VMs auf OpenShift

Nachdem alle Migrationen mithilfe des Migrations-Toolkits für die Virtualisierung erfolgreich abgeschlossen waren, führten wir für mehrere zufällig ausgewählte VMs in OpenShift Virtualization Integritätsprüfungen durch, die für jede ausgewählte VM erfolgreich abgeschlossen wurden. Dann warteten wir auf weiteres Feedback von den VM-Eigentümern. Das Feedback der Nutzenden zu ihren migrierten VMs in OpenShift Virtualization fiel insgesamt positiv aus, wobei jedoch auch einige Probleme gemeldet wurden.

Ein Punkt betraf VMs, die nicht gestartet werden konnten und die Meldung „kein Betriebssystem gefunden“ anzeigten. Unsere Untersuchung ergab, dass dies nur bei VMs mit mehreren Disks der Fall war und nur auftrat, wenn eine falsche Disk zum Starten ausgewählt wurde. Wir lösten das Problem, indem wir die Boot-Reihenfolge der VMs manuell änderten, um sicherzustellen, dass die VMs von ihrer bootfähigen Disk starten. Im Migrations-Toolkit für die Virtualisierung Version 2.5 wurde dieses Problem vollständig behoben.

Auch Service-Unterbrechungen wurden im Feedback angegeben. Die VMs änderten während der Migration aufgrund von Infrastrukturbeschränkungen ihr VLAN. Auf einige Workloads und Services innerhalb dieser VMs konnte dann beim Start nicht zugegriffen werden. Das war darauf zurückzuführen, dass im neuen VLAN DNS-Einträge mit unterschiedlichen FQDNs (Fully-Qualified Domain Names) und IP-Adressen konfiguriert wurden. Dieses Problem wurde behoben, indem Nutzende angewiesen wurden, ihre Workloads und externen Clients an die neuen FQDN-Einstellungen anzupassen.

Erkenntnisse

Die Umstellung von traditionellen Rechenzentren auf Hybrid Cloud-Lösungen ist eine Herausforderung. Es gibt dabei verschiedene Ansätze, die von unterschiedlichen Tools unterstützt werden, aus denen Nutzende wählen können. In diesem Artikel haben wir eine Migration von VMs von Red Hat Virtualization zu OpenShift beschrieben, die wir intern bei Red Hat durchgeführt haben.

Diese Migration erforderte eine sorgfältige und umfassende Planung und eine klare Kommunikation mit allen Stakeholdern im Unternehmen. Das Migrations-Toolkit für die Virtualisierung bietet zwar Tools, die Migrationen zu OpenShift Virtualization erleichtern, deckt aber nicht immer sämtliche erforderlichen technischen Schritte ab.

Dieser Artikel erklärt, wie wir das Migrations-Toolkit für die Virtualisierung zusammen mit Skripten verwendeten, die wir für Vorgänge implementierten, die das Migrations-Toolkit für die Virtualisierung nicht übernehmen konnte. Die Skripte sind unter GitHub verfügbar. Mit diesen Tools konnten wir effektiv 120 VMs mit 12 TB Daten migrieren, die jetzt erfolgreich auf OpenShift ausgeführt werden.

Mit dem bevorstehenden End of Life von Red Hat Virtualization gehen wir davon aus, dass viele Unternehmen eine ähnliche Migration in Betracht ziehen. Wir hoffen, dass unsere Erfahrungen und Tools Ihnen bei der Migration Ihrer VMs zu OpenShift mit dem Migrations-Toolkit für die Virtualisierung eine Hilfe sind. Das Tool enthält Fixes für die in diesem Beitrag genannten Probleme und viele zusätzliche Verbesserungen.


Über die Autoren

Joined Red Hat in 2020, initially as an engineer in the storage virtualization team. Later transitioned to work on diverse proof-of-concept and research projects centered around OpenShift as a virtualization platform and its orchestration. Currently part of the MTV team, dedicated to developing new features and capabilities, and implementing migrations from traditional virtualization platforms to OpenShift virtualization.

Read full bio

Arik is a hands-on engineering manager that leads the Migration Toolkit for Virtualization team. During his time at Red Hat since joining in 2012, Arik primarily contributed to Red Hat Virtualization, OpenShift Virtualization and other OpenShift projects as an individual contributor, prior to managing Red Hat Virtualization engineering teams.

Read full bio
UI_Icon-Red_Hat-Close-A-Black-RGB

Nach Thema durchsuchen

automation icon

Automatisierung

Das Neueste zum Thema IT-Automatisierung für Technologien, Teams und Umgebungen

AI icon

Künstliche Intelligenz

Erfahren Sie das Neueste von den Plattformen, die es Kunden ermöglichen, KI-Workloads beliebig auszuführen

open hybrid cloud icon

Open Hybrid Cloud

Erfahren Sie, wie wir eine flexiblere Zukunft mit Hybrid Clouds schaffen.

security icon

Sicherheit

Erfahren Sie, wie wir Risiken in verschiedenen Umgebungen und Technologien reduzieren

edge icon

Edge Computing

Erfahren Sie das Neueste von den Plattformen, die die Operations am Edge vereinfachen

Infrastructure icon

Infrastruktur

Erfahren Sie das Neueste von der weltweit führenden Linux-Plattform für Unternehmen

application development icon

Anwendungen

Entdecken Sie unsere Lösungen für komplexe Herausforderungen bei Anwendungen

Original series icon

Original Shows

Interessantes von den Experten, die die Technologien in Unternehmen mitgestalten