Eine VM aus einem Instanz-Snapshot mit der OpenStack CLI auf CODE-DE-Lab starten

In diesem Artikel erfahren Sie, wie Sie mit dem OpenStack-CLI-Client eine virtuelle Maschine aus einem Instanz-Snapshot erstellen.

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 OpenStack-CLI-Client

Der OpenStack-CLI-Client muss installiert sein. Einer der folgenden Artikel hilft Ihnen dabei:

Um die CODE-DE-Lab Cloud mit dem OpenStack-CLI-Client zu steuern, müssen Sie Ihre Identität nachweisen: OpenStack-CLI-Zugriff auf die Cloud von CODE-DE-Lab mit Zwei-Faktor-Authentifizierung aktivieren

Nr. 3 Ephemerer und persistenter Speicher

Der Artikel Flüchtiger vs. persistenter Speicher (Option „Neues Volume erstellen“) erläutert den grundlegenden Unterschied zwischen ephemerem und persistentem Speicher in OpenStack.

Nr. 4 Ein Instanz-Snapshot

Sie benötigen einen Instanz-Snapshot, aus dem Sie Ihre virtuelle Maschine erstellen möchten. In diesem Artikel heißt der Beispiel-Snapshot my-instance-snapshot. Bei openstack image list kann er wie folgt erscheinen; sein Name ist dunkelblau umrahmt:

openstackcli/start_vm_instance_snapshot_cli-01_creodias.png

Die folgenden Artikel beschreiben, wie Sie einen solchen Snapshot erstellen:

Beachten Sie, dass der hier verwendete Instanz-Snapshot anders heißt als die Snapshots in den oben genannten Artikeln.

Behandelt werden sowohl

  • Snapshots von Instanzen mit ephemerem Speicher als auch

  • Snapshots von Instanzen mit persistentem Speicher.

Besondere Regeln für Snapshots von Instanzen mit persistentem Speicher

Für Snapshots mit persistentem Speicher gelten besondere Regeln. Der Instanz-Snapshot besitzt keinen eigenen Speicher, sondern einen Metadatenabschnitt. Dieser listet die Volume-Snapshots auf, die für die einzelnen Volumes erstellt wurden.

Einige oder alle dieser Volume-Snapshots können inzwischen fehlen, beispielsweise weil sie später gelöscht wurden.

Daher gilt:

Der Volume-Snapshot des Boot-Laufwerks fehlt

In diesem Fall können Sie aus dem Instanz-Snapshot keine virtuelle Maschine erstellen.

Der Volume-Snapshot des Boot-Laufwerks ist noch vorhanden

Sie können aus dem Instanz-Snapshot eine virtuelle Maschine erstellen. Falls weitere Volumes mit Ihrer VM verbunden waren, werden nur diejenigen wiederhergestellt, deren in den Metadaten genannten Volume-Snapshots noch vorhanden sind.

Nr. 5 Zugriff auf die zu erstellende virtuelle Maschine

Es gibt verschiedene Möglichkeiten für den Zugriff auf virtuelle Maschinen. SSH und die Webkonsole werden am häufigsten verwendet.

Beim Erstellen einer virtuellen Maschine aus einem Volume-Snapshot können Sie möglicherweise einen SSH-Schlüssel in die neue Maschine einfügen. Einige Betriebssysteme unterstützen diese Funktion, andere nicht.

Falls beim Erstellen einer Instanz aus einem bestimmten Instanz-Snapshot kein SSH-Schlüssel hinzugefügt werden kann, stellen Sie eine andere Zugriffsmöglichkeit sicher. Neben SSH und Webzugriff kommen RDP, VNC, API-Zugriff, webbasierte Werkzeuge wie Guacamole sowie SFTP/FTP infrage.

Klären Sie den Zugriff auf die Instanz, bevor Sie mit der Wiederherstellung aus dem Snapshot beginnen.

Beachten Sie dazu folgende Artikel:

Wie kann ich einen SSH-Schlüssel über die Horizon-Webkonsole hinzufügen?

Was tun, wenn der SSH-Schlüssel der VM nicht hinzugefügt oder gelöscht wurde?

Wie kann ich von der OpenStack-Konsole aus auf die VM zugreifen?

Nr. 6 Die Referenzanleitung zum Erstellen einer virtuellen Maschine befolgen

Als Referenz dient der Artikel Eine VM mit dem OpenStack-CLI-Client in der CODE-DE-Lab Cloud erstellen. Einige seiner Schritte werden hier angepasst.

