Mit einem Skript tägliche, wöchentliche und monatliche rotierende VM-Backups auf CODE-DE-Lab erstellen

Rotierende Backups sind eine OpenStack-Backup-Strategie, bei der ältere Backups automatisch entfernt werden, sobald eine festgelegte Anzahl erreicht ist. Dadurch wächst der Backup-Speicherbedarf nicht unbegrenzt, während eine ausgewählte Anzahl aktueller Backups für die Wiederherstellung verfügbar bleibt.

Backup-Erstellung und Image-Erstellung im Vergleich

Unter OpenStack gibt es zwei gängige Möglichkeiten, Backups zu erstellen:

  • openstack server backup create

  • openstack server image create

Sie verhalten sich unterschiedlich.

Vergleich der Befehle zur Backup- und Image-Erstellung

Eigenschaft

openstack server backup create

openstack server image create

Zuordnung zur VM

Zuordnung über die Image-Eigenschaft backup.

Zuordnung über den Backup-Namen.

Rotationsunterstützung

Rotation mit –backup-type und inkrementellen Backups.

Keine integrierte Rotationsunterstützung.

Einordnung in Horizon

Als image gekennzeichnet.

Als snapshot gekennzeichnet.

Horizon Select Boot Source

Instance Snapshot wählen.

Image wählen.

Zweck

Hauptsächlich für rotierbare und verwaltbare Backups.

Erstellt einen einzelnen VM-Snapshot ohne Rotation.

Mehrere rotierende Zeitpläne

Nein, nur einer.

Ja, beispielsweise täglich, wöchentlich und monatlich.

Unterstützung inkrementeller Backups

Ja.

Nein, erstellt immer einen vollständigen Snapshot.

Geeigneter Anwendungsfall

Automatisierte Backup-Strategien mit integrierter Rotation.

Den aktuellen VM-Zustand zum Klonen oder Zurücksetzen erfassen.

Per Skript steuerbar?

Ja.

Ja.

In diesem Artikel erstellen Sie mehrere rotierende Backup-Serien mit einem Skript, das mehrere OpenStackClient-Befehle verwendet.

Voraussetzungen

Nr. 1 Konto

Sie benötigen ein Hosting-Konto bei CODE-DE-Lab mit Zugriff auf die Horizon-Oberfläche: https://tenant-manager.code-de.org.

Nr. 2 Eine VM, die gesichert werden soll

Sie benötigen eine virtuelle Maschine zum Sichern. Falls noch keine vorhanden ist, können Sie sie anhand eines dieser Artikel erstellen:

Wie Sie eine virtuelle Windows-Maschine erstellen, erfahren Sie in diesem Artikel:

Wie man eine Windows Server-VM erstellt und vom Windows-Desktop aus auf sie zugreift auf CODE-DE-Lab

In diesem Artikel heißt die zu sichernde virtuelle Maschine vm-to-backup. Ersetzen Sie diesen Namen durch den Namen Ihrer eigenen virtuellen Maschine, wo dies erforderlich ist.

Dieser Artikel behandelt das Sichern virtueller Maschinen, die:

  • keine verbundenen Volumes haben,

  • ephemeren statt persistenten Speicher verwenden.

Weitere Informationen finden Sie in Flüchtiger vs. persistenter Speicher (Option „Neues Volume erstellen“).

Nr. 3 Ein Server oder Computer für den Backup-Prozess

Sie benötigen eine Umgebung, in der die Backup-Befehle ausgeführt werden.

In diesem Artikel verwendet diese Umgebung Ubuntu 24.04 LTS und heißt backing-server. Dies kann unter anderem sein:

  • eine virtuelle Maschine in der CODE-DE-Lab Cloud,

  • Ihr eigener physischer Server,

  • eine virtuelle Maschine außerhalb der CODE-DE-Lab Cloud.

Stellen Sie sicher, dass diese Umgebung eine Verbindung zur CODE-DE-Lab Cloud herstellen kann.

Die Umgebung muss laufen, wenn ein neues Backup erstellt werden soll.

Nr. 4 OpenStackClient auf backing-server installiert

Auf backing-server muss OpenStackClient installiert sein.

Wie installiert man den OpenStackClient (Linux)?

Nr. 5 Anwendungszugangsdaten

In diesem Artikel wird der Backup-Vorgang automatisiert. Daher sollte die Authentifizierung ebenfalls automatisiert sein.

Verwenden Sie dafür Anwendungszugangsdaten, gespeichert in clouds.yml als Konfigurationsdatei.

