4.21. OADP 데이터 Mover
4.21.1. OADP Data Mover 정보 링크 복사링크가 클립보드에 복사되었습니다!
OADP(OpenShift API for Data Protection)에는 CSI(Container Storage Interface) 볼륨 스냅샷을 원격 오브젝트 저장소로 이동하는 데 사용할 수 있는 기본 제공 데이터 Mover가 포함되어 있습니다. 기본 제공 Data Mover를 사용하면 오류, 실수로 삭제 또는 클러스터 손상이 발생하는 경우 원격 오브젝트 저장소에서 상태 저장 애플리케이션을 복원할 수 있습니다. Kopia 를 업로드기 메커니즘으로 사용하여 스냅샷 데이터를 읽고 통합 리포지토리에 씁니다.
OADP는 다음에서 CSI 스냅샷을 지원합니다.
- Red Hat OpenShift Data Foundation
- Kubernetes Volume Snapshot API를 지원하는 CSI(Container Storage Interface) 드라이버가 있는 기타 클라우드 스토리지 공급자
4.21.1.1. Data Mover 지원 링크 복사링크가 클립보드에 복사되었습니다!
OADP 1.3에 기술 프리뷰로 도입된 OADP 내장 데이터 Mover는 이제 컨테이너화된 및 가상 머신 워크로드 모두에 대해 완전히 지원됩니다.
지원됨
OADP 1.3으로 가져온 데이터 Mover 백업은 OADP 1.3, 1.4 이상을 사용하여 복원할 수 있습니다. 이는 지원됩니다.
지원되지 않음
Data Mover 기능을 사용하여 OADP 1.1 또는 OADP 1.2로 가져온 백업은 OADP 1.3 이상을 사용하여 복원할 수 없습니다. 따라서 지원되지 않습니다.
OADP 1.1 및 OADP 1.2는 더 이상 지원되지 않습니다. OADP 1.1 또는 OADP 1.2의 DataMover 기능은 기술 프리뷰였으며 지원되지 않았습니다. OADP 1.1 또는 OADP 1.2로 가져온 DataMover 백업은 이후 버전의 OADP에서 복원할 수 없습니다.
4.21.1.2. 기본 제공 데이터 Mover 활성화 링크 복사링크가 클립보드에 복사되었습니다!
기본 제공 데이터 Mover를 활성화하려면 CSI 플러그인을 포함하고 DataProtectionApplication
CR(사용자 정의 리소스)에서 노드 에이전트를 활성화해야 합니다. 노드 에이전트는 데이터 이동 모듈을 호스팅하는 Kubernetes 데몬 세트입니다. 여기에는 데이터 Mover 컨트롤러, 업로드자 및 리포지토리가 포함됩니다.
DataProtectionApplication
매니페스트의 예
4.21.1.3. 기본 제공 데이터 Mover 컨트롤러 및 CRD(사용자 정의 리소스 정의) 링크 복사링크가 클립보드에 복사되었습니다!
기본 제공 Data Mover 기능에는 백업 및 복원을 관리하기 위해 CRD로 정의된 새로운 API 오브젝트 3개가 도입되었습니다.
-
DataDownload
: 볼륨 스냅샷의 데이터 다운로드를 나타냅니다. CSI 플러그인은 복원할 볼륨당 하나의DataDownload
오브젝트를 생성합니다.DataDownload
CR에는 대상 볼륨, 지정된 데이터 Mover, 현재 데이터 다운로드의 진행 상황, 지정된 백업 리포지토리 및 프로세스가 완료된 후 현재 데이터 다운로드 결과가 포함됩니다. -
DataUpload
: 볼륨 스냅샷의 데이터 업로드를 나타냅니다. CSI 플러그인은 CSI 스냅샷당 하나의DataUpload
오브젝트를 생성합니다.DataUpload
CR에는 지정된 스냅샷, 지정된 데이터 Mover, 지정된 백업 리포지토리, 현재 데이터 업로드 진행률, 프로세스가 완료된 후 현재 데이터 업로드 결과가 포함됩니다. -
BackupRepository
: 백업 리포지토리의 라이프사이클을 나타내며 관리합니다. OADP는 네임스페이스에 대한 첫 번째 CSI 스냅샷 백업 또는 복원이 요청되면 네임스페이스당 백업 리포지토리를 생성합니다.
4.21.1.4. 증분 백업 지원 정보 링크 복사링크가 클립보드에 복사되었습니다!
OADP는 컨테이너화된 워크로드와 OpenShift Virtualization 워크로드 모두에 대해 블록
및 Filesystem
영구 볼륨의 증분 백업을 지원합니다. 다음 표에는 파일 시스템 백업(FSB), CSI(Container Storage Interface) 및 CSI 데이터 Mover에 대한 지원이 요약되어 있습니다.
볼륨 모드 | FSB - Restic | FSB - Kopia | CSI | CSI 데이터 Mover |
---|---|---|---|---|
파일 시스템 | S [1], I [2] | S [1], I [2] | S [1] | S [1], I [2] |
블록 | N [3] | N [3] | S [1] | S [1], I [2] |
볼륨 모드 | FSB - Restic | FSB - Kopia | CSI | CSI 데이터 Mover |
---|---|---|---|---|
파일 시스템 | N [3] | N [3] | S [1] | S [1], I [2] |
블록 | N [3] | N [3] | S [1] | S [1], I [2] |
- 지원되는 백업
- 증분 백업 지원
- 지원되지 않음
CSI Data Mover 백업은 uploaderType
과 관계없이 Kopia를 사용합니다.
4.21.2. CSI 스냅샷 데이터 이동 백업 및 복원 링크 복사링크가 클립보드에 복사되었습니다!
OADP 1.3 Data Mover를 사용하여 영구 볼륨을 백업하고 복원할 수 있습니다.
4.21.2.1. CSI 스냅샷을 사용하여 영구 볼륨 백업 링크 복사링크가 클립보드에 복사되었습니다!
OADP 데이터 Mover를 사용하여 CSI(Container Storage Interface) 볼륨 스냅샷을 원격 오브젝트 저장소에 백업할 수 있습니다.
사전 요구 사항
-
cluster-admin
역할을 사용하여 클러스터에 액세스할 수 있습니다. - OADP Operator가 설치되어 있습니다.
-
CSI 플러그인을 포함하고
DataProtectionApplication
CR(사용자 정의 리소스)에 노드 에이전트를 활성화했습니다. - 별도의 네임스페이스에서 영구 볼륨이 실행되는 애플리케이션이 있습니다.
-
metadata.labels.velero.io/csi-volumesnapshot-class: "true"
키-값 쌍을VolumeSnapshotClass
CR에 추가했습니다.
프로세스
다음 예와 같이
Backup
오브젝트에 대한 YAML 파일을 생성합니다.Backup
CR의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
fs-backup
에서 옵트아웃하는 볼륨에만 Data Mover를 사용하는 경우true
로 설정합니다. 볼륨에 대해 기본적으로 Data Mover를 사용하는 경우false
로 설정합니다.- 2
- CSI 스냅샷을 원격 오브젝트 스토리지로 이동하려면
true
로 설정합니다. - 3
ttl
필드는 생성된 백업의 보존 시간과 백업 데이터를 정의합니다. 예를 들어 Restic을 백업 도구로 사용하는 경우 백업이 만료될 때까지 백업된 데이터 항목과 PV(영구 볼륨)의 데이터 콘텐츠가 저장됩니다. 그러나 이러한 데이터를 저장하면 대상 백업 위치에 더 많은 공간이 사용됩니다. 추가 스토리지는 만료되지 않은 다른 완료된 백업이 시간 초과되었을 수 있기 전에 생성되는 빈번한 백업과 함께 사용됩니다.
참고XFS 파일 시스템을 사용하여 볼륨을 포맷하고 볼륨이 100%인 경우
장치 오류에 남아 있는 공간이 없는 상태에서
백업이 실패합니다. 예를 들면 다음과 같습니다.Error: relabel failed /var/lib/kubelet/pods/3ac..34/volumes/ \ kubernetes.io~csi/pvc-684..12c/mount: lsetxattr /var/lib/kubelet/ \ pods/3ac..34/volumes/kubernetes.io~csi/pvc-68..2c/mount/data-xfs-103: \ no space left on device
Error: relabel failed /var/lib/kubelet/pods/3ac..34/volumes/ \ kubernetes.io~csi/pvc-684..12c/mount: lsetxattr /var/lib/kubelet/ \ pods/3ac..34/volumes/kubernetes.io~csi/pvc-68..2c/mount/data-xfs-103: \ no space left on device
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 시나리오에서는 백업이 성공적으로 완료되도록 볼륨 크기 조정 또는 다른 파일 시스템 유형(예:
ext4
)을 사용하는 것이 좋습니다.매니페스트를 적용합니다.
oc create -f backup.yaml
$ oc create -f backup.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow DataUpload
CR은 스냅샷 생성이 완료된 후 생성됩니다.
검증
DataUpload
CR의status.phase
필드를 모니터링하여 스냅샷 데이터가 원격 오브젝트 저장소로 성공적으로 전송되었는지 확인합니다. 가능한 값은진행
중 ,완료됨
,실패
또는취소됨
입니다. 오브젝트 저장소는DataProtectionApplication
CR의backupLocations
스탠자에 구성됩니다.다음 명령을 실행하여 모든
DataUpload
오브젝트 목록을 가져옵니다.oc get datauploads -A
$ oc get datauploads -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAMESPACE NAME STATUS STARTED BYTES DONE TOTAL BYTES STORAGE LOCATION AGE NODE openshift-adp backup-test-1-sw76b Completed 9m47s 108104082 108104082 dpa-sample-1 9m47s ip-10-0-150-57.us-west-2.compute.internal openshift-adp mongo-block-7dtpf Completed 14m 1073741824 1073741824 dpa-sample-1 14m ip-10-0-150-57.us-west-2.compute.internal
NAMESPACE NAME STATUS STARTED BYTES DONE TOTAL BYTES STORAGE LOCATION AGE NODE openshift-adp backup-test-1-sw76b Completed 9m47s 108104082 108104082 dpa-sample-1 9m47s ip-10-0-150-57.us-west-2.compute.internal openshift-adp mongo-block-7dtpf Completed 14m 1073741824 1073741824 dpa-sample-1 14m ip-10-0-150-57.us-west-2.compute.internal
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 특정
DataUpload
오브젝트의status.phase
필드 값을 확인합니다.oc get datauploads <dataupload_name> -o yaml
$ oc get datauploads <dataupload_name> -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 스냅샷 데이터가 원격 오브젝트 저장소로 성공적으로 전송되었음을 나타냅니다.
4.21.2.2. CSI 볼륨 스냅샷 복원 링크 복사링크가 클립보드에 복사되었습니다!
Restore
CR을 생성하여 볼륨 스냅샷을 복원할 수 있습니다.
OAPD 1.3 기본 제공 데이터 Mover를 사용하여 OADP 1.2의 reflectsync 백업을 복원할 수 없습니다. OADP 1.3으로 업그레이드하기 전에 Restic을 사용하여 모든 워크로드의 파일 시스템 백업을 수행하는 것이 좋습니다.
사전 요구 사항
-
cluster-admin
역할을 사용하여 클러스터에 액세스할 수 있습니다. -
데이터를 복원할 OADP
Backup
CR이 있습니다.
절차
다음 예와 같이
Restore
CR에 대한 YAML 파일을 생성합니다.CR
복원
예Copy to Clipboard Copied! Toggle word wrap Toggle overflow 매니페스트를 적용합니다.
oc create -f restore.yaml
$ oc create -f restore.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 복원이 시작될 때
DataDownload
CR이 생성됩니다.
검증
DataDownload
CR의status.phase
필드를 확인하여 복원 프로세스의 상태를 모니터링할 수 있습니다. 가능한 값은진행
중 ,완료됨
,실패
또는취소됨
입니다.모든
DataDownload
오브젝트 목록을 가져오려면 다음 명령을 실행합니다.oc get datadownloads -A
$ oc get datadownloads -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAMESPACE NAME STATUS STARTED BYTES DONE TOTAL BYTES STORAGE LOCATION AGE NODE openshift-adp restore-test-1-sk7lg Completed 7m11s 108104082 108104082 dpa-sample-1 7m11s ip-10-0-150-57.us-west-2.compute.internal
NAMESPACE NAME STATUS STARTED BYTES DONE TOTAL BYTES STORAGE LOCATION AGE NODE openshift-adp restore-test-1-sk7lg Completed 7m11s 108104082 108104082 dpa-sample-1 7m11s ip-10-0-150-57.us-west-2.compute.internal
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 입력하여 특정
DataDownload
오브젝트의status.phase
필드 값을 확인합니다.oc get datadownloads <datadownload_name> -o yaml
$ oc get datadownloads <datadownload_name> -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- CSI 스냅샷 데이터가 성공적으로 복원되었음을 나타냅니다.
4.21.2.3. OADP 1.3 삭제 정책 링크 복사링크가 클립보드에 복사되었습니다!
삭제 정책은 시스템에서 데이터를 제거하는 규칙을 결정하며 보존 기간, 데이터 민감도 및 규정 준수 요구 사항과 같은 요인에 따라 삭제 시기와 방법을 지정합니다. 규정을 준수하고 중요한 정보를 보존하면서 효과적으로 데이터 제거를 관리합니다.
4.21.2.3.1. OADP 1.3 삭제 정책 지침 링크 복사링크가 클립보드에 복사되었습니다!
OADP 1.3의 다음 삭제 정책 지침을 검토하십시오.
-
OADP 1.3.x에서는 모든 유형의 백업 및 복원 방법을 사용할 때
VolumeSnapshotClass
CR(사용자 정의 리소스)에서deletionPolicy
필드를Retain
또는Delete
로 설정할 수 있습니다.
4.21.3. Kopia 해시, 암호화 및 분할 알고리즘 덮어쓰기 링크 복사링크가 클립보드에 복사되었습니다!
DPA(Data Protection Application)의 특정 환경 변수를 사용하여 Kopia 해시, 암호화 및 분할 알고리즘의 기본값을 재정의할 수 있습니다.
4.21.3.1. Kopia 해시, 암호화 및 분할 알고리즘을 재정의하도록 DPA 구성 링크 복사링크가 클립보드에 복사되었습니다!
OADP(OpenShift API for Data Protection) 옵션을 사용하여 해시, 암호화 및 분할에 대한 기본 Kopia 알고리즘을 재정의하여 Kopia 성능을 개선하거나 성능 지표를 비교할 수 있습니다. DPA의 spec.configuration.velero.podConfig.env
섹션에서 다음 환경 변수를 설정할 수 있습니다.
-
KOPIA_HASHING_ALGORITHM
-
KOPIA_ENCRYPTION_ALGORITHM
-
KOPIA_SPLITTER_ALGORITHM
사전 요구 사항
- OADP Operator가 설치되어 있습니다.
- 클라우드 공급자가 제공하는 인증 정보를 사용하여 시크릿을 생성했습니다.
DPA(Data Protection Application)의 분할, 해시 및 암호화를 위한 Kopia 알고리즘의 구성은 초기 Kopia 리포지토리 생성 중에만 적용되며 나중에 변경할 수 없습니다.
다른 Kopia 알고리즘을 사용하려면 오브젝트 스토리지에 이전 Kopia 리포지토리가 포함되어 있지 않은지 확인합니다. Backup Storage Location(BSL)에서 새 오브젝트 스토리지를 구성하거나 BSL 구성에서 오브젝트 스토리지에 대한 고유한 접두사를 지정합니다.
절차
다음 예와 같이 해시, 암호화 및 분할에 대한 환경 변수를 사용하여 DPA를 구성합니다.
DPA 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.21.3.2. Kopia 해시, 암호화 및 분할 알고리즘을 재정의하는 사용 사례 링크 복사링크가 클립보드에 복사되었습니다!
사용 사례 예제에서는 해시, 암호화 및 분할에 Kopia 환경 변수를 사용하여 애플리케이션 백업을 수행하는 방법을 보여줍니다. 백업을 AWS S3 버킷에 저장합니다. 그런 다음 Kopia 리포지토리에 연결하여 환경 변수를 확인합니다.
사전 요구 사항
- OADP Operator가 설치되어 있습니다.
- AWS S3 버킷이 백업 스토리지 위치로 구성되어 있습니다.
- 클라우드 공급자가 제공하는 인증 정보를 사용하여 시크릿을 생성했습니다.
- Kopia 클라이언트를 설치했습니다.
- 별도의 네임스페이스에서 영구 볼륨이 실행되는 애플리케이션이 있습니다.
절차
다음 예와 같이 DPA(Data Protection Application)를 구성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 DPA를 생성합니다.
oc create -f <dpa_file_name>
$ oc create -f <dpa_file_name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 구성한 DPA의 파일 이름을 지정합니다.
다음 명령을 실행하여 DPA가 조정되었는지 확인합니다.
oc get dpa -o yaml
$ oc get dpa -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 예와 같이 backup CR을 생성합니다.
백업 CR의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 클러스터에 설치된 애플리케이션의 네임스페이스를 지정합니다.
다음 명령을 실행하여 백업을 생성합니다.
oc apply -f <backup_file_name>
$ oc apply -f <backup_file_name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 백업 CR 파일의 이름을 지정합니다.
다음 명령을 실행하여 백업이 완료되었는지 확인합니다.
oc get backups.velero.io <backup_name> -o yaml
$ oc get backups.velero.io <backup_name> -o yaml
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 백업 이름을 지정합니다.
검증
다음 명령을 실행하여 Kopia 리포지토리에 연결합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고AWS S3 이외의 스토리지 공급자를 사용하는 경우 버킷 끝점 URL 매개변수인
--endpoint
를 명령에 추가해야 합니다.다음 명령을 실행하여 Kopia에서 DPA에 구성된 환경 변수를 사용하는지 확인합니다.
kopia repository status
$ kopia repository status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.21.3.3. Kopia 해시, 암호화 및 분할 알고리즘 벤치마킹 링크 복사링크가 클립보드에 복사되었습니다!
Kopia 명령을 실행하여 해시, 암호화 및 분할 알고리즘을 벤치마킹할 수 있습니다. 벤치마킹 결과에 따라 워크로드에 가장 적합한 알고리즘을 선택할 수 있습니다. 이 절차에서는 클러스터의 Pod에서 Kopia 벤치마킹 명령을 실행합니다. 벤치마킹 결과는 CPU 속도, 사용 가능한 RAM, 디스크 속도, 현재 I/O 로드 등에 따라 다를 수 있습니다.
사전 요구 사항
- OADP Operator가 설치되어 있습니다.
- 별도의 네임스페이스에서 영구 볼륨이 실행되는 애플리케이션이 있습니다.
- CSI(Container Storage Interface) 스냅샷을 사용하여 애플리케이션 백업을 실행합니다.
DPA(Data Protection Application)의 분할, 해시 및 암호화를 위한 Kopia 알고리즘의 구성은 초기 Kopia 리포지토리 생성 중에만 적용되며 나중에 변경할 수 없습니다.
다른 Kopia 알고리즘을 사용하려면 오브젝트 스토리지에 이전 Kopia 리포지토리가 포함되어 있지 않은지 확인합니다. Backup Storage Location(BSL)에서 새 오브젝트 스토리지를 구성하거나 BSL 구성에서 오브젝트 스토리지에 대한 고유한 접두사를 지정합니다.
절차
다음 예와 같이
must-gather
Pod를 구성합니다. OADP 버전 1.3 이상에oadp-mustgather
이미지를 사용하고 있는지 확인합니다.Pod 구성 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고Kopia 클라이언트는
oadp-mustgather
이미지에서 사용할 수 있습니다.다음 명령을 실행하여 Pod를 생성합니다.
oc apply -f <pod_config_file_name>
$ oc apply -f <pod_config_file_name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Pod 구성에 대한 YAML 파일의 이름을 지정합니다.
Kopia가 리포지토리에 연결할 수 있도록 Pod의 SCC(보안 컨텍스트 제약 조건)가
anyuid
인지 확인합니다.oc describe pod/oadp-mustgather-pod | grep scc
$ oc describe pod/oadp-mustgather-pod | grep scc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
openshift.io/scc: anyuid
openshift.io/scc: anyuid
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 SSH를 통해 포드에 연결합니다.
oc -n openshift-adp rsh pod/oadp-mustgather-pod
$ oc -n openshift-adp rsh pod/oadp-mustgather-pod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Kopia 리포지토리에 연결합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고다음은 예제 명령입니다. 명령은 오브젝트 스토리지 공급자에 따라 다를 수 있습니다.
해시 알고리즘을 벤치마크하려면 다음 명령을 실행합니다.
kopia benchmark hashing
sh-5.1# kopia benchmark hashing
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 암호화 알고리즘을 벤치마크하려면 다음 명령을 실행합니다.
kopia benchmark encryption
sh-5.1# kopia benchmark encryption
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow splitter 알고리즘을 벤치마크하려면 다음 명령을 실행합니다.
kopia benchmark splitter
sh-5.1# kopia benchmark splitter
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow