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

Trident Protect를 사용하여 OpenShift 가상화에서 VM에 대한 장애 조치 및 장애 복구를 구현합니다

기여자

개요

이 섹션에서는 Trident Protect를 사용하여 OpenShift 가상화에서 VM 장애 조치 및 장애 복구를 구현하는 방법에 대해 자세히 설명합니다. VM이 온프레미스 OpenShift 클러스터인지 ROSA 클러스터인지에 관계없이 절차는 동일합니다. 이 섹션에서는 Trident Protect의 appvault로 사용할 ONTAP S3 오브젝트 스토리지를 생성하고 앱 미러 스케줄을 생성하는 절차를 보여 줍니다. 그런 다음 앱 미러 관계를 만드는 방법을 보여 줍니다. 마지막으로 페일오버 및 페일백을 수행하기 위해 애플리케이션 미러 관계의 상태를 변경하는 방법을 보여 줍니다.

필수 구성 요소

  • Trident가 설치되어 있어야 합니다. OpenShift Virtualization 운영자를 사용하여 클러스터에 OpenShift Virtualization을 설치하기 전에 백엔드 및 스토리지 클래스를 생성해야 합니다.

  • OpenShift VM에 대한 페일오버 및 페일백 작업을 구현하려면 Trident Protect를 설치해야 합니다. 여기 에서 지침을 참조하십시오 "Trident Protect를 설치합니다"

Trident-Protect 네임스페이스에 OCP-v Trident Protect가 설치되어 있습니다

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

소스 ns 네임스페이스에 OCP-v VM이 설치되어 있습니다

ONTAP S3을 사용하여 App Vault를 만듭니다

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

아래 표시된 OC 명령 및 YAML 파일을 사용하여 ONTAP S3에 대한 암호 및 appvault 사용자 지정 리소스를 생성합니다. 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

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 Schedule 을 만듭니다

그림과 같이 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 관계를 생성합니다

Disaster Recovery 네임스페이스에서 Appmirror 관계를 생성합니다. desiredState 를 establed 로 설정합니다.

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 관계가 설정되면 가장 최근의 스냅샷이 대상 네임스페이스로 전송됩니다. DR 네임스페이스에서 VM에 대해 PVC가 생성되지만 VM Pod는 아직 DR 네임스페이스에 생성되지 않습니다.

Create App Mirror 관계가 설정되었습니다

앱 미러에 대한 상태 변경

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

관계를 장애 조치로 승격합니다

원하는 관계 상태를 "승격됨"으로 변경하여 DR 네임스페이스에 VM을 생성합니다. VM이 여전히 소스 네임스페이스에서 실행되고 있습니다.

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

AppMirror 관계는 패치를 적용합니다

AppMirror 관계가 상향 이동됨 상태입니다

DR 네임스페이스에서 생성된 VM입니다

소스 ns의 VM이 여전히 실행 중입니다

장애 복구를 위한 관계를 다시 설정합니다

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

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

설정된 상태에 대한 패치

설정된 상태의 앱 미러

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

포드와 PVC가 여전히 남아 있습니다