Datenschutz für VMs in Red Hat OpenShift Virtualization mithilfe der OpenShift API für Datenschutz (OADP)
OpenShift API for Data Protection (OADP) mit Velero bietet Sicherungs-, Wiederherstellungs- und Notfallwiederherstellungsfunktionen für VMs in OpenShift Virtualization. Verwenden Sie Trident CSI-Snapshots, um persistente Volumes und VM-Metadaten auf NetApp ONTAP S3 oder StorageGRID S3 zu sichern. OADP lässt sich in Velero-APIs und CSI-Speichertreiber integrieren, um Datenschutzvorgänge für containerisierte VMs zu verwalten.
Virtuelle Maschinen in der OpenShift-Virtualisierungsumgebung sind containerisierte Anwendungen, die in den Worker-Knoten Ihrer OpenShift-Containerplattform ausgeführt werden. Es ist wichtig, die VM-Metadaten sowie die persistenten Datenträger der VMs zu schützen, damit Sie sie wiederherstellen können, wenn sie verloren gehen oder beschädigt werden.
Die persistenten Festplatten der OpenShift Virtualization VMs können durch ONTAP Speicher gesichert werden, der in den OpenShift-Cluster integriert ist, indem"Trident CSI" . In diesem Abschnitt verwenden wir"OpenShift-API für Datenschutz (OADP)" zur Durchführung von Backups von VMs inklusive der Datenvolumes auf
-
ONTAP Objektspeicher
-
StorageGrid
Bei Bedarf stellen wir dann eine Wiederherstellung aus dem Backup her.
OADP ermöglicht die Sicherung, Wiederherstellung und Notfallwiederherstellung von Anwendungen auf einem OpenShift-Cluster. Zu den Daten, die mit OADP geschützt werden können, gehören Kubernetes-Ressourcenobjekte, persistente Volumes und interne Images.

Red Hat OpenShift hat die von den Open-Source-Communities entwickelten Lösungen für den Datenschutz genutzt. "Velero" ist ein Open-Source-Tool, um Kubernetes-Clusterressourcen und persistente Volumes sicher zu sichern und wiederherzustellen, Disaster Recovery durchzuführen und Migrationen vorzunehmen. Um Velero einfach zu nutzen, hat OpenShift den OADP Operator und das Velero-Plugin entwickelt, um die Integration mit den CSI-Speichertreibern zu ermöglichen. Der Kern der bereitgestellten OADP-APIs basiert auf den Velero-APIs. Nach der Installation und Konfiguration des OADP Operators basieren die durchführbaren Backup- und Restore-Operationen auf den von der Velero-API bereitgestellten Funktionen.

OADP 1.3 ist im Operator Hub des OpenShift-Clusters 4.12 und höher verfügbar. Es verfügt über einen integrierten Data Mover, der CSI-Volume-Snapshots in einen Remote-Objektspeicher verschieben kann. Dies sorgt für Portabilität und Haltbarkeit, indem Snapshots während der Sicherung an einen Objektspeicherort verschoben werden. Die Snapshots stehen dann nach Katastrophen zur Wiederherstellung zur Verfügung.
Im Folgenden sind die verschiedenen Komponenten aufgeführt, die in den Beispielen dieses Abschnitts verwendet werden
-
OpenShift Cluster 4.14
-
OpenShift-Virtualisierung installiert über OpenShift Virtualization Operator, bereitgestellt von Red Hat
-
OADP Operator 1.3, bereitgestellt von Red Hat
-
Velero CLI für Linux
-
Trident 24.02 CSI Treiber für ONTAP
-
ONTAP 9.12
Erstellen Sie On-Demand-Backups für VMs in Red Hat OpenShift Virtualization mit Velero
Sichern Sie VMs in OpenShift Virtualization mit Velero und NetApp ONTAP S3 oder StorageGRID. Dieses Verfahren umfasst das Erstellen von benutzerdefinierten Backup-Ressourcen (CRs) für On-Demand-Backups und von geplanten CRs für geplante Backups. Bei jeder Sicherung werden VM-Metadaten und persistente Volumes erfasst und zu Wiederherstellungs- oder Compliance-Zwecken am angegebenen Objektspeicherort gespeichert.
Schritte zum Erstellen einer Sicherung einer VM
Um ein On-Demand-Backup der gesamten VM (VM-Metadaten und VM-Datenträger) zu erstellen, klicken Sie auf die Registerkarte Backup. Dadurch wird eine benutzerdefinierte Backup-Ressource (CR) erstellt. Zum Erstellen des Backup-CR wird ein YAML-Beispiel bereitgestellt. Mit diesem YAML werden die VM und ihre Festplatten im angegebenen Namespace gesichert. Weitere Parameter können wie in der Abbildung gezeigt eingestellt werden."Dokumentation" .
Ein Snapshot der persistenten Volumes, die die Festplatten unterstützen, wird vom CSI erstellt. Es wird eine Sicherung der VM zusammen mit dem Snapshot ihrer Festplatten erstellt und am im YAML angegebenen Sicherungsspeicherort gespeichert. Das Backup bleibt gemäß TTL 30 Tage lang im System.
apiVersion: velero.io/v1 kind: Backup metadata: name: backup1 namespace: openshift-adp spec: includedNamespaces: - virtual-machines-demo snapshotVolumes: true storageLocation: velero-demo-1 ##velero-demo-1 is the backupStorageLocation ##previously created when Velero is configured. ttl: 720h0m0s
Sobald die Sicherung abgeschlossen ist, wird ihre Phase als abgeschlossen angezeigt.

