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
Der Artikel Wie installiert man den OpenStackClient (Linux)? zeigt, wie Sie
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:
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.
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.
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:
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:
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:
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: