Verschieben von Datenvolumen zwischen VMs mit OpenStack CLI auf CODE-DE

Volumes werden zum Speichern von Daten verwendet. Auf diese Daten kann von einer virtuellen Maschine aus zugegriffen werden, an die das Volume angeschlossen ist. Um von einer anderen virtuellen Maschine aus auf die auf einem Volume gespeicherten Daten zuzugreifen, müssen Sie das Volume von der virtuellen Maschine trennen, mit der es derzeit verbunden ist, und es mit einer anderen Instanz verbinden.

Dieser Artikel verwendet den OpenStack CLI-Client, um Volumes zwischen virtuellen Maschinen zu übertragen, die sich im selben Projekt befinden.

Voraussetzungen

Nr. 1 Konto

Sie benötigen ein CODE-DE Konto mit Horizon-Schnittstelle https://cloud.fra1-1.cloudferro.com/auth/login/?next=/.

Nr. 2 OpenStack CLI Client

Um den OpenStack CLI-Client verwenden zu können, muss er auf Ihrer VM installiert sein. Einer der folgenden Artikel sollte Ihnen dabei helfen:

Sie müssen auch in der Lage sein, sich bei der Cloud zu authentifizieren:

So aktivieren Sie den OpenStack CLI-Zugriff in der CODE-DE Cloud

Nr. 3 Virtuelle Maschine und Volume als Quelle

Wir gehen davon aus, dass Sie eine virtuelle Maschine haben (die wir als Quelle-VM bezeichnen), an die ein Volume angeschlossen ist.

Nr. 4 Ziel-VM

Wir gehen auch davon aus, dass Sie auf die Daten, die auf dem in Voraussetzung Nr. 3 genannten Datenträger gespeichert sind, von einer anderen Instanz aus zugreifen wollen, die sich im selben Projekt befindet - wir nennen diese Instanz Ziel virtuelle Maschine.

Was wir behandeln werden

  • Sicherstellen, dass die Übertragung möglich ist

    • Die Projekte müssen sich in derselben Cloud befinden.

    • Volume darf nicht zum Booten eines Betriebssystems verwendet werden.

    • Kompatibilität des Dateisystems.

    • Sicherstellen, dass die Quelle-VM nicht versucht, auf das Volume zuzugreifen.

    • Andere Volume- und Instanzbedingungen für eine erfolgreiche Übertragung.

  • Abrufen von Informationen über das Volume.

  • Abrufen von Informationen über die virtuellen Maschinen

  • Allgemeine Fragen zum Herunterfahren einer virtuellen Maschine

  • Herunterfahren der Quelle-VM mit OpenStack CLI

  • Trennen des Volumes

  • Anhängen des Volumes an die virtuelle Maschine Ziel

Einige Teile der Screenshots in diesem Artikel sind aus Gründen des Datenschutzes ausgegraut.

Sicherstellen, dass die Übertragung möglich ist

Vor der eigentlichen Übertragung müssen Sie den Zustand des Datenträgers und der Instanzen prüfen und entscheiden, ob die Übertragung sofort möglich ist oder ob Sie zunächst andere Operationen durchführen sollten:

Projekte müssen sich auf derselben Cloud befinden

Wenn sich die Projekte nicht in derselben Cloud befinden, verwenden Sie nicht diesen Artikel, sondern lesen Sie stattdessen einen der folgenden Artikel:

Volume darf nicht zum Booten eines Betriebssystems verwendet werden

Wenn ein Volume nicht zum Booten eines Betriebssystems auf einer virtuellen Maschine verwendet wird, ist diese Anforderung erfüllt.

Wenn ein Volume jedoch zum Booten eines Betriebssystems verwendet wird, können Sie es in ein reguläres Volume konvertieren.

Die Konvertierung eines Boot-Volumes in ein reguläres Volume, ermöglicht die Rettung von Daten für den Fall, dass das Betriebssystem auf dem Volume nicht mehr funktioniert. Verbinden Sie einfach die reguläre Version dieses Volumes mit einer anderen virtuellen Maschine und kopieren Sie die Daten.

Wenn Sie dieses Volume konvertiert haben und alle anderen im Abschnitt Sicherstellen, dass die Übertragung möglich ist aufgeführten Bedingungen erfüllt sind, müssen Sie das Volume nicht von der virtuellen Maschine trennen und können die diesen Vorgang betreffenden Teile des Artikels ignorieren.

Kompatibilität der Dateisysteme

Um auf die Daten zugreifen zu können, muss das Dateisystem auf dem Volume mit dem Dateisystem in der Ziel-VM kompatibel sein.