Sie können das Backup im Objektspeicher mithilfe einer S3-Browseranwendung überprüfen. Der Pfad des Backups wird im konfigurierten Bucket mit dem Präfixnamen (velero/demobackup) angezeigt. Sie können sehen, dass der Inhalt der Sicherung die Volume-Snapshots, Protokolle und andere Metadaten der virtuellen Maschine umfasst.
|
|
In StorageGrid können Sie zum Anzeigen der Sicherungsobjekte auch die S3-Konsole verwenden, die über den Tenant Manager verfügbar ist. |

Erstellung geplanter Backups
Um Backups nach einem Zeitplan zu erstellen, muss ein Schedule CR erstellt werden. Der Zeitplan ist einfach ein Cron-Ausdruck, mit dem die Uhrzeit für die Erstellung des Backups festgelegt werden kann. Ein Beispiel-YAML zur Erstellung eines Schedule CR.
apiVersion: velero.io/v1
kind: Schedule
metadata:
name: <schedule>
namespace: openshift-adp
spec:
schedule: 0 7 * * *
template:
hooks: {}
includedNamespaces:
- <namespace>
storageLocation: velero-demo-1
defaultVolumesToFsBackup: true
ttl: 720h0m0s
Der Cron-Ausdruck 0 7 * * * bedeutet, dass jeden Tag um 7:00 Uhr ein Backup erstellt wird. Außerdem werden die in die Sicherung einzubeziehenden Namespaces und der Speicherort für die Sicherung angegeben. Anstelle einer Backup-CR wird also eine geplante CR verwendet, um zum angegebenen Zeitpunkt und in der angegebenen Häufigkeit eine Sicherung zu erstellen.
Sobald der Zeitplan erstellt ist, wird er aktiviert.

Backups werden gemäß diesem Zeitplan erstellt und können auf der Registerkarte „Backup“ angezeigt werden.

Wiederherstellen einer VM aus einem Backup in Red Hat OpenShift Virtualization mit Velero
Stellen Sie VMs in OpenShift Virtualization mit Velero und der OpenShift API for Data Protection (OADP) wieder her. Dieses Verfahren umfasst das Erstellen einer benutzerdefinierten Wiederherstellungsressource (CR) zum Wiederherstellen von VMs und ihren persistenten Volumes aus Sicherungen mit Optionen zum Wiederherstellen im ursprünglichen Namespace, einem anderen Namespace oder unter Verwendung einer alternativen Speicherklasse.
Voraussetzungen
Um eine Wiederherstellung aus einer Sicherung durchzuführen, gehen wir davon aus, dass der Namespace, in dem sich die virtuelle Maschine befand, versehentlich gelöscht wurde.
Wiederherstellen im selben Namespace
Details
Um die Wiederherstellung aus der gerade erstellten Sicherung durchzuführen, müssen wir eine benutzerdefinierte Wiederherstellungsressource (CR) erstellen. Wir müssen ihm einen Namen geben, den Namen des Backups angeben, aus dem wir wiederherstellen möchten, und die RestorePVs auf „true“ setzen. Weitere Parameter können wie in der Abbildung gezeigt eingestellt werden."Dokumentation" . Klicken Sie auf die Schaltfläche „Erstellen“.

apiVersion: velero.io/v1 kind: Restore metadata: name: restore1 namespace: openshift-adp spec: backupName: backup1 restorePVs: true
Wenn die Phase als abgeschlossen angezeigt wird, können Sie sehen, dass die virtuellen Maschinen in den Zustand zurückversetzt wurden, in dem sie sich zum Zeitpunkt der Snapshot-Erstellung befanden. (Wenn die Sicherung erstellt wurde, als die VM ausgeführt wurde, wird durch die Wiederherstellung der VM aus der Sicherung die wiederhergestellte VM gestartet und in einen laufenden Zustand versetzt.) Die VM wird im selben Namespace wiederhergestellt.

