OpenStack-Instanzen über die Befehlszeile auf CODE-DE-Lab migrieren

Dieser Artikel beschreibt die Migration einer Instanz von einer CODE-DE-Lab Cloud in eine andere, beispielsweise von WAW3-1 nach WAW3-2.

Dabei laden Sie ein Image der Instanz auf Ihren lokalen Computer oder eine virtuelle Maschine in der CODE-DE-Lab Cloud herunter und anschließend in eine andere Cloud hoch.

Inhalt dieser Anleitung

  • Umgebungen für die Durchführung der Migration

  • Arten der Instanzmigration in einer OpenStack-Cloud erläutern

  • Eine Instanz aus der Quell-Cloud herunterladen

  • Ein Image für die Migration erstellen

  • Eine Instanz in die Ziel-Cloud hochladen

Voraussetzungen

Nr. 1 Konto

Sie benötigen ein Hosting-Konto bei CODE-DE-Lab mit Zugriff auf die Horizon-Oberfläche: https://identity.cloudferro.com/auth/realms/CODE-DE3/account/.

Nr. 2 Installierter OpenStackClient für Linux

  • Python installieren,

  • eine virtuelle Umgebung erstellen und aktivieren und anschließend

  • eine passende RC-Datei aus der CODE-DE-Lab Cloud herunterladen und aktivieren, um sich mit der Cloud zu verbinden.

Nr. 3 Zugangsdaten für beide Clouds bereithalten

In diesem Artikel werden zwei Clouds betrachtet:

Quell-Cloud

Die Cloud, aus der Sie die Instanz herunterladen.

Ziel-Cloud

Die Cloud, in die Sie das Image hochladen.

Die beiden Clouds können unterschiedliche Authentifizierungsverfahren verwenden. Je nach Anzahl der erforderlichen Faktoren gibt es vier Kombinationen:

Nr.

Quelle

Ziel

1

ein Faktor

ein Faktor

2

ein Faktor

zwei Faktoren

3

zwei Faktoren

ein Faktor

4

zwei Faktoren

zwei Faktoren

Der Artikel OpenStack-CLI-Zugriff auf die Cloud von CODE-DE-Lab mit Zwei-Faktor-Authentifizierung aktivieren erläutert beide Authentifizierungsarten. Wenden Sie das jeweils passende Verfahren an. Laden Sie die RC-Dateien beider Clouds herunter; diese haben unterschiedliche Namen. Bei Kombination Nr. 3 könnte die erste Datei beispielsweise cloud_00734_1-openrc-2fa.sh heißen, da Zwei-Faktor-Authentifizierung verwendet wird. Die zweite Datei könnte cloud_00341_3-openrc.sh heißen, da für dieses Konto Ein-Faktor-Authentifizierung aktiviert ist.

Nr. 4 Allgemeine Anleitung zum Hochladen eines Images über die CLI

Der Artikel Wie laden Sie Ihr benutzerdefiniertes Image mit OpenStack CLI hoch? beschreibt, wie Sie ein Betriebssystem-Image auf Ihren lokalen Computer herunterladen und in die gewünschte Cloud hochladen. Hier gehen Sie genauso vor. Das zu migrierende Image stammt jedoch aus Ihrer Cloud und kann eigene Spezialsoftware enthalten.

Der genannte Artikel enthält außerdem technische Einzelheiten und erläutert den Umgang mit möglichen Fehlern während des Vorgangs.

Bemerkung

Windows-Images können auf dieselbe Weise migriert werden.

Umgebungen für die Durchführung der Migration

Die Migration kann in verschiedenen Umgebungen erfolgen. Stellen Sie unabhängig von Ihrer Wahl sicher, dass genügend Speicherplatz für das herunterzuladende Image vorhanden ist. Halten Sie außerdem die RC-Dateien der Quell- und der Ziel-Cloud bereit.

Ihr lokaler Computer

Sie können die Instanz auf Ihren lokalen Computer herunterladen. Die zu übertragende Datenmenge hängt von der Speichergröße Ihrer virtuellen Maschine ab und ist üblicherweise erheblich.

Eine virtuelle Maschine