Folgen Sie So erzeugen und verwenden Sie Anwendungsinformationen über CLI auf CODE-DE-Lab, um eine Datei clouds.yml mit Ihren Anwendungszugangsdaten zu erstellen.

Kopieren Sie clouds.yml nach backing-server. Nach der Installation sucht openstack standardmäßig an folgenden Speicherorten nach clouds.yml:

  • $HOME/.config/openstack/clouds.yml

  • /etc/openstack/clouds.yml

Sie können clouds.yml an einem dieser Speicherorte ablegen. Anschließend können Sie die Zugangsdaten aus jedem Verzeichnis verwenden.

$HOME ist die Umgebungsvariable, die üblicherweise auf Ihr Benutzerverzeichnis verweist.

Sie können clouds.yml auch in einem anderen Verzeichnis ablegen. Dann müssen Sie openstack aus diesem Verzeichnis ausführen oder OpenStackClient den Pfad zu dieser Datei ausdrücklich angeben.

Wichtig

Die Datei clouds.yml speichert Zugangsdaten im Klartext. Stellen Sie sicher, dass ihr Speicherort ausreichend geschützt ist.

Die Datei clouds.yml kann mehrere Zugangsprofile enthalten. Wählen Sie das von OpenStackClient verwendete Profil mit –os-cloud. In diesem Artikel dient backup_test als beispielhafter Profilname.

Auf CODE-DE-Lab können Anwendungszugangsdaten für mehrere Regionen gelten. Die Region wird mit –os-region ausgewählt.

Definieren Sie für die Beispiele dieses Artikels folgende Shell-Variablen:

OS_CLOUD_NAME="backup_test"

Verwenden Sie die Registerkarte der Region, in der Ihre virtuelle Maschine liegt:

OS_REGION_NAME="FRA1-3"

Wichtig

Diese Shell-Variablen gelten nur in der aktuellen Terminalsitzung. Wenn Sie ein neues Terminal öffnen, müssen Sie sie erneut definieren.

Listen Sie die virtuellen Maschinen Ihres Projekts auf, um Zugangsdaten und Region zu prüfen:

openstack server list \
  --os-cloud "$OS_CLOUD_NAME" \
  --os-region "$OS_REGION_NAME"

Nr. 6 Kenntnisse zu cron unter Linux

cron ist ein Standardwerkzeug unter Linux, das Aufgaben nach einem festgelegten Zeitplan ausführt. Dieser Artikel verwendet cron, um rotierende Backups zu automatisieren.

Wenn cron installiert ist, sollte folgender Befehl:

systemctl status cron

eine Ausgabe wie diese erzeugen:

../_images/install-cron-11.png

Falls cron nicht installiert ist, installieren und aktivieren Sie es:

sudo apt update
sudo apt install cron -y
sudo systemctl enable --now cron
systemctl status cron

Nr. 7 Ein Texteditor auf backing-server

Zwei verbreitete Terminal-Editoren sind vim und nano.

Installieren Sie vim:

sudo apt install vim

Oder installieren Sie nano:

sudo apt install nano

Führen Sie folgenden Befehl aus, um den Standardeditor unter Ubuntu 24.04 auszuwählen:

select-editor

Sie sollten aufgefordert werden, den Editor anhand seiner Nummer auszuwählen, beispielsweise:

Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny
  4. /bin/ed

Choose 1-4 [1]:

Wählen Sie den gewünschten Editor und drücken Sie Enter.

Der Algorithmus für rotierende Backups

Legen Sie vor dem ersten Aufruf des Backup-Skripts Folgendes fest:

Name der Backup-Serie

Beispielsweise daily, weekly oder monthly.

Rotationsgrenze

Die Anzahl aufzubewahrender Backups. In diesem Artikel heißt diese Anzahl maxN.

Bei jedem Aufruf führt das Skript folgende Schritte aus:

Backups umbenennen

Vorhandene Backups werden so umbenannt, dass ihre Nummern das neueste und das älteste Backup kennzeichnen. Backup Nummer 1 ist immer das neueste.

Das älteste Backup löschen

Wenn die Anzahl der Backups maxN überschreitet, wird das älteste Backup gelöscht.

Ein neues Backup erstellen

Ein neues Backup mit der Nummer 1 im Namen wird erstellt.

Ein Backup manuell ohne Rotation erstellen

Der Befehl openstack server image create erstellt vollständige Snapshots, bietet jedoch keinen integrierten Parameter für rotierende Backups.