Am einfachsten ist es, wenn das NTFS-Dateisystem verwendet wird, da sowohl Windows als auch Linux auf Daten in diesem Format zugreifen können. Dies ist nicht immer garantiert, so dass Sie möglicherweise zusätzliche Treiber für die Kompatibilität installieren müssen.

Beachten Sie auch, dass Windows das Format ext4, ein unter Linux häufig verwendetes Dateisystem, standardmäßig nicht unterstützt.

Sicherstellen, dass die Quelle-VM nicht versucht, auf das Volume zuzugreifen

Sie müssen sicherstellen, dass die Quelle-VM nicht erneut versucht, auf das Volume zuzugreifen.

Die genauen Schritte sind von Betriebssystem zu Betriebssystem unterschiedlich und werden hier nicht behandelt. Sie können unter anderem Folgendes beinhalten:

  • Entfernen des Volumes aus der /etc/fstab-Datei.

  • Entfernen der systemd .mount Datei.

Weitere Bedingungen für die erfolgreiche Übertragung von Volumen und Instanzen

Das Volume muss:

  • mit einer virtuellen Maschine verbunden sein,

  • den Status in-use haben und keinen anderen Status wie z.B. error und

  • darf nicht von einer Instanz verwendet werden, um ein Betriebssystem davon zu starten.

Die Instanz muss:

  • entweder ein- oder ausgeschaltet sein und

  • darf sich nicht in einem anderen Status wie Fehler, abgelegt oder pausiert befinden.

Weitere Informationen über die verschiedenen Zustände, in denen sich eine virtuelle Maschine befinden kann, finden Sie unter Status, Power State und Abhängigkeiten in der Abrechnung einer Instanz (VMs)

Im Folgenden wird beschrieben, wie das Volume von der Quelle-VM auf die Ziel-VM desselben Projekts übertragen wird, wenn alle obigen Bedingungen erfüllt sind.

Abrufen von Informationen über das Volumen

Führen Sie diesen Befehl aus, um Volumes aufzulisten:

openstack volume list

Für jedes Volume sollten Sie die ID, den Namen, die Information, an welche virtuelle Maschine es angeschlossen ist, usw. sehen:

../_images/how-to-move-data-volume-cli-12_creodias.png

In diesem Beispiel sehen wir, dass das zu verschiebende Volume, genannt Volume-to-move, an eine virtuelle Maschine namens previous-vm (orangefarbenes Rechteck) angeschlossen ist. Seine ID, die mit einem roten Rechteck markiert ist, lautet wie folgt: 851a3a86-d569-44e4-8c17-f3907af88500.

Weitere Informationen, die hier angezeigt werden, sind der Status des Datenträgers (hier mit einem grünen Rechteck gekennzeichnet).

Notieren Sie sich die ID des Volumes, das Sie verschieben möchten, da Sie diese später benötigen.

Abrufen von Informationen über die virtuellen Maschinen

Führen Sie diesen Befehl aus, um Server aufzulisten:

openstack server list

Sie sollten die Liste Ihrer virtuellen Maschinen sehen:

../_images/how-to-move-data-volume-cli-31_creodias.png

In diesem Beispiel wollen wir das Volume von der Quelle-VM verschieben, die hier previous-vm genannt wird. Ihre ID lautet b9f2017b-d8f2-420d-a0cb-36867228f17e - auf dem Screenshot ist sie mit einem roten Rechteck markiert. Die Ziel-VM wird newer-vm genannt. Ihre ID lautet 97018102-1706-43e3-933b-60e29b299a73 und ist mit einem grünen Rechteck gekennzeichnet.

Notieren Sie sich irgendwo die IDs der beiden virtuellen Maschinen Quelle und Ziel - Sie werden sie später benötigen.

Überprüfen Sie den Status der Quelle-VM (im Screenshot ist sie mit einem orangefarbenen Rechteck markiert). Wenn er SHUTOFF ist, überspringen Sie den Abschnitt Ausschalten der virtuellen Maschine und fahren Sie direkt mit dem Abschnitt Volumen trennen fort.

Wenn der Status der Quellvirtuellen Maschine jedoch **ACTIV* ist, wie auf dem Screenshot oben, fahren Sie mit dem Abschnitt Ihre virtuelle Maschine herunterfahren fort.

Allgemeine Bemerkungen zum Herunterfahren einer virtuellen Maschine

Das Volume und die zugehörige virtuelle Maschine sind miteinander verbunden, so dass bei einer abrupten Unterbrechung einige Daten auf dem Volume verloren gehen können. Um auf Nummer sicher zu gehen, sollten Sie zuerst die virtuelle Maschine der Quelle herunterfahren.