Sie können auch eine Linux-Maschine in der CODE-DE-Lab Cloud verwenden. Dies ist beispielsweise sinnvoll, wenn:

  • Ihre Internetverbindung ein Datenlimit hat

  • nicht genügend Speicherplatz vorhanden ist

  • Ihr Computer nicht während des gesamten Downloads eingeschaltet bleiben soll

  • Sie zeitweise Unterbrechungen Ihrer Internetverbindung erwarten

Volume

Falls die virtuelle Maschine nicht genügend Speicherplatz für die Migration hat, können Sie ein Volume verbinden:

RC-Dateien übertragen

Sie können die RC-Dateien mit scp auf die virtuelle Maschine übertragen. Angenommen:

  • Ihre RC-Datei liegt im aktuellen Arbeitsverzeichnis und heißt cloud_00734_1-openrc-2fa.sh

  • die Floating IP Ihrer virtuellen Maschine lautet 1.2.3.4

  • Ihre virtuelle Maschine wurde mit einem Standard-Image erstellt

Dann könnte der Befehl so lauten:

scp cloud_00734_1-openrc-2fa.sh eouser@1.2.3.4:/home/eouser

tmux

Wenn der Download oder Upload auch nach dem Trennen der Verbindung zur virtuellen Maschine weiterlaufen soll, können Sie tmux verwenden. Die Terminalsitzung bleibt damit bestehen, solange die VM nicht heruntergefahren wird.

Die folgenden Anweisungen gelten für Ubuntu. Bei anderen Distributionen müssen Sie die Befehle möglicherweise anpassen.

Installieren Sie zunächst tmux:

sudo apt install tmux

Starten Sie tmux:

tmux

Führen Sie Ihre Befehle wie gewohnt aus. Um die virtuelle Maschine zu verlassen, verwenden Sie folgende Tastenfolge:

  • Drücken Sie CTRL+b und lassen Sie die Tasten los

  • drücken Sie d auf der Tastatur

Sie gelangen zur vorherigen Eingabeaufforderung zurück. Geben Sie nun exit ein, um die Verbindung zur virtuellen Maschine zu trennen.

Um die verlassene Sitzung fortzusetzen, verbinden Sie sich erneut per SSH mit der virtuellen Maschine.

Führen Sie anschließend folgenden Befehl aus:

tmux a

Sie sollten zur vorherigen Sitzung zurückkehren.

Mit exit innerhalb von tmux beenden Sie die Sitzung.

Eine Instanz herunterladen

Aktivieren Sie die RC-Datei der Quell-Cloud, beispielsweise:

source ./cloud_00734_1-openrc-2fa.sh

Listen Sie Ihre Instanzen auf:

openstack server list

Das Ergebnis sollte etwa so aussehen:

../_images/migratino_server_list.png

In diesem Artikel hat die zu migrierende Instanz die ID 0cab85e2-4c11-4e6c-a837-e70f8289fd5d. Lesen Sie die tatsächliche ID Ihrer Instanz aus der Serverliste ab und ersetzen Sie 0cab85e2-4c11-4e6c-a837-e70f8289fd5d im restlichen Artikel durch diesen Wert.

Schalten Sie die Instanz aus:

openstack server stop 0cab85e2-4c11-4e6c-a837-e70f8289fd5d

Sie können auf zwei Arten prüfen, ob sie ausgeschaltet ist. Führen Sie entweder erneut openstack server list aus und prüfen Sie Status. Bei einem gestoppten Server sollte der Status SHUTOFF lauten.

../_images/instance_shut_off.png

Oder zeigen Sie den Server mit show an und geben nur seinen Zustand aus:

openstack server show 0cab85e2-4c11-4e6c-a837-e70f8289fd5d | grep power_state

Bei diesem Befehl lautet der Status Shutdown statt SHUTOFF. Die Bedeutung ist dieselbe.

../_images/instance_shutoff_twice.png

Ein Image für die Migration erstellen

Die Instanz ist gestoppt. Erstellen Sie nun ein Image davon in der Cloud. Die Instanz hat derzeit die ID 0cab85e2-4c11-4e6c-a837-e70f8289fd5d, erhält nach der Migration jedoch eine andere ID. Um sie auf dem neuen Server wiederzuerkennen, vergeben Sie mit --name einen Namen. In diesem Beispiel lautet er Migration image.

