4.8. OADP 백업
4.8.1. 애플리케이션 백업
빈번한 백업은 백업 스토리지 위치에 스토리지를 사용할 수 있습니다. 로컬이 아닌 백업(예: S3 버킷)을 사용하는 경우 백업, 보존 시간, PV(영구 볼륨)의 데이터 양을 확인합니다. 수행된 모든 백업은 만료될 때까지 유지되므로 일정의 라이브(TTL) 설정도 확인합니다.
Backup
사용자 정의 리소스(CR)를 생성하여 애플리케이션을 백업할 수 있습니다. 자세한 내용은 Backup CR 생성을 참조하십시오.
-
Backup
CR은 S3 오브젝트 스토리지에 Kubernetes 리소스 및 내부 이미지에 대한 백업 파일을 생성합니다. -
클라우드 공급자에 기본 스냅샷 API가 있거나 CSI 스냅샷을 지원하는 경우
Backup
CR은 스냅샷을 생성하여 PV(영구 볼륨)를 백업합니다. CSI 스냅샷 작업에 대한 자세한 내용은 CSI 스냅샷을 사용하여 영구 볼륨 백업을 참조하십시오.
CSI 볼륨 스냅샷에 대한 자세한 내용은 CSI 볼륨 스냅샷을 참조하십시오.
오브젝트 스토리지용 버킷 생성을 자동화하는 CloudStorage
API는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
API는 CloudStorage 오브젝트를 사용하고 OADP에서 CloudStorage
CloudStorage
API를 사용하여 BackupStorageLocation
으로 사용할 S3 버킷을 자동으로 생성하도록 하는 경우 기술 프리뷰 기능입니다.
CloudStorage
API는 기존 S3 버킷을 지정하여 BackupStorageLocation
오브젝트를 수동으로 생성할 수 있도록 지원합니다. S3 버킷을 자동으로 생성하는 CloudStorage
API는 현재 AWS S3 스토리지에만 활성화됩니다.
- 클라우드 공급자가 스냅샷을 지원하지 않거나 애플리케이션이 NFS 데이터 볼륨에 있는 경우 Kopia 또는 Restic을 사용하여 백업을 생성할 수 있습니다. 파일 시스템 백업: Kopia 또는 Restic을 사용하여 애플리케이션 백업을 참조하십시오.
…/.snapshot: 읽기 전용 파일 시스템
오류로 인해 실패합니다.
…/.snapshot
디렉터리는 여러 NFS 서버에서 사용하는 스냅샷 복사 디렉터리입니다. 이 디렉터리에는 기본적으로 읽기 전용 액세스 권한이 있으므로 Velero는 이 디렉터리로 복원할 수 없습니다.
.snapshot
디렉터리에 Velero 쓰기 액세스 권한을 부여하지 말고 이 디렉터리에 대한 클라이언트 액세스를 비활성화합니다.
OADP(OpenShift API for Data Protection)는 다른 소프트웨어에 의해 생성된 볼륨 스냅샷 백업 기능을 지원하지 않습니다.
4.8.1.1. 백업을 실행하고 복원하기 전에 리소스 미리 보기
OADP는 유형, 네임스페이스 또는 레이블을 기반으로 애플리케이션 리소스를 백업합니다. 즉, 백업이 완료된 후 리소스를 볼 수 있습니다. 마찬가지로 복원 작업이 완료된 후 네임스페이스, 영구 볼륨(PV) 또는 라벨을 기반으로 복원된 오브젝트를 볼 수 있습니다. 리소스를 미리 미리 보려면 백업 및 복원 작업을 예행히 실행할 수 있습니다.
사전 요구 사항
- OADP Operator가 설치되어 있습니다.
절차
실제 백업을 실행하기 전에 백업에 포함된 리소스를 미리 보려면 다음 명령을 실행합니다.
$ velero backup create <backup-name> --snapshot-volumes false 1
- 1
--snapshot-volumes
매개변수 값을false
로 지정합니다.
백업 리소스에 대한 자세한 내용을 보려면 다음 명령을 실행합니다.
$ velero describe backup <backup_name> --details 1
- 1
- 백업 이름을 지정합니다.
실제 복원을 실행하기 전에 복원에 포함된 리소스를 미리 보려면 다음 명령을 실행합니다.
$ velero restore create --from-backup <backup-name> 1
- 1
- 백업 리소스를 검토하기 위해 생성된 백업의 이름을 지정합니다.
중요velero restore create
명령은 클러스터에 복원 리소스를 생성합니다. 리소스를 검토한 후 복원의 일부로 생성된 리소스를 삭제해야 합니다.복원 리소스에 대한 자세한 내용을 보려면 다음 명령을 실행합니다.
$ velero describe restore <restore_name> --details 1
- 1
- 복원의 이름을 지정합니다.
백업 작업 전이나 후에 명령을 실행하기 위해 백업 후크를 생성할 수 있습니다. 백업 후크 생성 을 참조하십시오.
Backup
CR 대신 Schedule
CR을 생성하여 백업을 예약할 수 있습니다. 스케줄 CR을 사용하여 백업 스케줄링 을 참조하십시오.
4.8.1.2. 확인된 문제
OpenShift Container Platform 4.14는 Restic 복원 프로세스 중에 Pod 준비 상태를 방해할 수 있는 PSA(Pod 보안 승인) 정책을 적용합니다.
이 문제는 OADP 1.1.6 및 OADP 1.2.2 릴리스에서 해결되어 사용자가 이러한 릴리스로 업그레이드하는 것이 좋습니다.
4.8.2. 백업 CR 생성
Backup CR(사용자 정의 리소스)을 생성하여 Kubernetes 이미지, 내부 이미지 및 PV(영구 볼륨)를 Backup
합니다.
사전 요구 사항
- OADP(Data Protection) Operator를 위한 OpenShift API를 설치해야 합니다.
-
DataProtectionApplication
CR은Ready
상태에 있어야 합니다. 백업 위치 사전 요구 사항:
- Velero에 대해 구성된 S3 오브젝트 스토리지가 있어야 합니다.
-
DataProtectionApplication
CR에 구성된 백업 위치가 있어야 합니다.
스냅샷 위치 사전 요구 사항:
- 클라우드 공급자에는 기본 스냅샷 API가 있거나 CSI(Container Storage Interface) 스냅샷을 지원해야 합니다.
-
CSI 스냅샷의 경우 CSI 드라이버를 등록하려면
VolumeSnapshotClass
CR을 생성해야 합니다. -
DataProtectionApplication
CR에 구성된 볼륨 위치가 있어야 합니다.
절차
다음 명령을 입력하여
backupStorageLocations
CR을 검색합니다.$ oc get backupStorageLocations -n openshift-adp
출력 예
NAMESPACE NAME PHASE LAST VALIDATED AGE DEFAULT openshift-adp velero-sample-1 Available 11s 31m
다음 예와 같이
Backup
CR을 생성합니다.apiVersion: velero.io/v1 kind: Backup metadata: name: <backup> labels: velero.io/storage-location: default namespace: openshift-adp spec: hooks: {} includedNamespaces: - <namespace> 1 includedResources: [] 2 excludedResources: [] 3 storageLocation: <velero-sample-1> 4 ttl: 720h0m0s 5 labelSelector: 6 matchLabels: app: <label_1> app: <label_2> app: <label_3> orLabelSelectors: 7 - matchLabels: app: <label_1> app: <label_2> app: <label_3>
- 1
- 백업할 네임스페이스 배열을 지정합니다.
- 2
- 선택 사항: 백업에 포함할 리소스 배열을 지정합니다. 리소스는 바로 가기(예: 'pods'의 경우')이거나 정규화된 것일 수 있습니다. 지정하지 않으면 모든 리소스가 포함됩니다.
- 3
- 선택 사항: 백업에서 제외할 리소스 배열을 지정합니다. 리소스는 바로 가기(예: 'pods'의 경우')이거나 정규화된 것일 수 있습니다.
- 4
backupStorageLocations
CR의 이름을 지정합니다.- 5
ttl
필드는 생성된 백업의 보존 시간과 백업 데이터를 정의합니다. 예를 들어 Restic을 백업 도구로 사용하는 경우 백업이 만료될 때까지 백업된 데이터 항목과 PV(영구 볼륨)의 데이터 콘텐츠가 저장됩니다. 그러나 이러한 데이터를 저장하면 대상 백업 위치에 더 많은 공간이 사용됩니다. 추가 스토리지는 만료되지 않은 다른 완료된 백업이 시간 초과되었을 수 있기 전에 생성되는 빈번한 백업과 함께 사용됩니다.- 6
- 지정된 라벨이 모두 있는 백업 리소스의 {key,value} 쌍의 맵입니다.
- 7
- 지정된 라벨이 하나 이상 있는 백업 리소스의 {key,value} 쌍의 맵입니다.
Backup
CR의 상태가Completed
인지 확인합니다.$ oc get backup -n openshift-adp <backup> -o jsonpath='{.status.phase}'
4.8.3. CSI 스냅샷을 사용하여 영구 볼륨 백업
Backup CR을 생성하기 전에 클라우드 스토리지의 VolumeSnapshotClass
CR(사용자 정의 리소스)을 편집하여 CSI(Container Storage Interface) 스냅샷을 사용하여 영구 볼륨을 백업
합니다. CSI 볼륨 스냅샷을 참조하십시오.
자세한 내용은 Backup CR 생성을 참조하십시오.
사전 요구 사항
- 클라우드 공급자는 CSI 스냅샷을 지원해야 합니다.
-
DataProtectionApplication
CR에서 CSI를 활성화해야 합니다.
절차
volume
Class
CR에metadata.labels.velero.io/csi-volumesnapshot-class: "true"
키-값 쌍을 추가합니다.설정 파일 예
apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshotClass metadata: name: <volume_snapshot_class_name> labels: velero.io/csi-volumesnapshot-class: "true" 1 annotations: snapshot.storage.kubernetes.io/is-default-class: true 2 driver: <csi_driver> deletionPolicy: <deletion_policy_type> 3
다음 단계
-
이제
Backup
CR을 생성할 수 있습니다.
4.8.4. 파일 시스템 백업을 사용하여 애플리케이션 백업: Kopia 또는 Restic
OADP를 사용하여 볼륨의 파일 시스템에서 Pod에 연결된 Kubernetes 볼륨을 백업하고 복원할 수 있습니다. 이 프로세스를 파일 시스템 백업(FSB) 또는 Pod 볼륨 백업(PVB)이라고 합니다. 이는 오픈 소스 백업 툴 Restic 또는 Kopia의 모듈을 사용하여 수행됩니다.
클라우드 공급자가 스냅샷을 지원하지 않거나 애플리케이션이 NFS 데이터 볼륨에 있는 경우 FSB를 사용하여 백업을 생성할 수 있습니다.
OADP와 FSB 통합은 거의 모든 유형의 Kubernetes 볼륨을 백업하고 복원하는 솔루션을 제공합니다. 이러한 통합은 OADP의 추가 기능이며 기존 기능을 대체할 수 없습니다.
Backup CR(사용자 정의 리소스)을 편집하여 Kopia 또는 Restic을 사용하여 Kubernetes 리소스, 내부 이미지 및 영구 볼륨을 백업
합니다.
DataProtectionApplication
CR에서 스냅샷 위치를 지정할 필요가 없습니다.
OADP 버전 1.3 이상에서는 애플리케이션 백업에 Kopia 또는 Restic 중 하나를 사용할 수 있습니다.
기본 제공 DataMover의 경우 Kopia를 사용해야 합니다.
OADP 버전 1.2 및 이전 버전에서는 애플리케이션 백업에 Restic만 사용할 수 있습니다.
FSB는 hostPath
볼륨 백업을 지원하지 않습니다. 자세한 내용은 FSB 제한 사항을 참조하십시오.
…/.snapshot: 읽기 전용 파일 시스템
오류로 인해 실패합니다.
…/.snapshot
디렉터리는 여러 NFS 서버에서 사용하는 스냅샷 복사 디렉터리입니다. 이 디렉터리에는 기본적으로 읽기 전용 액세스 권한이 있으므로 Velero는 이 디렉터리로 복원할 수 없습니다.
.snapshot
디렉터리에 Velero 쓰기 액세스 권한을 부여하지 말고 이 디렉터리에 대한 클라이언트 액세스를 비활성화합니다.
사전 요구 사항
- OADP(Data Protection) Operator를 위한 OpenShift API를 설치해야 합니다.
-
DataProtectionApplication
CR에서spec.configuration.
을nodeAgent
.enablefalse
로 설정하여 기본 nodeAgent 설치를 비활성화해서는 안 됩니다. -
spec.configuration.nodeAgent.uploaderType
을DataProtectionApplication
CR에서kopia
또는restic
으로 설정하여 업로드로 Kopia 또는 Restic을 선택해야 합니다. -
DataProtectionApplication
CR은Ready
상태에 있어야 합니다.
절차
다음 예와 같이
Backup
CR을 생성합니다.apiVersion: velero.io/v1 kind: Backup metadata: name: <backup> labels: velero.io/storage-location: default namespace: openshift-adp spec: defaultVolumesToFsBackup: true 1 ...
- 1
- OADP 버전 1.2 이상에서
spec
블록 내에defaultVolumesToFsBackup: true
설정을 추가합니다. OADP 버전 1.1에서defaultVolumesToRestic: true
를 추가합니다.
4.8.5. 백업 후크 생성
백업을 수행할 때 백업 중인 Pod에 따라 Pod 내의 컨테이너에서 실행할 하나 이상의 명령을 지정할 수 있습니다.
사용자 정의 작업 처리(사전 후크) 전에 또는 모든 사용자 정의 작업이 완료된 후 및 사용자 지정 작업에 의해 지정된 추가 항목이 백업(후크)되도록 명령을 구성할 수 있습니다.
Backup CR(사용자 정의 리소스)을 편집하여 Pod의 컨테이너에서 명령을 실행하는 백업
후크를 생성합니다.
절차
다음 예제와 같이
Backup
CR의spec.hooks
블록에 후크를 추가합니다.apiVersion: velero.io/v1 kind: Backup metadata: name: <backup> namespace: openshift-adp spec: hooks: resources: - name: <hook_name> includedNamespaces: - <namespace> 1 excludedNamespaces: 2 - <namespace> includedResources: [] - pods 3 excludedResources: [] 4 labelSelector: 5 matchLabels: app: velero component: server pre: 6 - exec: container: <container> 7 command: - /bin/uname 8 - -a onError: Fail 9 timeout: 30s 10 post: 11 ...
- 1
- 선택 사항: 후크가 적용되는 네임스페이스를 지정할 수 있습니다. 이 값을 지정하지 않으면 후크가 모든 네임스페이스에 적용됩니다.
- 2
- 선택 사항: 후크가 적용되지 않는 네임스페이스를 지정할 수 있습니다.
- 3
- 현재 Pod는 후크를 적용할 수 있는 유일한 지원 리소스입니다.
- 4
- 선택 사항: 후크가 적용되지 않는 리소스를 지정할 수 있습니다.
- 5
- 선택 사항: 이 후크는 라벨과 일치하는 오브젝트에만 적용됩니다. 이 값을 지정하지 않으면 후크가 모든 오브젝트에 적용됩니다.
- 6
- 백업 전에 실행할 후크 배열입니다.
- 7
- 선택 사항: 컨테이너를 지정하지 않으면 Pod의 첫 번째 컨테이너에서 명령이 실행됩니다.
- 8
- 추가되는
init
컨테이너의 진입점입니다. - 9
- 오류 처리에 허용되는 값은
Fail
및Continue
입니다. 기본값은Fail
입니다. - 10
- 선택 사항: 명령을 실행할 때까지 대기하는 시간입니다. 기본값은
30s
입니다. - 11
- 이 블록은 사전 백업 후크와 동일한 매개변수를 사용하여 백업 후 실행할 후크 배열을 정의합니다.
4.8.6. 스케줄 CR을 사용하여 백업 예약
schedule 작업을 사용하면 Cron 표현식에 지정된 특정 시간에 데이터 백업을 생성할 수 있습니다.
Backup
CR 대신 Schedule
CR(사용자 정의 리소스)을 생성하여 백업을 예약합니다.
다른 백업이 생성되기 전에 백업이 완료될 때까지 백업 일정에 충분한 시간을 남겨 둡니다.
예를 들어 네임스페이스 백업에 일반적으로 10분이 걸리는 경우 15분마다 백업을 더 자주 예약하지 마십시오.
사전 요구 사항
- OADP(Data Protection) Operator를 위한 OpenShift API를 설치해야 합니다.
-
DataProtectionApplication
CR은Ready
상태에 있어야 합니다.
절차
backupStorageLocations
CR을 검색합니다.$ oc get backupStorageLocations -n openshift-adp
출력 예
NAMESPACE NAME PHASE LAST VALIDATED AGE DEFAULT openshift-adp velero-sample-1 Available 11s 31m
다음 예와 같이
Schedule
CR을 생성합니다.$ cat << EOF | oc apply -f - apiVersion: velero.io/v1 kind: Schedule metadata: name: <schedule> namespace: openshift-adp spec: schedule: 0 7 * * * 1 template: hooks: {} includedNamespaces: - <namespace> 2 storageLocation: <velero-sample-1> 3 defaultVolumesToFsBackup: true 4 ttl: 720h0m0s 5 EOF
참고특정 간격으로 백업을 예약하려면 다음 형식으로 <
;duration_in_minutes&
gt;를 입력합니다.schedule: "*/10 * * * *"
따옴표 사이에 분 값을 입력합니다(
" "
).- 1
- 백업을 예약하는 Cron 표현식(예:
0 7 * * *
*)은 7:00에 매일 백업을 수행합니다. - 2
- 백업할 네임스페이스 배열입니다.
- 3
backupStorageLocations
CR의 이름입니다.- 4
- 선택 사항: OADP 버전 1.2 이상에서 Restic을 사용하여 볼륨 백업을 수행할 때
defaultVolumesToFsBackup: true
key-value 쌍을 구성에 추가합니다. OADP 버전 1.1에서 Restic을 사용하여 볼륨을 백업할 때defaultVolumesToRestic: true
key-value 쌍을 추가합니다. - 5
ttl
필드는 생성된 백업의 보존 시간과 백업 데이터를 정의합니다. 예를 들어 Restic을 백업 도구로 사용하는 경우 백업이 만료될 때까지 백업된 데이터 항목과 PV(영구 볼륨)의 데이터 콘텐츠가 저장됩니다. 그러나 이러한 데이터를 저장하면 대상 백업 위치에 더 많은 공간이 사용됩니다. 추가 스토리지는 만료되지 않은 다른 완료된 백업이 시간 초과되었을 수 있기 전에 생성되는 빈번한 백업과 함께 사용됩니다.
예약된 백업이 실행된 후
Schedule
CR의 상태가Completed
인지 확인합니다.$ oc get schedule -n openshift-adp <schedule> -o jsonpath='{.status.phase}'
4.8.7. 백업 삭제
DeleteBackupRequest
CR(사용자 정의 리소스)을 생성하거나 다음 절차에 설명된 대로 velero backup delete
명령을 실행하여 백업을 삭제할 수 있습니다.
백업 방법에 따라 볼륨 백업 아티팩트는 다른 시간에 삭제됩니다.
- Restic: 백업 삭제 후 다음 전체 유지 관리 주기에서 아티팩트가 삭제됩니다.
- CSI(Container Storage Interface): 백업을 삭제할 때 아티팩트가 즉시 삭제됩니다.
- Kopia: 아티팩트는 백업 삭제 후 Kopia 리포지토리의 세 가지 유지 관리 주기 후에 삭제됩니다.
4.8.7.1. DeleteBackupRequest CR을 생성하여 백업 삭제
DeleteBackupRequest
CR(사용자 정의 리소스)을 생성하여 백업을 삭제할 수 있습니다.
사전 요구 사항
- 애플리케이션의 백업을 실행했습니다.
절차
DeleteBackupRequest
CR 매니페스트 파일을 생성합니다.apiVersion: velero.io/v1 kind: DeleteBackupRequest metadata: name: deletebackuprequest namespace: openshift-adp spec: backupName: <backup_name> 1
- 1
- 백업 이름을 지정합니다.
DeleteBackupRequest
CR을 적용하여 백업을 삭제합니다.$ oc apply -f <deletebackuprequest_cr_filename>
4.8.7.2. Velero CLI를 사용하여 백업 삭제
Velero CLI를 사용하여 백업을 삭제할 수 있습니다.
사전 요구 사항
- 애플리케이션의 백업을 실행했습니다.
- Velero CLI를 다운로드하여 클러스터의 Velero 바이너리에 액세스할 수 있습니다.
절차
백업을 삭제하려면 다음 Velero 명령을 실행합니다.
$ velero backup delete <backup_name> -n openshift-adp 1
- 1
- 백업 이름을 지정합니다.
4.8.7.3. Kopia 리포지토리 유지 관리 정보
Kopia 리포지토리 유지 관리에는 다음 두 가지 유형이 있습니다.
- 빠른 유지 관리
- 매시간 을 실행하여 인덱스 Blob(n) 수를 낮게 유지합니다. 많은 수의 인덱스가 Kopia 작업의 성능에 부정적인 영향을 미칩니다.
- 동일한 메타데이터의 다른 사본이 있는지 확인하지 않고 리포지토리에서 메타데이터를 삭제하지 않습니다.
- 완전 유지 관리
- 더 이상 필요하지 않은 리포지토리 콘텐츠의 가비지 컬렉션을 수행하기 위해 24시간마다 실행됩니다.
-
전체 유지 관리 작업인
snapshot-gc
는 스냅샷 매니페스트에서 더 이상 액세스할 수 없는 모든 파일 및 디렉터리 목록을 찾아 삭제된 것으로 표시합니다. - 전체 유지 관리는 클러스터에서 활성 상태인 모든 스냅샷의 모든 디렉터리를 검사해야 하므로 리소스 비용이 많이 드는 작업입니다.
4.8.7.3.1. OADP에서 Kopia 유지 관리
repo-maintain-job
작업은 다음 예와 같이 OADP가 설치된 네임스페이스에서 실행됩니다.
pod/repo-maintain-job-173...2527-2nbls 0/1 Completed 0 168m pod/repo-maintain-job-173....536-fl9tm 0/1 Completed 0 108m pod/repo-maintain-job-173...2545-55ggx 0/1 Completed 0 48m
백업 오브젝트 스토리지에서 정리 및 아티팩트 제거에 대한 자세한 내용은 repo-maintain-job
의 로그를 확인할 수 있습니다. 다음 전체 사이클 유지 관리로 인해 repo-maintain-job
에서 다음 예에 표시된 대로 노트를 찾을 수 있습니다.
not due for full maintenance cycle until 2024-00-00 18:29:4
백업 오브젝트 스토리지에서 오브젝트를 삭제하려면 전체 유지 관리 주기를 성공적으로 실행해야 합니다. 즉, 백업 오브젝트 스토리지의 모든 아티팩트가 삭제될 때까지 최대 72시간을 기대할 수 있습니다.
4.8.7.4. 백업 리포지토리 삭제
백업을 삭제한 후 관련 아티팩트를 삭제하기 위해 Kopia 리포지토리 유지 관리 주기가 완료되면 메타데이터 또는 매니페스트 오브젝트에서 더 이상 백업을 참조하지 않습니다. 그런 다음 backuprepository
CR(사용자 정의 리소스)을 삭제하여 백업 삭제 프로세스를 완료할 수 있습니다.
사전 요구 사항
- 애플리케이션의 백업을 삭제했습니다.
- 백업이 삭제된 후 최대 72시간 동안 대기했습니다. 이 시간 프레임을 사용하면 Kopia에서 리포지토리 유지 관리 사이클을 실행할 수 있습니다.
절차
백업에 대한 백업 리포지토리 CR의 이름을 가져오려면 다음 명령을 실행합니다.
$ oc get backuprepositories.velero.io -n openshift-adp
백업 리포지토리 CR을 삭제하려면 다음 명령을 실행합니다.
$ oc delete backuprepository <backup_repository_name> -n openshift-adp 1
- 1
- 이전 단계에서 백업 리포지토리의 이름을 지정합니다.
4.8.8. Kopia 정보
Kopia는 데이터의 암호화된 스냅샷을 작성하고 선택한 원격 또는 클라우드 스토리지에 스냅샷을 저장할 수 있는 빠르고 안전한 오픈 소스 백업 및 복원 도구입니다.
Kopia는 네트워크 및 로컬 스토리지 위치와 다음을 포함한 많은 클라우드 또는 원격 스토리지 위치를 지원합니다.
- Amazon S3 및 S3와 호환되는 모든 클라우드 스토리지
- Azure Blob Storage
- Google Cloud Storage 플랫폼
Kopia는 스냅샷을 위해 콘텐츠 주소 지정 가능 스토리지를 사용합니다.
- 스냅샷은 항상 증분입니다. 이전 스냅샷에 이미 포함된 데이터는 리포지토리에 다시 업로드되지 않습니다. 파일은 수정된 경우에만 리포지토리에 업로드됩니다.
- 저장된 데이터는 중복됩니다. 동일한 파일의 복사본이 여러 개 있으면 둘 중 하나만 저장됩니다.
- 파일이 이동되거나 이름이 변경된 경우 Kopia는 동일한 콘텐츠가 있고 다시 업로드하지 않는다는 것을 인식할 수 있습니다.
4.8.8.1. Kopia와 OADP 통합
OADP 1.3은 Restic 외에도 Pod 볼륨 백업의 백업 메커니즘으로 Kopia를 지원합니다. 설치 시 DataProtectionApplication
CR(사용자 정의 리소스)에서 uploaderType
필드를 설정하여 설치 시 하나 이상을 선택해야 합니다. 가능한 값은 restic
또는 kopia
입니다. uploaderType
을 지정하지 않으면 OADP 1.3의 기본값은 Kopia를 백업 메커니즘으로 사용합니다. 데이터는 통합 리포지토리로 작성 및 읽습니다.
다음 예제에서는 Kopia를 사용하도록 구성된 DataProtectionApplication
CR을 보여줍니다.
apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: dpa-sample spec: configuration: nodeAgent: enable: true uploaderType: kopia # ...