Skip to main content
NetApp virtualization solutions
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

Trident Protect를 사용하여 Red Hat OpenShift Virtualization에서 VM에 대한 장애 조치 및 장애 복구를 설정합니다.

기여자 netapp-jsnyder kevin-hoke

Trident Protect를 사용하여 OpenShift Virtualization의 VM에 대한 재해 복구를 설정합니다. 이 절차에는 ONTAP S3를 사용하여 AppVault를 만들고, 소스 및 재해 복구 네임스페이스 간에 AppMirror 관계를 설정하고, 복제를 예약하고, 사이트 중단 중에도 VM 가용성을 유지하기 위한 장애 조치 및 장애 복구 작업을 실행하는 작업이 포함됩니다.

필수 조건

  • Trident 설치해야 합니다. OpenShift Virtualization 연산자를 사용하여 OpenShift Virtualization을 클러스터에 설치하기 전에 백엔드 및 스토리지 클래스를 만들어야 합니다.

  • OpenShift VM에 대한 장애 조치(failover) 및 장애 복구(failback) 작업을 구현하려면 Trident Protect를 설치해야 합니다. 여기의 지침을 참조하세요."트라이던트 프로텍트 설치"

OCP-v trident protected가 trident-protect 네임스페이스에 설치됨

OpenShift Virtualization에서 VM을 사용할 수 있어야 합니다. 새 VM을 배포하거나 기존 VM을 OpenShift Virtualization으로 마이그레이션하는 방법에 대한 자세한 내용은 설명서의 해당 섹션을 참조하세요.

source-ns 네임스페이스에 OCP-v VM이 설치됨

ONTAP S3를 사용하여 App Vault 만들기

이 섹션에서는 OnTap S3 개체 스토리지를 사용하여 Trident Protect에서 앱 볼트를 설정하는 방법을 보여줍니다.

oc 명령과 아래에 표시된 yaml 파일을 사용하여 비밀과 ontap s3에 대한 AppVault 사용자 정의 리소스를 생성합니다. trident protected 네임스페이스에 생성해야 합니다.

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

ontap S3 볼트가 생성되었고 사용 가능 상태인지 확인하세요.

trident-protect 네임스페이스의 OCP-v appvault

VM에 대한 Trident Protect 앱을 만듭니다.

VM이 있는 네임스페이스에 앱 사용자 지정 리소스를 만듭니다.

source-ns 네임스페이스의 OCP-v 앱

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

source-ns 네임스페이스의 OCP-v 앱

새 네임스페이스에서 재해 복구 VM에 대한 Trident Protect 앱을 만듭니다.

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

source-ns 네임스페이스의 OCP-v 앱

소스 네임스페이스에 AppMirror 일정을 만듭니다.

표시된 대로 yaml을 사용하여 AppMirror에 대한 일정을 만듭니다. 이렇게 하면 일정(5분마다)을 사용하여 스냅샷이 생성되고 2개의 스냅샷이 유지됩니다.

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"

앱 미러 일정 소스-ns 네임스페이스

스냅샷이 생성되었습니다

DR 네임스페이스에 appMirror 관계를 만듭니다.

재해 복구 네임스페이스에서 Appmirror 관계를 만듭니다. 원하는 상태를 Established로 설정합니다.

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"
참고 아래와 같이 소스 앱의 json 출력에서 소스 VM의 애플리케이션 UID를 얻을 수 있습니다.

앱 UID가 생성되었습니다

앱 미러 관계 생성

AppMirror 관계가 설정되면 가장 최근의 스냅샷이 대상 네임스페이스로 전송됩니다. PVC는 dr 네임스페이스의 VM에 대해 생성되었지만, VM Pod는 아직 dr 네임스페이스에 생성되지 않았습니다.

앱 미러 관계가 설정되었습니다.

앱 미러의 상태 변경

PVC는 대상 네임스페이스에 생성됩니다.

Failover와의 관계 증진

DR 네임스페이스에 VM을 생성하려면 관계의 원하는 상태를 "승격"으로 변경합니다. VM은 여전히 소스 네임스페이스에서 실행 중입니다.

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

AppMirror 관계 적용 패치

AppMirror 관계가 승격 상태입니다.

DR 네임스페이스에 생성된 VM

소스 ns의 VM이 아직 실행 중입니다.

Failback과의 관계를 다시 설정합니다.

관계의 원하는 상태를 "설립됨"으로 변경합니다. DR 네임스페이스에서 VM이 삭제되었습니다. pvc는 여전히 DR 네임스페이스에 있습니다. VM은 여전히 소스 네임스페이스에서 실행 중입니다. 소스 네임스페이스에서 DR ns로의 원래 관계가 설정됩니다. .

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

설립된 국가에 대한 패치

확립된 상태의 앱 미러

DR ns의 PVC는 여전히 남아 있습니다.

소스 ns의 POD와 PVC는 여전히 남아 있습니다.

비디오 데모

다음 비디오는 Trident Protect를 사용하여 OpenShift VM에 대한 재해 복구 시나리오를 구현하는 방법을 보여줍니다.

Trident Protect를 사용한 재해 복구