Der Befehl zum Erstellen eines benannten Images lautet

openstack server image create --name "Migration image" 0cab85e2-4c11-4e6c-a837-e70f8289fd5d

Eine weitere Möglichkeit ist shelve. Dieser Befehl

  • erstellt ein entsprechendes Image und

  • ändert den Instanzstatus in Shelved Offloaded.

openstack server shelve 0cab85e2-4c11-4e6c-a837-e70f8289fd5d

Prüfen Sie bei beiden Varianten, ob das neue Image korrekt erstellt wurde.

openstack image list --private

In diesem Beispiel lautet das Ergebnis:

../_images/image_created_for_migration.png

Das Image hat die ID 1fedb775-deef-4bfd-9ec2-ee67f65a461b. Diese wird in den folgenden Befehlen verwendet.

Die Größe darf nicht 0 Byte betragen und sollte ungefähr der Größe der Instanz entsprechen. So prüfen Sie die Größe:

openstack image show 1fedb775-deef-4bfd-9ec2-ee67f65a461b | grep min_disk

Das Ergebnis lautet:

../_images/min_disk_instance_migration.png

Laden Sie das neu erstellte Image auf die lokale Festplatte herunter. Die Datei heißt image.raw. Je nach Geschwindigkeit Ihrer Internetverbindung kann der Download wenige Minuten bis mehrere Stunden dauern.

openstack image save --file ./image.raw 1fedb775-deef-4bfd-9ec2-ee67f65a461b

Das Image ist bereit. Um es in eine andere Cloud zu übertragen, müssen Sie die passenden Zugangsdaten für diese Cloud aktivieren.

Eine Instanz hochladen

Öffnen Sie eine weitere Terminalsitzung und aktivieren Sie den Zugriff auf die Ziel-Cloud. Mit den Beispieldaten aus Voraussetzung Nr. 3 könnte der Aktivierungsbefehl so aussehen:

source ./cloud_00341_3-openrc.sh

Alle openstack-Befehle wirken nun auf die Ziel-Cloud.

Laden Sie das Image hoch

openstack image create --file ./image.raw "Migration image"

Dies kann einige Zeit dauern. Sie können den Vorgang in Horizon verfolgen, indem Sie unter Compute –> Images alle Images anzeigen. So sieht der Beginn des Uploads aus:

../_images/migration_image_upload.png

Nach dem Hochladen können Sie das Image in der Ziel-Cloud wie jedes andere Image verwenden.

Achtung: Immer die aktuelle Image-ID verwenden

Die standardmäßig verfügbaren Betriebssystem-Images in der CODE-DE-Lab Cloud werden gelegentlich auf neue Versionen aktualisiert. Dadurch ändert sich ihre Image-ID. Angenommen, die Image-ID für Ubuntu 20.04 LTS lautete beim Verfassen dieses Artikels 574fe1db-8099-4db4-a543-9e89526d20ae. Beim Durcharbeiten des Artikels verwenden Sie die aktuelle Image-ID und ersetzen damit 574fe1db-8099-4db4-a543-9e89526d20ae im gesamten Text.

Angenommen, Sie möchten OpenStack-Prozesse automatisieren, etwa mit Heat, Terraform, Ansible oder einem anderen Automatisierungswerkzeug. Wenn Sie 574fe1db-8099-4db4-a543-9e89526d20ae als Image-ID verwenden, ist dieser Wert fest im Code hinterlegt. Sobald er sich durch eine Aktualisierung ändert, kann der automatisierte Prozess fehlschlagen.

Warnung

Stellen Sie sicher, dass Ihr Automatisierungscode die aktuelle Image-ID des Betriebssystems verwendet und keinen fest im Code hinterlegten Wert.

Nächste Schritte

Sie können ein heruntergeladenes Image auch über Horizon hochladen:

Wie lade ich ein benutzerdefiniertes Image über das OpenStack Horizon Dashboard auf die CODE-DE-Lab Cloud

Still need help?
If this article does not answer all of your questions, the support team will help you.
Contact support