Skip to main content
NetApp Solutions
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Utilizzare Trident Protect per implementare failover e failback per le macchine virtuali nella virtualizzazione OpenShift

Collaboratori

Panoramica

In questa sezione vengono forniti i dettagli per l'implementazione del failover e del failback delle macchine virtuali nella virtualizzazione OpenShift utilizzando Trident Protect. Le procedure sono le stesse indipendentemente dal fatto che le VM siano cluster OpenShift on-premise o su cluster ROSA. Questa sezione mostra le procedure per la creazione di un archivio di oggetti ONTAP S3 da utilizzare come appvault per Trident Protect e la creazione di una pianificazione per il mirror dell'app. Successivamente, viene illustrato come creare una relazione mirror dell'applicazione. Infine, viene illustrato come modificare lo stato della relazione mirror dell'applicazione per eseguire il failover e il failback.

Prerequisiti

  • Trident deve essere installato. È necessario creare classi di backend e storage prima di installare OpenShift Virtualization nel cluster utilizzando l'operatore OpenShift Virtualization.

  • È necessario installare Trident Protect per implementare le operazioni di failover e failback per le macchine virtuali OpenShift. Fare riferimento alle istruzioni riportate di seguito "installare Trident protect"

OCP-v Trident Protect installato nel namespace Trident-Protect

Una VM deve essere disponibile in OpenShift Virtualization. Per informazioni dettagliate sull'implementazione di una nuova macchina virtuale o sulla migrazione di una macchina virtuale esistente in OpenShift Virtualization, consultare la relativa sezione nella documentazione.

OCP-v VM installata nello spazio dei nomi source-ns

Creare l'App Vault usando ONTAP S3

In questa sezione viene illustrato come configurare un vault delle applicazioni in Trident Protect utilizzando lo storage a oggetti ONTAP S3.

Utilizzare i comandi oc e i file yaml mostrati di seguito per creare una risorsa personalizzata di tipo secret e appvault per ONTAP S3. Accertarsi di crearle nello spazio dei nomi 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

Assicurarsi che il vault di ONTAP S3 sia stato creato e che sia nello stato disponibile

OCP-v appvault nello spazio dei nomi Trident-Protect

Crea un'applicazione Trident Protect per la macchina virtuale

Creare una risorsa personalizzata dell'applicazione nello spazio dei nomi in cui si trova la VM.

App OCP-v nello spazio dei nomi source-ns

tridentctl-protect create app source-vm -n source-ns --namespaces source-ns

App OCP-v nello spazio dei nomi source-ns

Crea un'applicazione Trident Protect per la macchina virtuale di disaster recovery in un nuovo namespace

oc create ns dr-ns
tridentctl-protect create app dr-vm -n dr-ns --namespaces dr-ns

App OCP-v nello spazio dei nomi source-ns

Creare una pianificazione AppMirror nello spazio dei nomi di origine

Creare una pianificazione per AppMirror utilizzando yaml come illustrato. In questo modo, verranno create snapshot utilizzando la pianificazione (ogni 5 minuti) e verranno conservate 2 snapshot

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"

Spazio dei nomi source-ns pianificazione mirror app

Snapshot creato

Creare una relazione appMirror nello spazio dei nomi DR

Creare una relazione Appmirror nello spazio dei nomi Disaster Recovery. Impostare il desiredState su stabilito.

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"
Nota È possibile ottenere l'UID dell'applicazione della VM di origine dall'output json dell'applicazione di origine, come mostrato di seguito

UID app creato

Crea relazione App Mirror

Quando viene stabilita la relazione AppMirror, lo snapshot più recente viene trasferito nello spazio dei nomi di destinazione. Il PVC viene creato per la macchina virtuale nello spazio dei nomi dr, tuttavia il pod VM non viene ancora creato nello spazio dei nomi dr.

Viene stabilita la relazione Create App Mirror

Modifiche di stato per App Mirror

PVC viene creato nello spazio dei nomi di destinazione

Promuovere la relazione con il failover

Modificare lo stato desiderato della relazione in "promosso" per creare la VM nello spazio dei nomi DR. La VM è ancora in esecuzione nello spazio dei nomi di origine.

oc patch amr amr1 -n dr-ns --type=merge -p '{"spec":{"desiredState":"Promoted"}}'

Patch di applicazione della relazione AppMirror

La relazione AppMirror è nello stato promosso

Macchina virtuale creata nello spazio dei nomi di DR

VM in source ns ancora in esecuzione

Stabilire nuovamente la relazione con il failback

Modificare lo stato desiderato della relazione in "stabilito". La VM viene eliminata nello spazio dei nomi DR. Il pvc esiste ancora nello spazio dei nomi DR. La VM è ancora in esecuzione nello spazio dei nomi di origine. Viene stabilita la relazione originale tra lo spazio dei nomi di origine e i n DR. .

oc patch amr amr1 -n dr-ns --type=merge -p '{"spec":{"desiredState":"Established"}}'

Patch allo stato stabilito

App Mirror nello stato stabilito

Il PVC nella DR ns rimane ancora

POD e PVC nella sorgente ns rimane ancora