Richten Sie Failover und Failback für VMs in Red Hat OpenShift Virtualization mit Trident Protect ein
Richten Sie mit Trident Protect die Notfallwiederherstellung für VMs in OpenShift Virtualization ein. Dieses Verfahren umfasst das Erstellen eines AppVault mit ONTAP S3, das Einrichten von AppMirror-Beziehungen zwischen Quell- und Disaster Recovery-Namespaces, das Planen der Replikation und das Ausführen von Failover- und Failback-Vorgängen, um die VM-Verfügbarkeit während Site-Ausfällen aufrechtzuerhalten.
Voraussetzungen
-
Trident muss installiert sein. Backend- und Speicherklassen müssen erstellt werden, bevor OpenShift Virtualization mithilfe des OpenShift Virtualization-Operators auf dem Cluster installiert wird.
-
Trident Protect muss installiert werden, um Failover- und Failback-Vorgänge für die OpenShift-VMs zu implementieren. Beachten Sie die Anweisungen hier, um"Installieren Sie Trident Protect"
Eine VM muss in OpenShift Virtualization verfügbar sein. Einzelheiten zum Bereitstellen einer neuen VM oder zum Migrieren einer vorhandenen VM in OpenShift Virtualization finden Sie im entsprechenden Abschnitt der Dokumentation.
App Vault mit ONTAP S3 erstellen
In diesem Abschnitt wird gezeigt, wie Sie mithilfe des Ontap S3-Objektspeichers einen App-Tresor in Trident Protect einrichten.
Verwenden Sie OC-Befehle und die unten gezeigten YAML-Dateien, um ein Geheimnis und die benutzerdefinierte Appvault-Ressource für Ontap S3 zu erstellen. Stellen Sie sicher, dass Sie sie im Trident Protect-Namespace erstellen.
oc create -f app-vault-secret.yaml -n trident-protect
oc create -f app-vault.yaml -n trident-protect
apiVersion: v1
# You can provide the keys either as stringData or base 64 encoded data
stringData:
accessKeyID: "<access key id as obtained from ONTAP>"
secretAccessKey: "<secret access key as obtained from ONTAP>"
#data:
#accessKeyID: <base 64 encoded value of access key>
#secretAccessKey: <base 64 encoded value of secret access key>
kind: Secret
metadata:
name: appvault-secret
namespace: trident-protect
type: Opaque
apiVersion: protect.trident.netapp.io/v1
kind: AppVault
metadata:
name: ontap-s3-appvault
namespace: trident-protect
spec:
providerConfig:
azure:
accountName: ""
bucketName: ""
endpoint: ""
gcp:
bucketName: ""
projectID: ""
s3:
bucketName: trident-protect
endpoint: <data lif to use to access S3>
secure: "false"
skipCertValidation: "true"
providerCredentials:
accessKeyID:
valueFromSecret:
key: accessKeyID
name: appvault-secret
secretAccessKey:
valueFromSecret:
key: secretAccessKey
name: appvault-secret
providerType: OntapS3
Stellen Sie sicher, dass der Ontap S3-Tresor erstellt wurde und sich im Status „Verfügbar“ befindet
Erstellen Sie eine Trident Protect-App für die VM
Erstellen Sie eine benutzerdefinierte App-Ressource im Namespace, in dem sich die VM befindet.
tridentctl-protect create app source-vm -n source-ns --namespaces source-ns
Erstellen Sie eine Trident -Schutz-App für die Disaster Recovery-VM in einem neuen Namespace
oc create ns dr-ns
tridentctl-protect create app dr-vm -n dr-ns --namespaces dr-ns
Erstellen Sie einen AppMirror-Zeitplan im Quellnamespace
Erstellen Sie mithilfe des YAML wie gezeigt einen Zeitplan für AppMirror. Dadurch werden Snapshots nach dem Zeitplan (alle 5 Minuten) erstellt und 2 Snapshots gespeichert
oc create -f appmirror-schedule.yaml -n source-ns
apiVersion: protect.trident.netapp.io/v1
kind: Schedule
metadata:
name: appmirror-sched1
spec:
appVaultRef: ontap-s3-appvault
applicationRef: source-vm
backupRetention: "0"
enabled: true
granularity: Custom
recurrenceRule: |-
DTSTART:20240901T000200Z
RRULE:FREQ=MINUTELY;INTERVAL=5
snapshotRetention: "2"
Erstellen Sie eine AppMirror-Beziehung im DR-Namespace
Erstellen Sie eine Appmirror-Beziehung im Disaster Recovery-Namespace. Setzen Sie den gewünschten Status auf „Etabliert“.
apiVersion: protect.trident.netapp.io/v1
kind: AppMirrorRelationship
metadata:
name: amr1
spec:
desiredState: Established
destinationAppVaultRef: ontap-s3-appvault
destinationApplicationRef: dr-vm
namespaceMapping:
- destination: dr-ns
source: source-ns
recurrenceRule: |-
DTSTART:20240901T000200Z
RRULE:FREQ=MINUTELY;INTERVAL=5
sourceAppVaultRef: ontap-s3-appvault
sourceApplicationName: source-vm
sourceApplicationUID: "<application UID of the source VM>"
storageClassName: "ontap-nas"
|
Sie können die Anwendungs-UID der Quell-VM aus der JSON-Ausgabe der Quell-App abrufen, wie unten gezeigt |
Wenn die AppMirror-Beziehung hergestellt ist, wird der aktuellste Snapshot in den Zielnamespace übertragen. Der PVC wird für die VM im dr-Namespace erstellt, der VM-Pod wird jedoch noch nicht im dr-Namespace erstellt.
Fördern Sie die Beziehung zum Failover
Ändern Sie den gewünschten Status der Beziehung in „Promoted“, um die VM im DR-Namespace zu erstellen. Die VM wird weiterhin im Quellnamespace ausgeführt.
oc patch amr amr1 -n dr-ns --type=merge -p '{"spec":{"desiredState":"Promoted"}}'
Stellen Sie die Beziehung erneut zu Failback her
Ändern Sie den gewünschten Status der Beziehung in „Etabliert“. Die VM wird im DR-Namespace gelöscht. Das PVC ist weiterhin im DR-Namespace vorhanden. Die VM wird weiterhin im Quellnamespace ausgeführt. Die ursprüngliche Beziehung vom Quellnamespace zu DR ns wird hergestellt. .
oc patch amr amr1 -n dr-ns --type=merge -p '{"spec":{"desiredState":"Established"}}'
Videodemonstration
Das folgende Video zeigt eine Demonstration der Implementierung eines Disaster Recovery-Szenarios für eine OpenShift-VM mit Trident Protect