Die einfachste Form des Befehls lautet:

openstack server image create \
  --name my-vm-backup \
  --os-cloud "$OS_CLOUD_NAME" \
  --os-region "$OS_REGION_NAME" \
  my-vm

Dabei gilt:

  • my-vm-backup ist der Name des Backups,

  • my-vm ist der Name Ihrer virtuellen Maschine,

  • –os-cloud wählt das Profil der Anwendungszugangsdaten,

  • –os-region wählt die Region.

So löschen Sie ein altes Image:

openstack image delete \
  --os-cloud "$OS_CLOUD_NAME" \
  --os-region "$OS_REGION_NAME" \
  my-vm-backup

Mehrere rotierende Zeitpläne

Manuelle Backup-Befehle sind fehleranfällig. Sie könnten einen Aufruf vergessen oder einen falschen VM- oder Backup-Namen verwenden.

Ein Skript kann zu festgelegten Zeiten ausgeführt werden und mehrere rotierende Backup-Serien unterstützen. Beispielsweise können Sie getrennte tägliche, wöchentliche und monatliche Serien für dieselbe virtuelle Maschine einrichten.

Das Skript dieses Artikels verwendet:

  • openstack image set zum Umbenennen vorhandener Backups,

  • openstack server image create zum Erstellen eines neuen Backups,

  • openstack image delete zum Löschen des ältesten Backups.

Jeder Backup-Name besteht aus:

  • dem Instanznamen, beispielsweise vm-to-backup,

  • einem Bindestrich,

  • dem Namen der Backup-Serie, beispielsweise weekly,

  • einem Bindestrich,

  • der Backup-Nummer von 1 bis maxN.

Beispiel:

vm-to-backup-weekly-3

Schritt 1: Ein Skript erstellen

Öffnen Sie Ihren Texteditor, erstellen Sie backup.sh und geben Sie folgendes Skript ein:

#!/bin/bash

if [[ "$#" -ne 5 ]]
then
  echo "Expecting 5 arguments: vm name, backup name, number of backups, os-cloud name, os-region name"
  exit 1
fi

vm_name=$1
backup_core_name=$1"-"$2
count=$3
os_cloud_name=$4
os_region_name=$5

reifnumber='^[0-9]+$'
if ! [[ $count =~ $reifnumber ]]
then
  echo "Given backup count is not a number"
  exit 1
fi

# Rename all previous backups by adding 1 to their number.
for i in $(seq "$count" -1 1)
do
  openstack image set \
    --name "$backup_core_name-$((i+1))" \
    "$backup_core_name-$i" \
    --os-cloud "$os_cloud_name" \
    --os-region "$os_region_name"
done

# Delete the backup whose number is greater by 1 than the rotation limit.
openstack image delete \
  "$backup_core_name-$((count+1))" \
  --os-cloud "$os_cloud_name" \
  --os-region "$os_region_name"

# Create a new backup with number 1.
openstack server image create \
  --name "$backup_core_name-1" \
  "$vm_name" \
  --os-cloud "$os_cloud_name" \
  --os-region "$os_region_name"

Diese Version übernimmt das OpenStack-Cloud-Profil und die Region als Argumente. Daher enthält das Skript keine fest hinterlegten Regionsnamen.

Speichern Sie backup.sh in Ihrem Benutzerverzeichnis.

Fügen Sie Ausführungsberechtigungen hinzu:

chmod +x backup.sh

Schritt 2: Das Skript ausführen

Testen Sie das Skript aus Ihrem Benutzerverzeichnis.

Das Skript nimmt fünf Argumente entgegen:

  • den Namen oder die ID der virtuellen Maschine, beispielsweise vm-to-backup,

  • den Namen der Backup-Serie, beispielsweise manual-backup,

  • die Anzahl aufzubewahrender Backups, beispielsweise 3,

  • den Namen des OpenStack-Cloud-Profils, beispielsweise backup_test,

  • den Namen der Region.

Führen Sie Folgendes aus:

./backup.sh vm-to-backup manual-backup 3 "$OS_CLOUD_NAME" "$OS_REGION_NAME"

Sie sollten eine Ausgabe wie diese erhalten:

openstackcli/use-script-rotating-backups-01_creodias.png

Backup-Dateien anzeigen

Die vom Skript erstellten Backup-Dateien sind Snapshots. Um alle Snapshots im Projekt aufzulisten, führen Sie Folgendes aus:

openstack image list \
  --property image_type=snapshot \
  --os-cloud "$OS_CLOUD_NAME" \
  --os-region "$OS_REGION_NAME"
openstackcli/use-script-rotating-backups-02_creodias.png

Einige Snapshots können Backups dieses Skripts sein, während andere manuell erstellt oder importiert wurden.

Verhalten des Skripts bei wiederholter Ausführung

Das folgende Beispiel zeigt, was passiert, wenn Sie das Skript mit denselben Argumenten viermal nacheinander ausführen.

Vor diesem Aufruf gibt es im Projekt keine Backups.

Das Skript versucht, vorhandene Backups umzubenennen:

Ursprüngliche Nummer

Nummer nach Umbenennung

Ergebnis

3

4

Fehlgeschlagen

2

3

Fehlgeschlagen

1

2

Fehlgeschlagen

Diese Images existieren noch nicht. Die Umbenennungen schlagen daher mit Meldungen wie No Image found fehl.

Anschließend versucht das Skript, folgendes Image zu löschen: vm-to-backup-manual-backup-4. Da es noch nicht existiert, schlägt der Löschvorgang fehl.

Zuletzt erstellt das Skript ein neues Backup mit dem Namen vm-to-backup-manual-backup-1.

Backups nach diesem Aufruf:

  • vm-to-backup-manual-backup-1

Schritt 3: Die Crontab-Datei öffnen

Verwenden Sie cron, um die rotierenden Backups zu automatisieren.

Öffnen Sie die Crontab-Datei:

crontab -e

Je nach System:

  • wird die Datei im Standardeditor geöffnet oder

  • Sie werden aufgefordert, einen Standardeditor auszuwählen.

Um den Editor nur für diesen Befehl festzulegen, verwenden Sie die Variable EDITOR.

Öffnen Sie Crontab in nano:

EDITOR=nano crontab -e

Öffnen Sie Crontab in vim:

EDITOR=vim crontab -e

Schritt 4: Die Crontab-Datei bearbeiten

Entfernen Sie frühere Backup-Zeitpläne aus dieser Datei, falls Sie diese nicht mehr benötigen.

Erstellen Sie Cron-Jobs für die gewünschten Backup-Zeitpläne.

Die Crontab-Datei kann so aussehen:

../_images/install-cron-mulitple-1.png

Speichern Sie nach der Bearbeitung die Datei und schließen Sie den Editor. Sind die Jobs korrekt definiert, werden sie nach ihren Zeitplänen ausgeführt.

Beispiele für Cron-Jobs

Täglich

10 0 * * * /home/eouser/backup.sh vm-to-backup daily_backup 5 backup_test FRA1-3

Dieser Job läuft täglich zehn Minuten nach Mitternacht. Er erstellt die Serie daily_backup für die VM vm-to-backup und behält fünf Backups.

Ersetzen Sie backup_test und FRA1-3 durch Ihr tatsächliches Cloud-Profil und Ihre Region.

Nach fünf Tagen sollte die Backup-Liste etwa so aussehen:

openstackcli/use-script-rotating-backups-03_creodias.png

Backup Nummer 1 ist das neueste und Backup Nummer 5 das älteste.

Wöchentlich

15 0 * * 1 /home/eouser/backup.sh vm-to-backup weekly_backup 4 backup_test FRA1-3

Dieser Job läuft jeden Montag 15 Minuten nach Mitternacht. Er erstellt die Serie weekly_backup und behält vier Backups.

Nach vier Wochen sollte die Backup-Liste etwa so aussehen:

openstackcli/use-script-rotating-backups-04_creodias.png

Monatlich

20 0 2 * * /home/eouser/backup.sh vm-to-backup monthly_backup 3 backup_test FRA1-3

Dieser Job läuft am zweiten Tag jedes Monats 20 Minuten nach Mitternacht. Er erstellt die Serie monthly_backup und behält drei Backups.

Nach drei Monaten sollte die Backup-Liste etwa so aussehen:

openstackcli/use-script-rotating-backups-05_creodias.png

Einschränkungen

Dieses Skript zeigt eine mögliche Methode zum Erstellen mehrerer rotierender Backup-Serien.

Sobald eine Backup-Serie vorhanden ist, führen Sie das Skript für diese Serie nicht mit einer Rotationsgrenze aus, die kleiner als die Anzahl bereits vorhandener Backups ist.

Wenn Sie beispielsweise eine VM namens my-vm und fünf wöchentliche Backups haben, dürfen Sie nicht Folgendes ausführen:

./backup.sh my-vm weekly 4 "$OS_CLOUD_NAME" "$OS_REGION_NAME"

Das Skript enthält außerdem keine erweiterte Fehlerbehandlung oder Berichterstattung. Wenn ein Backup-Vorgang fehlschlägt, beispielsweise weil die Verbindung zur OpenStack-API nicht verfügbar ist, wird die Backup-Serie möglicherweise nicht wie erwartet rotiert.

Verwenden Sie dieselbe Namenskonvention nicht für Images, die Sie manuell außerhalb dieses Skripts erstellen. Andernfalls könnte das Skript Images umbenennen oder löschen, die nicht zur rotierenden Backup-Serie gehören sollten.

Backups wiederherstellen

Die mit diesem Skript erstellten Backups sind Snapshots. Wie andere OpenStack-Images können sie verwendet werden, um:

  • neue virtuelle Maschinen zu erstellen,

  • den Festplatteninhalt einer vorhandenen virtuellen Maschine durch deren Neuaufbau zu ersetzen.

Vor der Wiederherstellung wird empfohlen, eine Kopie des Backup-Images zu erstellen. So wird verhindert, dass die rotierende Backup-Serie unerwartet unterbrochen wird, wenn das Skript das ursprüngliche Backup später umbenennt oder löscht.

Schritt 1: Größe und Namen oder ID des wiederherzustellenden Images ermitteln

Listen Sie die Snapshots Ihres Projekts auf:

openstack image list \
  --property image_type=snapshot \
  --os-cloud "$OS_CLOUD_NAME" \
  --os-region "$OS_REGION_NAME"

Wählen Sie das wiederherzustellende Backup. In diesem Beispiel heißt es my-backup2.

Notieren Sie den Namen oder die ID dieses Images.

Sie benötigen außerdem die vom Image geforderte Mindestgröße der Festplatte:

openstack image show \
  -c min_disk \
  --os-cloud "$OS_CLOUD_NAME" \
  --os-region "$OS_REGION_NAME" \
  my-backup2

Die Ausgabe sollte den Wert in GB zurückgeben:

+----------+-------+
| Field    | Value |
+----------+-------+
| min_disk | 8     |
+----------+-------+

Schritt 2: Ein Volume aus dem Image erstellen

Da OpenStack in diesem Ablauf kein Image direkt kopiert, erstellen Sie zuerst ein temporäres Volume aus dem Image:

openstack volume create \
  --image my-backup2 \
  --size 8 \
  --os-cloud "$OS_CLOUD_NAME" \
  --os-region "$OS_REGION_NAME" \
  my-backup2-volume

Dabei gilt:

  • my-backup2 ist der Name oder die ID Ihres Images,

  • 8 ist die Mindestgröße des Volumes für Ihr Image in GB,

  • my-backup2-volume ist der Name des temporären Volumes.

Das Volume hat zunächst wahrscheinlich den Status uploading. Warten Sie, bis es den Status available erreicht.

Prüfen Sie den Status:

openstack volume show \
  -c status \
  --os-cloud "$OS_CLOUD_NAME" \
  --os-region "$OS_REGION_NAME" \
  my-backup2-volume

Schritt 3: Ein Image aus dem Volume erstellen

Erstellen Sie ein Image aus dem temporären Volume:

openstack image create \
  --volume my-backup2-volume \
  --os-cloud "$OS_CLOUD_NAME" \
  --os-region "$OS_REGION_NAME" \
  my-backup2-copy

Das Image hat zunächst wahrscheinlich den Status uploading. Warten Sie, bis es den Status active erreicht.

Prüfen Sie den Status:

openstack image show \
  -c status \
  --os-cloud "$OS_CLOUD_NAME" \
  --os-region "$OS_REGION_NAME" \
  my-backup2-copy

Schritt 4: Das temporäre Volume löschen

Löschen Sie nach dem Erstellen der Image-Kopie das temporäre Volume:

openstack volume delete \
  --os-cloud "$OS_CLOUD_NAME" \
  --os-region "$OS_REGION_NAME" \
  my-backup2-volume

Die Ausgabe sollte leer sein.

Schritt 5: Das Backup wiederherstellen

Sie haben nun eine Kopie des wiederherzustellenden Backups. Das ursprüngliche Backup kann Teil der rotierenden Backup-Serie bleiben.

Wählen Sie eine der folgenden Wiederherstellungsmethoden.

Methode 1: Eine vorhandene Instanz neu aufbauen

