Configurer le basculement et la restauration automatique pour les machines virtuelles dans Red Hat OpenShift Virtualization à l'aide de Trident Protect
Configurez la reprise après sinistre pour les machines virtuelles dans OpenShift Virtualization à l’aide de Trident Protect. Cette procédure comprend la création d'un AppVault avec ONTAP S3, l'établissement de relations AppMirror entre les espaces de noms source et de reprise après sinistre, la planification de la réplication et l'exécution d'opérations de basculement et de restauration pour maintenir la disponibilité de la machine virtuelle pendant les pannes du site.
Prérequis
-
Trident doit être installé. Les classes backend et de stockage doivent être créées avant l’installation d’OpenShift Virtualization sur le cluster à l’aide de l’opérateur OpenShift Virtualization.
-
Trident Protect doit être installé pour implémenter les opérations de basculement et de restauration pour les machines virtuelles OpenShift. Reportez-vous aux instructions ici pour"installer trident protect"
Une machine virtuelle doit être disponible dans OpenShift Virtualization. Pour plus de détails sur le déploiement d'une nouvelle machine virtuelle ou la migration d'une machine virtuelle existante vers OpenShift Virtualization, consultez la section appropriée dans la documentation.
Créer un App Vault à l'aide d' ONTAP S3
Cette section montre comment configurer un coffre-fort d'applications dans Trident Protect à l'aide du stockage d'objets S3 d'ontap.
Utilisez les commandes oc et les fichiers yaml indiqués ci-dessous pour créer un secret et la ressource personnalisée appvault pour ontap s3. Assurez-vous de les créer dans l’espace de noms Trident Protect.
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
Assurez-vous que le coffre-fort S3 ontap est créé et qu'il est dans l'état Disponible
Créer une application de protection Trident pour la machine virtuelle
Créez une ressource d’application personnalisée dans l’espace de noms où se trouve la machine virtuelle.
tridentctl-protect create app source-vm -n source-ns --namespaces source-ns
Créer une application de protection Trident pour la machine virtuelle de récupération après sinistre dans un nouvel espace de noms
oc create ns dr-ns
tridentctl-protect create app dr-vm -n dr-ns --namespaces dr-ns
Créer une planification AppMirror dans l'espace de noms source
Créez une planification pour AppMirror en utilisant le fichier yaml comme indiqué. Cela créera des instantanés en utilisant le calendrier (toutes les 5 minutes) et conservera 2 instantanés
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"
Créer une relation appMirror dans l'espace de noms DR
Créez une relation Appmirror dans l’espace de noms Disaster Recovery. Définissez l'état souhaité sur Établi.
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"
|
Vous pouvez obtenir l'UID de l'application de la machine virtuelle source à partir de la sortie JSON de l'application source, comme indiqué ci-dessous. |
Lorsque la relation AppMirror est établie, l’instantané le plus récent est transféré vers l’espace de noms de destination. Le PVC est créé pour la VM dans l'espace de noms dr, cependant, le pod VM n'est pas encore créé dans l'espace de noms dr.
Promouvoir la relation avec Failover
Modifiez l’état souhaité de la relation sur « Promu » pour créer la machine virtuelle dans l’espace de noms DR. La machine virtuelle est toujours en cours d’exécution dans l’espace de noms source.
oc patch amr amr1 -n dr-ns --type=merge -p '{"spec":{"desiredState":"Promoted"}}'
Rétablir la relation avec Failback
Modifiez l'état souhaité de la relation sur « Établi ». La machine virtuelle est supprimée dans l’espace de noms DR. Le pvc existe toujours dans l'espace de noms DR. La machine virtuelle est toujours en cours d’exécution dans l’espace de noms source. La relation d'origine entre l'espace de noms source et DR ns est établie. .
oc patch amr amr1 -n dr-ns --type=merge -p '{"spec":{"desiredState":"Established"}}'
Démonstration vidéo
La vidéo suivante montre une démonstration de la mise en œuvre d'un scénario de reprise après sinistre pour une machine virtuelle OpenShift à l'aide de Trident Protect