Der verwendete Instanz-Snapshot muss kein Linux enthalten. In diesem Fall können Sie die Linux-spezifischen Teile des Referenzartikels überspringen.

Informationen zum Erstellen einer Instanz sammeln

Diese Schritte sind für ephemeren und persistenten Speicher identisch.

In diesem Beispiel erstellen Sie die Instanz instance-from-snapshot aus dem bereits vorhandenen Instanz-Snapshot my-instance-snapshot.

Sammeln Sie die Informationen für openstack server create wie im Referenzartikel aus Voraussetzung Nr. 6 beschrieben. Passen Sie das Vorgehen dabei wie folgt an

Schritt „Ein Image auswählen“

Der Schritt Ein Image auswählen sieht im Referenzartikel so aus:

../_images/step-create-an-image.png

Für diesen Artikel sollte Ihr Instanz-Snapshot neben anderen Images sichtbar sein, darunter:

  • standardmäßig in der CODE-DE-Lab Cloud verfügbare Images und/oder

  • selbst hochgeladene Images.

Sie erkennen ihn anhand seines Namens oder seiner ID.

Übergeben Sie ihn wie gewohnt mit dem Parameter –image.

Der Beispiel-Snapshot dieses Artikels hat die ID 56afe647-c49e-4f2d-892e-cd2c75f49ab3:

openstackcli/start_vm_instance_snapshot_cli-01_creodias.png

Daher verwenden Sie folgenden Parameter:

--image 56afe647-c49e-4f2d-892e-cd2c75f49ab3

Änderungen am Schritt „Schlüsselpaar“

Wenn Ihr Betriebssystem das Einfügen eines SSH-Schlüssels auf diese Weise unterstützt, führen Sie den Schritt Schlüsselpaar wie im Referenzartikel aus.

Andernfalls lassen Sie den Parameter –key-name und seinen Wert weg.

Eine Instanz erstellen

Nachdem Sie alle erforderlichen Informationen gesammelt haben, führen Sie den passenden Befehl openstack server create wie im Referenzartikel aus Voraussetzung Nr. 6 aus.

In diesem Beispiel sieht der Befehl wie folgt aus. Verwenden Sie stattdessen Ihre eigenen Parameter.

openstack server create \
--image 56afe647-c49e-4f2d-892e-cd2c75f49ab3 \
--flavor eo1.small \
--network cloud_00734_1 \
--network eodata \
--security-group allow_ping_ssh_icmp_rdp \
--security-group default \
instance-from-snapshot
openstackcli/start_vm_instance_snapshot_cli-02_creodias.png

Prüfen Sie mit openstack server list, ob die Instanz korrekt erstellt wurde. Die Ausgabe sollte Ihre Instanz sowie gegebenenfalls weitere Instanzen enthalten:

openstackcli/start_vm_instance_snapshot_cli-03_creodias.png

Ihr Status sollte ACTIVE lauten. Die VM ist dann betriebsbereit. Bei einem anderen Status wie BUILD führen Sie openstack server list erneut aus, gegebenenfalls mehrfach, bis ACTIVE angezeigt wird.

Der Status ERROR bedeutet, dass beim Erstellen der Instanz ein Fehler aufgetreten ist. Die Untersuchung solcher Fehler wird in diesem Artikel nicht behandelt.

Mögliche Probleme beim Wiederherstellen einer Instanz aus einem Snapshot

Ungeeignete Flavors

Wenn der gewählte Flavor nicht genügend Ressourcen wie Speicherplatz bietet, kann die Instanz möglicherweise nicht erstellt werden, schlechter als zuvor laufen oder gar nicht starten.

Falsche oder fehlende Netzwerke

Das gewünschte Netzwerk oder Subnetz kann fehlen, gelöscht, umbenannt oder bei der Wiederherstellung nicht ausgewählt worden sein.

Ohne Netzwerkverbindung ist die wiederhergestellte Instanz möglicherweise nicht erreichbar oder kann nicht auf benötigte Ressourcen wie Datenbanken zugreifen.

Nicht verbundene Volumes

Verbundene Volumes sind üblicherweise nicht im Instanz-Snapshot enthalten. Weitere Informationen finden Sie unter Voraussetzung Nr. 3.

Ohne diese Volumes können die zu verarbeitenden Daten fehlen oder andere Teile unvollständig sein.

Verlust von Metadaten oder Konfigurationsdaten

Benutzerdefinierte Metadaten, User-Data-Skripte und besondere Konfigurationseinstellungen müssen nach der Wiederherstellung möglicherweise erneut angewendet werden.

Andernfalls können Anwendungen fehlerhaft reagieren oder gar nicht starten.