Beim Neuaufbau einer Instanz wird der aktuelle Inhalt ihrer virtuellen Festplatte durch den Inhalt eines Images ersetzt. Metadaten wie VM-Name oder ID bleiben erhalten. Dies gilt auch für die Zuweisungen von Floating IPs.

Während dieses Vorgangs ist die virtuelle Maschine nicht verfügbar.

Warnung

Dieser Vorgang entfernt Daten von der virtuellen Maschine, auf der er ausgeführt wird. Stellen Sie sicher, dass sie keine Daten enthält, die Sie behalten müssen.

Bauen Sie die VM aus dem kopierten Image neu auf:

openstack server rebuild \
  --image my-backup2-copy \
  --os-cloud "$OS_CLOUD_NAME" \
  --os-region "$OS_REGION_NAME" \
  vm-to-backup

Sie sollten eine Ausgabe wie diese erhalten:

openstackcli/backup-command-rotating-backups-05_creodias.png

Der VM-Status sollte zu REBUILD wechseln.

Warten Sie, bis die Wiederherstellung abgeschlossen ist. Die virtuelle Maschine sollte anschließend eingeschaltet und betriebsbereit sein.

Prüfen Sie den VM-Status:

openstack server show \
  --os-cloud "$OS_CLOUD_NAME" \
  --os-region "$OS_REGION_NAME" \
  vm-to-backup

Fügen Sie -c status hinzu, um nur den Status anzuzeigen:

openstack server show \
  -c status \
  --os-cloud "$OS_CLOUD_NAME" \
  --os-region "$OS_REGION_NAME" \
  vm-to-backup
openstackcli/backup-command-rotating-backups-06_creodias.png

Bei Status ACTIVE sollte die VM betriebsbereit sein.

Methode 2: Eine neue virtuelle Maschine aus dem Backup erstellen

Mit den in diesem Ablauf erstellten Images können Sie auch eine neue virtuelle Maschine erstellen. Sie enthält die Dateien und das Betriebssystem aus dem Backup. Die ursprüngliche virtuelle Maschine bleibt davon unberührt.

Falls die ursprüngliche VM Floating IPs hatte und Sie diese weiterverwenden möchten, trennen Sie sie zuerst von der ursprünglichen VM. Die Floating IPs bleiben in Ihrem Projekt und können anschließend der neuen VM zugewiesen werden.

Folgen Sie den Anweisungen in Eine VM mit dem OpenStack-CLI-Client in der CODE-DE-Lab Cloud erstellen.

Im Abschnitt Image von Schritt 1 dieses Artikels:

openstackcli/backup-command-rotating-backups-08_creodias.png

verwenden Sie die ID des kopierten Backup-Images.

Wählen Sie im Abschnitt Flavor einen Flavor, der groß genug für das wiederhergestellte System ist. Häufig ist dies derselbe Flavor wie bei der ursprünglichen virtuellen Maschine.

Probleme und Fehlerbehebung

Bei Verwendung von:

openstack image create \
  --volume my-backup2-volume \
  --os-cloud "$OS_CLOUD_NAME" \
  --os-region "$OS_REGION_NAME" \
  my-backup2-copy

kann eine Meldung wie diese erscheinen:

VolumeManager.upload_to_image() got an unexpected keyword argument 'visibility' when trying to create an image from Volume

Dies bedeutet, dass die OpenStackClient-Version und die OpenStack-Version in der Cloud möglicherweise nicht vollständig kompatibel sind.

Eine praktische Umgehung besteht darin, OS_VOLUME_API_VERSION auf 3.1 oder einen höheren unterstützten Wert zu setzen:

export OS_VOLUME_API_VERSION=3.1

Sie können auch den Parameter –os-volume-api-version mit dem Befehl openstack image create verwenden:

openstack image create \
  --volume my-backup2-volume \
  --os-volume-api-version 3.1 \
  --os-cloud "$OS_CLOUD_NAME" \
  --os-region "$OS_REGION_NAME" \
  my-backup2-copy

Nächste Schritte

Das Skript dieses Artikels erstellt Instanz-Snapshots.

Weitere Informationen finden Sie in Wie kann man eine Schattenkopie einer VM mit Horizon auf CODE-DE-Lab erstellen.

Wenn Sie keine mehreren rotierenden Zeitpläne benötigen, ist der offizielle Befehl openstack server backup create möglicherweise die bessere Wahl.

Mit dem Backup-Befehl rotierende Backups virtueller Maschinen in der CODE-DE-Lab Cloud erstellen

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