Red Hat OpenShift Virtualization에서 OpenShift API for Data Protection(OADP)을 사용한 VM 데이터 보호
Velero가 제공하는 OADP(OpenShift API for Data Protection)는 OpenShift Virtualization의 VM에 대한 백업, 복원 및 재해 복구 기능을 제공합니다. Trident CSI 스냅샷을 사용하여 영구 볼륨과 VM 메타데이터를 NetApp ONTAP S3 또는 StorageGRID S3에 백업합니다. OADP는 Velero API 및 CSI 스토리지 드라이버와 통합되어 컨테이너화된 VM에 대한 데이터 보호 작업을 관리합니다.
OpenShift 가상화 환경의 가상 머신은 OpenShift 컨테이너 플랫폼의 워커 노드에서 실행되는 컨테이너화된 애플리케이션입니다. VM 메타데이터와 VM의 영구 디스크를 보호하는 것은 손실되거나 손상될 경우 복구할 수 있도록 하는 데 중요합니다.
OpenShift Virtualization VM의 영구 디스크는 OpenShift 클러스터에 통합된 ONTAP 스토리지로 백업할 수 있습니다."Trident CSI" . 이 섹션에서는 다음을 사용합니다."데이터 보호를 위한 OpenShift API(OADP)" 데이터 볼륨을 포함한 VM의 백업을 수행합니다.
-
ONTAP 객체 스토리지
-
스토리지그리드
필요할 때 백업에서 복원합니다.
OADP를 사용하면 OpenShift 클러스터에서 애플리케이션의 백업, 복원 및 재해 복구가 가능합니다. OADP로 보호할 수 있는 데이터에는 Kubernetes 리소스 개체, 영구 볼륨 및 내부 이미지가 포함됩니다.

Red Hat OpenShift는 데이터 보호를 위해 오픈 소스 커뮤니티에서 개발한 솔루션을 활용합니다. "벨레로"는 Kubernetes 클러스터 리소스와 영구 볼륨을 안전하게 백업 및 복원하고, 재해 복구를 수행하며, 마이그레이션할 수 있는 오픈 소스 도구입니다. Velero를 쉽게 사용할 수 있도록 OpenShift는 OADP 오퍼레이터와 CSI 스토리지 드라이버와 통합되는 Velero 플러그인을 개발했습니다. 노출되는 OADP API의 핵심은 Velero API를 기반으로 합니다. OADP 오퍼레이터를 설치하고 구성한 후에는 Velero API에서 제공하는 작업을 기반으로 백업/복원 작업을 수행할 수 있습니다.

OADP 1.3은 OpenShift 클러스터 4.12 이상의 운영자 허브에서 사용할 수 있습니다. CSI 볼륨 스냅샷을 원격 개체 저장소로 옮길 수 있는 내장형 Data Mover가 있습니다. 이렇게 하면 백업하는 동안 스냅샷을 개체 스토리지 위치로 이동하여 이동성과 내구성을 제공합니다. 재난 발생 후 스냅샷을 복원하는 데 사용할 수 있습니다.
다음은 이 섹션의 예제에 사용된 다양한 구성 요소입니다
-
오픈시프트 클러스터 4.14
-
Red Hat에서 제공하는 OpenShift Virtualization Operator를 통해 설치된 OpenShift Virtualization
-
Red Hat에서 제공하는 OADP Operator 1.3
-
Linux용 Velero CLI
-
ONTAP용 Trident 24.02 CSI 드라이버
-
ONTAP 9.12
Velero를 사용하여 Red Hat OpenShift Virtualization의 VM에 대한 주문형 백업을 만듭니다.
Velero 및 NetApp ONTAP S3 또는 StorageGRID 사용하여 OpenShift Virtualization에서 VM을 백업합니다. 이 절차에는 주문형 백업을 위한 백업 사용자 정의 리소스(CR)와 예약된 백업을 위한 일정 CR을 만드는 작업이 포함됩니다. 각 백업은 VM 메타데이터와 영구 볼륨을 캡처하여 복구 또는 규정 준수 목적으로 지정된 개체 스토리지 위치에 저장합니다.
VM 백업을 생성하는 단계
전체 VM(VM 메타데이터 및 VM 디스크)의 주문형 백업을 만들려면 백업 탭을 클릭하세요. 이렇게 하면 백업 사용자 정의 리소스(CR)가 생성됩니다. 백업 CR을 생성하기 위한 샘플 yaml이 제공됩니다. 이 yaml을 사용하면 지정된 네임스페이스에 있는 VM과 디스크가 백업됩니다. 추가 매개변수는 표시된 대로 설정할 수 있습니다."선적 서류 비치" .
디스크를 백업하는 영구 볼륨의 스냅샷은 CSI에 의해 생성됩니다. VM의 백업과 디스크의 스냅샷이 생성되어 yaml에 지정된 백업 위치에 저장됩니다. 백업은 TTL에 지정된 대로 30일 동안 시스템에 보관됩니다.
apiVersion: velero.io/v1 kind: Backup metadata: name: backup1 namespace: openshift-adp spec: includedNamespaces: - virtual-machines-demo snapshotVolumes: true storageLocation: velero-demo-1 ##velero-demo-1 is the backupStorageLocation ##previously created when Velero is configured. ttl: 720h0m0s
백업이 완료되면 해당 단계가 완료로 표시됩니다.