Es gibt zwei Möglichkeiten, eine virtuelle Maschine herunterzufahren:

Mit OpenStack-Befehlen

OpenStack fordert Ihre virtuelle Maschine zunächst zum Herunterfahren auf. Wenn die virtuelle Maschine dies nicht tut, erzwingt OpenStack nach einer bestimmten Zeitspanne das Ausschalten der Maschine.

Verwendung des Betriebssystems der VM

In seltenen Fällen kann ein solches erzwungenes Ausschalten zu Datenverlusten führen. Die Alternative ist die Verwendung nativer Befehle des jeweiligen Betriebssystems. Die technischen Details würden jedoch den Rahmen dieses Artikels sprengen.

Herunterfahren der virtuellen Quellmaschine mit OpenStack CLI

Überspringen Sie diesen Abschnitt, wenn Sie Ihre virtuelle Maschine mit den Funktionen des Betriebssystems herunterfahren möchten, das auf der Quelle-VM installiert ist.

Der OpenStack CLI-Befehl zum Herunterfahren der VM lautet

openstack server stop b9f2017b-d8f2-420d-a0cb-36867228f17e

Es versteht sich von selbst, dass Sie b9f2017b-d8f2-420d-a0cb-36867228f17e durch die ID der virtuellen Maschine Quelle ersetzen sollten.

Die Ausgabe dieses Befehls sollte leer sein.

Listen Sie anschließend die Server auf, möglicherweise mehrmals, bis Ihre virtuelle Maschine den folgenden Status hat (auf dem Screenshot unten durch ein orangefarbenes Rechteck gekennzeichnet): SHUTOFF.

openstack server list
../_images/how-to-move-data-volume-cli-32_creodias.png

Trennen des Volumens

Um das Volume zu trennen, führen Sie den Befehl openstack server remove volume aus, gefolgt von der ID der virtuellen Maschine Quelle und der ID des Volumes. Achten Sie darauf, diese Werte durch Leerzeichen zu trennen.

In diesem Beispiel lautet der Befehl:

openstack server remove volume b9f2017b-d8f2-420d-a0cb-36867228f17e 851a3a86-d569-44e4-8c17-f3907af88500

Wenn der Vorgang erfolgreich war, sollte die Ausgabe leer sein. Um dies zu überprüfen, führen Sie folgenden Befehl aus:

openstack volume list
../_images/how-to-move-data-volume-cli-13_creodias.png

Ihr Volume sollte den folgenden Status haben (auf dem Screenshot oben durch ein rotes Rechteck gekennzeichnet): available. Außerdem sollte in der Spalte Attached to kein Wert vorhanden sein (dieses Feld wurde mit einem grünen Rechteck markiert).

Anhängen des Volumes an die Ziel-VM

Führen Sie den Befehl openstack server add volume –disable-delete-on-termination aus, gefolgt von der ID der virtuellen Maschine Ziel und der ID des Volumes, das Sie hinzufügen möchten. Denken Sie daran, diese Werte durch Leerzeichen zu trennen.

In diesem Beispiel lautet der Befehl wie folgt:

openstack server add volume --disable-delete-on-termination 97018102-1706-43e3-933b-60e29b299a73 851a3a86-d569-44e4-8c17-f3907af88500

Wenn der Vorgang erfolgreich war, sollten Sie eine ähnliche Ausgabe wie diese erhalten:

../_images/how-to-move-data-volume-cli-14_creodias.png

Um dies zu überprüfen, führen Sie den Befehl openstack volume list erneut aus:

../_images/how-to-move-data-volume-cli-15_creodias.png

Der Status des Volumes sollte nun in-use sein und die Spalte Attached to sollte die entsprechenden Informationen darüber enthalten, an welche virtuelle Maschine Ihr Volume angeschlossen wurde.

Was als nächstes zu tun ist

Nachdem das Volume mit der Ziel-VM verbunden wurde, können Sie den Zugriff auf das Volume von dieser virtuellen Maschine aus erlauben bzw. vereinfachen. Dies kann Folgendes beinhalten:

  • Zuweisung eines Laufwerksbuchstabens für das Volume (im Falle von Windows)

  • Erstellen eines Mount-Punkts und Hinzufügen des Volumes zur Datei /etc/fstab (im Falle von Linux)

Das Volume kann auch über das Horizon Dashboard verschoben werden:

Wie übertragen Sie Volumes zwischen Domänen und Projekten mit Horizon Dashboard auf CODE-DE.