Geänderte IP-Adressen

Die wiederhergestellte Instanz kann eine andere IP-Adresse erhalten. Dadurch können Verbindungen und Zugriffsmöglichkeiten verloren gehen.

Dies kann sich durch defekte Links, unterbrochene Kommunikation oder ausgefallene Dienste äußern, wenn diese von statischen IP-Adressen abhängen.

Unpassende Quotas und Ressourcen

Die Quotas und Grenzwerte für die neue Instanz können von denen der alten Instanz abweichen.

Die Instanz wird erst erstellt, nachdem die Quotas angepasst wurden.

Ausgefallene externe Dienste

Die Instanz kann von externen Datenbanken, externem Speicher oder anderen externen Diensten abhängen. Diese werden möglicherweise nicht automatisch mit der Instanz wiederhergestellt.

In diesem Fall sind die vorgesehenen Dienste der Instanz nicht verfügbar oder funktionieren nicht korrekt.

Inkonsistenter Snapshot-Zustand

Es wird empfohlen, die Instanz zuerst herunterzufahren und erst danach ihren Snapshot zu erstellen. Wurde der Snapshot bei laufender Instanz erstellt, können Daten verloren gehen oder beschädigt werden.

Dies kann Anwendungsfehler, Datenverlust oder Systeminstabilität verursachen.

Inkompatible Umgebungen

Die Instanz kann fehlerhaft oder gar nicht funktionieren, wenn sie Treiber oder andere Software enthält, die mit der aktuellen Umgebung, dem Flavor oder der Cloud nicht kompatibel sind.

Volumes bei persistentem Speicher überprüfen

Überspringen Sie diesen Abschnitt, wenn Ihre Instanz ephemeren Speicher verwendet.

Falls die ursprüngliche Instanz persistenten Speicher verwendete, sollten ihre verbundenen Volumes beim Erstellen einer Instanz aus dem Snapshot wiederhergestellt werden. Prüfen Sie nun, ob dies erfolgt ist.

Üblicherweise zeigt openstack server show detaillierte Instanzinformationen an. Hier begrenzen Sie die Ausgabe mit -c auf die mit der VM verbundenen Volumes.

Zeigen Sie die mit Ihrer Instanz verbundenen Volumes mit folgendem Befehl an. Ersetzen Sie f0734a16-60f5-4ce1-a774-2e86f7f2a6f6 durch die ID Ihrer Instanz:

openstack server show f0734a16-60f5-4ce1-a774-2e86f7f2a6f6 -c volumes_attached
openstackcli/start_vm_instance_snapshot_cli-04_creodias.png

Üblicherweise zeigt openstack server show detaillierte Instanzinformationen an. Hier ist die Ausgabe auf die verbundenen Volumes beschränkt.

Das Feld volumes_attached enthält zwei Volumes mit kommagetrennten Angaben für jedes Volume.

In der Spalte Value sehen Sie für jedes verbundene Volume zwei durch Kommas getrennte Werte.

Das boolesche Feld delete_on_termination bedeutet:

  • True: Beim Löschen der Instanz wird auch das Volume gelöscht

  • False: Beim Löschen der Instanz wird dieses Volume nicht automatisch mitgelöscht

Das Feld id enthält die ID des Volumes.

In diesem Beispiel wird keines der verbundenen Volumes gelöscht, da delete_on_termination in beiden Fällen den Wert false hat.

Falls einige Volumes nicht wiederhergestellt wurden, sind ihre zugehörigen Volume-Snapshots möglicherweise nicht mehr vorhanden.

Beachten Sie, dass das Komma in diesem Teil der Ausgabe die Eigenschaften eines Volumes trennt und nicht die Angaben verschiedener Volumes.

Beachten Sie außerdem, dass Instanz-Snapshots die Namen der Volumes nicht beibehalten.

Detaillierte Informationen zu jedem Volume erhalten Sie mit folgendem Befehl. Ersetzen Sie 3625f8fd-2837-4168-b361-ffa893a3ab17 durch die ID Ihres Volumes:

openstack volume show 3625f8fd-2837-4168-b361-ffa893a3ab17
openstackcli/start_vm_instance_snapshot_cli-05_creodias.png

Nächste Schritte

Wenn Sie eine virtuelle Maschine aus einem Instanz-Snapshot über das Horizon-Dashboard statt über die OpenStack CLI erstellen möchten, lesen Sie Wie kann man eine VM aus einer Schattenkopie mit dem Horizon-Dashboard auf CODE-DE-Lab starten?

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