Velero를 사용하여 Red Hat OpenShift Virtualization에서 백업된 VM 복원
Velero와 OpenShift API for Data Protection(OADP)을 사용하여 OpenShift Virtualization에서 VM을 복원합니다. 이 절차에는 백업에서 VM과 해당 영구 볼륨을 복구하기 위한 복원 사용자 지정 리소스(CR)를 만드는 작업이 포함되며, 원래 네임스페이스, 다른 네임스페이스로 복원하거나 대체 스토리지 클래스를 사용하는 옵션이 제공됩니다.
필수 조건
백업에서 복원하려면 가상 머신이 있던 네임스페이스가 실수로 삭제되었다고 가정해 보겠습니다.
동일한 네임스페이스로 복원
방금 만든 백업에서 복원하려면 복원 사용자 지정 리소스(CR)를 만들어야 합니다. 이름을 지정하고, 복원하려는 백업의 이름을 지정한 다음 restorePVs를 true로 설정해야 합니다. 추가 매개변수는 표시된 대로 설정할 수 있습니다."선적 서류 비치" . 만들기 버튼을 클릭하세요.
apiVersion: velero.io/v1 kind: Restore metadata: name: restore1 namespace: openshift-adp spec: backupName: backup1 restorePVs: true
단계가 완료로 표시되면 스냅샷이 촬영된 시점의 상태로 가상 머신이 복원된 것을 확인할 수 있습니다. (VM이 실행 중일 때 백업이 생성된 경우, 백업에서 VM을 복원하면 복원된 VM이 시작되고 실행 상태가 됩니다.) VM이 동일한 네임스페이스로 복원됩니다.
다른 네임스페이스로 복원
VM을 다른 네임스페이스로 복원하려면 Restore CR의 YAML 정의에 namespaceMapping을 제공할 수 있습니다.
다음 샘플 yaml 파일은 백업이 virtual-machines 네임스페이스로 수행되었을 때 virtual-machines-demo 네임스페이스의 VM과 해당 디스크를 복원하기 위한 Restore CR을 생성합니다.
apiVersion: velero.io/v1 kind: Restore metadata: name: restore-to-different-ns namespace: openshift-adp spec: backupName: backup restorePVs: true includedNamespaces: - virtual-machines-demo namespaceMapping: virtual-machines-demo: virtual-machines
단계가 완료로 표시되면 스냅샷이 촬영된 시점의 상태로 가상 머신이 복원된 것을 확인할 수 있습니다. (VM이 실행 중일 때 백업이 생성된 경우, 백업에서 VM을 복원하면 복원된 VM이 시작되고 실행 상태가 됩니다.) VM은 yaml에 지정된 다른 네임스페이스로 복원됩니다.
다른 스토리지 클래스로 복원
Velero는 JSON 패치를 지정하여 복원 중에 리소스를 수정하는 일반적인 기능을 제공합니다. JSON 패치는 리소스가 복원되기 전에 리소스에 적용됩니다. JSON 패치는 configmap에 지정되고 configmap은 restore 명령에서 참조됩니다. 이 기능을 사용하면 다양한 저장 클래스를 사용하여 복원할 수 있습니다.
아래 예에서 가상 머신은 생성 중에 디스크의 스토리지 클래스로 ontap-nas를 사용합니다. backup1이라는 이름의 가상 머신 백업이 생성됩니다.
VM을 삭제하여 VM 손실을 시뮬레이션합니다.
예를 들어 ontap-nas-eco 스토리지 클래스와 같이 다른 스토리지 클래스를 사용하여 VM을 복원하려면 다음 두 단계를 수행해야 합니다.
1단계
다음과 같이 openshift-adp 네임스페이스에 구성 맵(콘솔)을 만듭니다. 스크린샷에 표시된 대로 세부 정보를 입력합니다. 네임스페이스 선택: openshift-adp 이름: change-storage-class-config(원하는 이름 사용 가능) 키: change-storage-class-config.yaml: 값:
version: v1 resourceModifierRules: - conditions: groupResource: persistentvolumeclaims resourceNameRegex: "^rhel*" namespaces: - virtual-machines-demo patches: - operation: replace path: "/spec/storageClassName" value: "ontap-nas-eco"
결과적으로 생성되는 구성 맵 객체는 다음과 같습니다(CLI):
이 구성 맵은 복원이 생성될 때 리소스 수정자 규칙을 적용합니다. rhel로 시작하는 모든 영구 볼륨 클레임에 대해 스토리지 클래스 이름을 ontap-nas-eco로 바꾸는 패치가 적용됩니다.
2단계
VM을 복원하려면 Velero CLI에서 다음 명령을 사용하세요.
#velero restore create restore1 --from-backup backup1 --resource-modifier-configmap change-storage-class-config -n openshift-adp
VM은 ontap-nas-eco 스토리지 클래스를 사용하여 생성된 디스크와 동일한 네임스페이스에 복원됩니다.