Trident Protect를 사용하여 Red Hat OpenShift Virtualization에서 VM에 대한 장애 조치 및 장애 복구를 설정합니다.
Trident Protect를 사용하여 OpenShift Virtualization의 VM에 대한 재해 복구를 설정합니다. 이 절차에는 ONTAP S3를 사용하여 AppVault를 만들고, 소스 및 재해 복구 네임스페이스 간에 AppMirror 관계를 설정하고, 복제를 예약하고, 사이트 중단 중에도 VM 가용성을 유지하기 위한 장애 조치 및 장애 복구 작업을 실행하는 작업이 포함됩니다.
필수 조건
-
Trident 설치해야 합니다. OpenShift Virtualization 연산자를 사용하여 OpenShift Virtualization을 클러스터에 설치하기 전에 백엔드 및 스토리지 클래스를 만들어야 합니다.
-
OpenShift VM에 대한 장애 조치(failover) 및 장애 복구(failback) 작업을 구현하려면 Trident Protect를 설치해야 합니다. 여기의 지침을 참조하세요."트라이던트 프로텍트 설치"
OpenShift Virtualization에서 VM을 사용할 수 있어야 합니다. 새 VM을 배포하거나 기존 VM을 OpenShift Virtualization으로 마이그레이션하는 방법에 대한 자세한 내용은 설명서의 해당 섹션을 참조하세요.
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 볼트가 생성되었고 사용 가능 상태인지 확인하세요.
VM에 대한 Trident Protect 앱을 만듭니다.
VM이 있는 네임스페이스에 앱 사용자 지정 리소스를 만듭니다.
tridentctl-protect create app source-vm -n source-ns --namespaces source-ns
새 네임스페이스에서 재해 복구 VM에 대한 Trident Protect 앱을 만듭니다.
oc create ns dr-ns
tridentctl-protect create app dr-vm -n dr-ns --namespaces dr-ns
소스 네임스페이스에 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"
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를 얻을 수 있습니다. |
AppMirror 관계가 설정되면 가장 최근의 스냅샷이 대상 네임스페이스로 전송됩니다. PVC는 dr 네임스페이스의 VM에 대해 생성되었지만, VM Pod는 아직 dr 네임스페이스에 생성되지 않았습니다.
Failover와의 관계 증진
DR 네임스페이스에 VM을 생성하려면 관계의 원하는 상태를 "승격"으로 변경합니다. VM은 여전히 소스 네임스페이스에서 실행 중입니다.
oc patch amr amr1 -n dr-ns --type=merge -p '{"spec":{"desiredState":"Promoted"}}'
Failback과의 관계를 다시 설정합니다.
관계의 원하는 상태를 "설립됨"으로 변경합니다. DR 네임스페이스에서 VM이 삭제되었습니다. pvc는 여전히 DR 네임스페이스에 있습니다. VM은 여전히 소스 네임스페이스에서 실행 중입니다. 소스 네임스페이스에서 DR ns로의 원래 관계가 설정됩니다. .
oc patch amr amr1 -n dr-ns --type=merge -p '{"spec":{"desiredState":"Established"}}'
비디오 데모
다음 비디오는 Trident Protect를 사용하여 OpenShift VM에 대한 재해 복구 시나리오를 구현하는 방법을 보여줍니다.