S3 브라우저 애플리케이션을 사용하면 Object Storage에서 백업을 검사할 수 있습니다. 백업 경로는 구성된 버킷에 접두사 이름(velero/demobackup)과 함께 표시됩니다. 백업 내용에는 가상 머신의 볼륨 스냅샷, 로그 및 기타 메타데이터가 포함되어 있는 것을 볼 수 있습니다.
|
|
StorageGrid에서는 테넌트 관리자에서 제공하는 S3 콘솔을 사용하여 백업 객체를 볼 수도 있습니다. |

예약 백업 생성
일정에 따라 백업을 생성하려면 Schedule CR을 생성해야 합니다. 스케줄은 백업을 생성할 시간을 지정할 수 있는 Cron 표현식입니다. 다음은 Schedule CR을 생성하는 샘플 yaml입니다.
apiVersion: velero.io/v1
kind: Schedule
metadata:
name: <schedule>
namespace: openshift-adp
spec:
schedule: 0 7 * * *
template:
hooks: {}
includedNamespaces:
- <namespace>
storageLocation: velero-demo-1
defaultVolumesToFsBackup: true
ttl: 720h0m0s
Cron 표현식 0 7 * * *는 매일 7시에 백업이 생성됨을 의미합니다. 백업에 포함될 네임스페이스와 백업의 저장 위치도 지정됩니다. 따라서 백업 CR 대신 일정 CR을 사용하여 지정된 시간과 빈도로 백업을 생성합니다.
일정이 생성되면 활성화됩니다.

백업은 이 일정에 따라 생성되며, 백업 탭에서 볼 수 있습니다.

Velero를 사용하여 Red Hat OpenShift Virtualization에서 백업된 VM 복원
Velero와 OpenShift API for Data Protection(OADP)을 사용하여 OpenShift Virtualization에서 VM을 복원합니다. 이 절차에는 백업에서 VM과 해당 영구 볼륨을 복구하기 위한 복원 사용자 지정 리소스(CR)를 만드는 작업이 포함되며, 원래 네임스페이스, 다른 네임스페이스로 복원하거나 대체 스토리지 클래스를 사용하는 옵션이 제공됩니다.
필수 조건
백업에서 복원하려면 가상 머신이 있던 네임스페이스가 실수로 삭제되었다고 가정해 보겠습니다.
동일한 네임스페이스로 복원
Details
방금 만든 백업에서 복원하려면 복원 사용자 지정 리소스(CR)를 만들어야 합니다. 이름을 지정하고, 복원하려는 백업의 이름을 지정한 다음 restorePVs를 true로 설정해야 합니다. 추가 매개변수는 표시된 대로 설정할 수 있습니다."선적 서류 비치" . 만들기 버튼을 클릭하세요.

apiVersion: velero.io/v1 kind: Restore metadata: name: restore1 namespace: openshift-adp spec: backupName: backup1 restorePVs: true
단계가 완료로 표시되면 스냅샷이 촬영된 시점의 상태로 가상 머신이 복원된 것을 확인할 수 있습니다. (VM이 실행 중일 때 백업이 생성된 경우, 백업에서 VM을 복원하면 복원된 VM이 시작되고 실행 상태가 됩니다.) VM이 동일한 네임스페이스로 복원됩니다.

다른 네임스페이스로 복원
Details
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에 지정된 다른 네임스페이스로 복원됩니다.

다른 스토리지 클래스로 복원
Details
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 스토리지 클래스를 사용하여 생성된 디스크와 동일한 네임스페이스에 복원됩니다.

Velero를 사용하여 Red Hat OpenShift Virtualization에서 백업 CR을 삭제하거나 CR을 복원합니다.
Velero를 사용하여 OpenShift Virtualization의 VM에 대한 백업을 삭제하고 리소스를 복원합니다. OpenShift CLI를 사용하여 개체 스토리지 데이터를 보존하면서 백업을 삭제하거나, Velero CLI를 사용하여 백업 사용자 정의 리소스(CR)와 관련 스토리지 데이터를 모두 삭제합니다.
백업 삭제
OC CLI 도구를 사용하면 개체 스토리지 데이터를 삭제하지 않고도 백업 CR을 삭제할 수 있습니다.
oc delete backup <backup_CR_name> -n <velero_namespace>
백업 CR과 연결된 객체 스토리지 데이터를 삭제하려면 Velero CLI 도구를 사용하면 됩니다.
Velero CLI를 "velero.io"에서 다운로드하십시오. 사용 중인 OADP 운영자 버전과 호환되는 버전을 사용하십시오. 호환되는 버전은 설명서 "여기"에서 확인할 수 있습니다.
Velero CLI를 사용하여 다음 삭제 명령을 실행하세요.
velero backup delete <backup_CR_name> -n <velero_namespace>
복원 삭제
Velero CLI를 사용하여 CR 복원을 삭제할 수 있습니다.
velero restore delete restore --namespace openshift-adp
oc 명령과 UI를 사용하여 복원 CR을 삭제할 수 있습니다.
oc delete restore <restore_CR_name> -n <velero_namespace>