Wiederherstellen in einem anderen Namespace
Details
Um die VM in einem anderen Namespace wiederherzustellen, können Sie in der YAML-Definition der Wiederherstellungs-CR ein NamespaceMapping angeben.
Die folgende YAML-Beispieldatei erstellt eine Wiederherstellungs-CR, um eine VM und ihre Datenträger im Namespace „virtual-machines-demo“ wiederherzustellen, wenn die Sicherung in den Namespace „virtual-machines“ übernommen wurde.
apiVersion: velero.io/v1
kind: Restore
metadata:
name: restore-to-different-ns
namespace: openshift-adp
spec:
backupName: backup
restorePVs: true
includedNamespaces:
- virtual-machines-demo
namespaceMapping:
virtual-machines-demo: virtual-machines
Wenn die Phase als abgeschlossen angezeigt wird, können Sie sehen, dass die virtuellen Maschinen in den Zustand zurückversetzt wurden, in dem sie sich zum Zeitpunkt der Snapshot-Erstellung befanden. (Wenn die Sicherung erstellt wurde, als die VM ausgeführt wurde, wird durch die Wiederherstellung der VM aus der Sicherung die wiederhergestellte VM gestartet und in einen laufenden Zustand versetzt.) Die VM wird in einem anderen Namespace wiederhergestellt, wie im YAML angegeben.

Wiederherstellen in einer anderen Speicherklasse
Details
Velero bietet eine allgemeine Möglichkeit, die Ressourcen während der Wiederherstellung durch Angabe von JSON-Patches zu ändern. Die JSON-Patches werden auf die Ressourcen angewendet, bevor sie wiederhergestellt werden. Die JSON-Patches werden in einer Konfigurationszuordnung angegeben und auf die Konfigurationszuordnung wird im Wiederherstellungsbefehl verwiesen. Mit dieser Funktion können Sie die Wiederherstellung mithilfe einer anderen Speicherklasse durchführen.
Im folgenden Beispiel verwendet die virtuelle Maschine während der Erstellung ontap-nas als Speicherklasse für ihre Festplatten. Es wird eine Sicherung der virtuellen Maschine mit dem Namen „backup1“ erstellt.


Simulieren Sie einen Verlust der VM, indem Sie die VM löschen.
Um die VM mit einer anderen Speicherklasse wiederherzustellen, beispielsweise der Speicherklasse ontap-nas-eco, müssen Sie die folgenden zwei Schritte ausführen:
Schritt 1
Erstellen Sie wie folgt eine Konfigurationszuordnung (Konsole) im OpenShift-ADP-Namespace: Füllen Sie die Details wie im Screenshot gezeigt aus: Namespace auswählen: OpenShift-ADP Name: Change-Storage-Class-Config (kann ein beliebiger Name sein) Schlüssel: Change-Storage-Class-Config.yaml: Wert:
version: v1
resourceModifierRules:
- conditions:
groupResource: persistentvolumeclaims
resourceNameRegex: "^rhel*"
namespaces:
- virtual-machines-demo
patches:
- operation: replace
path: "/spec/storageClassName"
value: "ontap-nas-eco"

Das resultierende Konfigurationszuordnungsobjekt sollte folgendermaßen aussehen (CLI):

Diese Konfigurationszuordnung wendet die Ressourcenmodifikatorregel an, wenn die Wiederherstellung erstellt wird. Es wird ein Patch angewendet, um den Speicherklassennamen für alle persistenten Volume-Ansprüche, die mit rhel beginnen, durch ontap-nas-eco zu ersetzen.
Schritt 2
Um die VM wiederherzustellen, verwenden Sie den folgenden Befehl aus der Velero-CLI:
#velero restore create restore1 --from-backup backup1 --resource-modifier-configmap change-storage-class-config -n openshift-adp
Die VM wird im selben Namespace wie die mit der Speicherklasse ontap-nas-eco erstellten Datenträger wiederhergestellt.

Löschen Sie eine Sicherungs-CR oder stellen Sie eine CR in Red Hat OpenShift Virtualization mit Velero wieder her
Löschen Sie Sicherungs- und Wiederherstellungsressourcen für VMs in OpenShift Virtualization mit Velero. Verwenden Sie die OpenShift-CLI, um Sicherungen zu löschen und gleichzeitig die Objektspeicherdaten beizubehalten, oder die Velero-CLI, um sowohl die Backup Custom Resource (CR) als auch die zugehörigen Speicherdaten zu löschen.
Löschen einer Sicherung
Sie können ein Backup-CR löschen, ohne die Object Storage-Daten zu löschen, indem Sie das OC CLI-Tool verwenden.
oc delete backup <backup_CR_name> -n <velero_namespace>
Wenn Sie die Backup-CR und die zugehörigen Objektspeicherdaten löschen möchten, kann dies mit dem Velero CLI Tool erfolgen.
Laden Sie die Velero CLI von "velero.io" herunter. Es sollte die Version verwendet werden, die mit Ihrer Version des OADP Operators kompatibel ist. Die kompatible Version ist in der Dokumentation zu finden "hier,".
Führen Sie den folgenden Löschbefehl mit der Velero-CLI aus
velero backup delete <backup_CR_name> -n <velero_namespace>
Löschen einer Wiederherstellung
Sie können die Wiederherstellungs-CR mit der Velero-CLI löschen
velero restore delete restore --namespace openshift-adp
Sie können den oc-Befehl sowie die Benutzeroberfläche verwenden, um die Wiederherstellungs-CR zu löschen
oc delete restore <restore_CR_name> -n <velero_namespace>