HowTo: Rescue Mode
Eine bestehende VM in eine Rettungsumgebung starten
Der Rescue Mode in OpenStack ist eine Funktion, mit der eine bestehende VM in eine Rettungsumgebung gestartet werden kann. Dabei wird die eigentliche System-Disk der VM nicht normal gebootet, sondern als zusätzliches Volume an ein separates Rescue-System angebunden. So kann auf das Filesystem der betroffenen VM zugegriffen werden, ohne dass das eigentliche Betriebssystem regulär laufen muss. Das ist besonders hilfreich, wenn eine VM sich nicht mehr korrekt starten lässt oder man sich durch einen Konfigurationsfehler ausgesperrt hat.
Typische Einsatzszenarien
- Die VM startet nicht mehr (fehlerhaftes Update, Bootloader-Problem, …)
- Ein Password oder SSH-Schlüssel muss offline angepasst werden
- Reparatur des Dateisystems erforderlich
- Wichtige Daten sollen aus einer nicht mehr bootfähigen VM gesichert werden
VM in Rescue Mode versetzen
Der erste Schritt besteht darin, die betroffene VM in den Rescue Mode zu versetzen. Dies kann entweder über die Weboberfläche (Horizon) oder über die Kommandozeile (OpenStack CLI) geschehen.
Für den Rescue Mode steht ein vorbereitetes Image auf Ubuntu-Basis in der OpenCloud zur Verfügung.
Image-Name: TxX-Rescue-Image
Dieses Image sollte unbedingt beim aktivieren des Rescue Mode ausgewählt werden.
Über Horizon
-
In Horizon zu Project → Compute → Instances wechseln
-
Die betroffene Instanz in der Liste suchen
-
Im Dropdown-Menü der Instanz Rescue Instance auswählen
-
Das Image
TxX-Rescue-Imageauswählen und bestätigen.
-
Warten, bis die Instanz den Status Rescue erreicht hat.
Über OpenStack CLI
- Name oder ID der betroffenen VM ermitteln
Beispiel:
openstack server listopenstack server list +--------------------------------------+--------------+ | ID | Name | +--------------------------------------+--------------+ | 04f4b416-c8e7-4aa2-a451-78513e0cd0ff | my-server-01 | | 34b7f5c4-4072-4922-a3a2-7f66220e33d3 | my-server-02 | | dcb4e488-7437-4c69-9458-3615a044d140 | my-server-03 | +--------------------------------------+--------------+ - VM in Rescue Mode versetzen
Beispiel:
openstack server rescue --image TxX-Rescue-Image VM-NAME-ODER-IDopenstack server rescue --image TxX-Rescue-Image my-server-01 - Status prüfen
Beispiel:
openstack server show VM-NAME-ODER-IDDer Status sollte anschließend auf RESCUE stehen.openstack server show my-server-01 +--------+--------------------------------------+ | Field | Value | +--------+--------------------------------------+ | id | 04f4b416-c8e7-4aa2-a451-78513e0cd0ff | | name | my-server-01 | | status | RESCUE | +--------+--------------------------------------+
Zugriff auf VM im Rescue Mode
Beim Start in den Rescue Mode bootet die VM nicht in ihr ursprüngliches Betriebssystem, sondern in ein separates, Ubuntu-basiertes Rescue Image. Dadurch unterscheidet sich auch der Zugriff von einem normalen Login auf die VM.
Für das Rescue-System wird beim Start automatisch ein zufälliges Passwort generiert. Dieses Passwort wird auf der Konsole ausgegeben und muss dort ausgelesen werden. SSH-Login per Passwort ist standardmäßig nicht möglich.
Der Login erfolgt über die Konsole der VM in der Horizon-Weboberfläche.
-
In Horizon zu Project → Compute → Instances wechseln
-
Die betroffene VM in der Liste auswählen (auf den Namen klicken)
-
Es öffnet sich die Web-Konsole der Instanz
-
Mit dem angezeigten Benutzernamen (ubuntu) und Passwort einloggen
Arbeiten im Rescue-System
Nach dem Start im Rescue Mode muss die ursprüngliche System-Disk der VM identifiziert und eingebunden werden.
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 10G 0 disk
├─sda1 8:1 0 9.9G 0 part
├─sda14 8:14 0 3M 0 part
└─sda15 8:15 0 124M 0 part
vda 253:0 0 10G 0 disk
├─vda1 253:1 0 9G 0 part /
├─vda14 253:14 0 4M 0 part
├─vda15 253:15 0 106M 0 part /boot/efi
└─vda16 259:0 0 913M 0 part /bootJe nach Typ der VM können Gerätenamen und Partitionen abweichen. In obigen Beispiel ist /dev/sda1 die relevante System-Partition der ursprünglichen Instanz.
Mit folgendem Befehl wird die Partition unter dem Zielverzeichnis /mnt eingehängt:
sudo mount /dev/sda1 /mntAnschließend kann auf das Dateisystem der ursprünglichen Instanz zugegriffen werden – in dem Fall handelt es sich offenkundig um ein Linux-System:
ls /mnt
bin boot dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr varDie weiteren Schritte hängen von der konkreten Problemstellung ab. Typische Arbeiten im Rescue-System sind zum Beispiel:
- Konfigurationsdateien korrigieren
- Bootloader reparieren
- Filesystem überprüfen
- Daten sichern
- Logs prüfen
- Passwort zurücksetzen
- SSH-Schlüssel hinterlegen
Rescue Mode beenden
Über Horizon
-
In Horizon zu Project → Compute → Instances wechseln
-
Die Instanz im Rescue Mode in der Liste suchen
-
Im Dropdown-Menü der Instanz Unrescue Instance auswählen
Sobald die VM erfolgreich aus dem Rescue Mode zurückgeholt wurde, wechselt ihr Status wieder auf Active.
Daran lässt sich erkennen, dass die Instanz wieder regulär in ihrem ursprünglichen System gestartet wurde.
Über OpenStack CLI
Die VM per Name oder ID in den normalen Betriebsmodus zurückversetzen:
openstack server unrescue VM-NAME-ODER-IDBeispiel:
openstack server unrescue my-server-01Der Status kann auch per CLI kontrolliert werden:
openstack server show VM-NAME-ODER-IDBeispiel:
+--------+--------------------------------------+
| Field | Value |
+--------+--------------------------------------+
| id | 04f4b416-c8e7-4aa2-a451-78513e0cd0ff |
| name | demo |
| status | ACTIVE |
+--------+--------------------------------------+Nach erfolgreichem unrescue sollte dort der Status ACTIVE angezeigt werden und die Instanz wieder regulär in ihr ursprüngliches System booten.
Fazit
Der Rescue Mode der OpenCloud ist ein praktisches Mittel, um eine nicht mehr bootfähige VM zu analysieren, zu reparieren oder Daten zu sichern. Durch das Booten in ein separates Rescue Image kann auf die ursprüngliche System-Disk zugegriffen und gezielt an Konfigurationen oder Dateien gearbeitet werden.
Updated about 3 hours ago
