4.6. OADP 백업


4.6.1. 애플리케이션 백업

Backup CR(사용자 정의 리소스)을 생성하여 애플리케이션을 백업합니다. Backup CR 생성을 참조하십시오.

Backup CR은 Kubernetes 리소스 및 내부 이미지, S3 오브젝트 스토리지, 클라우드 공급자가 기본 스냅샷 API 또는 CSI(Container Storage Interface)를 사용하는 경우 OpenShift Data Foundation 4와 같은 스냅샷을 생성하는 경우 S3 오브젝트 스토리지, 영구 볼륨(PV)에 대한 백업 파일을 생성합니다.

CSI 볼륨 스냅샷에 대한 자세한 내용은 CSI 볼륨 스냅샷을 참조하십시오.

중요

S3 스토리지의 CloudStorage API는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

  • 클라우드 공급자에 기본 스냅샷 API가 있거나 CSI 스냅샷을 지원하는 경우 Backup CR은 스냅샷을 생성하여 PV(영구 볼륨)를 백업합니다. CSI 스냅샷 작업에 대한 자세한 내용은 CSI 스냅샷을 사용하여 영구 볼륨 백업을 참조하십시오.
  • 클라우드 공급자가 스냅샷을 지원하지 않거나 애플리케이션이 NFS 데이터 볼륨에 있는 경우 Restic을 사용하여 백업을 생성할 수 있습니다. Restic을 사용하여 애플리케이션 백업을 참조하십시오.
중요

OADP(OpenShift API for Data Protection)는 다른 소프트웨어에 의해 생성된 볼륨 스냅샷 백업 기능을 지원하지 않습니다.

백업 작업 전이나 후에 명령을 실행하기 위해 백업 후크를 생성할 수 있습니다. 백업 후크 생성 을 참조하십시오.

Backup CR 대신 Schedule CR을 생성하여 백업을 예약할 수 있습니다. 백업 일정을 참조하십시오.

4.6.1.1. 확인된 문제

OpenShift Container Platform 4.14는 Restic 복원 프로세스 중에 Pod 준비 상태를 방해할 수 있는 PSA(Pod 보안 승인) 정책을 적용합니다. 

이 문제는 OADP 1.1.6 및 OADP 1.2.2 릴리스에서 해결되어 사용자가 이러한 릴리스로 업그레이드하는 것이 좋습니다.

4.6.2. 백업 CR 생성

Backup CR(사용자 정의 리소스)을 생성하여 Kubernetes 이미지, 내부 이미지 및 영구 볼륨(PV)을 백업합니다.

사전 요구 사항

  • OpenShift API for Data Protection(OADP) Operator를 설치해야 합니다.
  • DataProtectionApplication CR은 Ready 상태에 있어야 합니다.
  • 백업 위치 사전 요구 사항:

    • Velero용으로 구성된 S3 오브젝트 스토리지가 있어야 합니다.
    • DataProtectionApplication CR에 백업 위치가 구성되어 있어야 합니다.
  • 스냅샷 위치 사전 요구 사항:

    • 클라우드 공급자에는 네이티브 스냅샷 API가 있거나 CSI(Container Storage Interface) 스냅샷을 지원해야 합니다.
    • CSI 스냅샷의 경우 CSI 드라이버를 등록하려면 VolumeSnapshotClass CR을 생성해야 합니다.
    • DataProtectionApplication CR에 볼륨 위치가 구성되어 있어야 합니다.

절차

  1. 다음 명령을 입력하여 backupStorageLocations CR을 검색합니다.

    $ oc get backupStorageLocations -n openshift-adp

    출력 예

    NAMESPACE       NAME              PHASE       LAST VALIDATED   AGE   DEFAULT
    openshift-adp   velero-sample-1   Available   11s              31m

  2. 다음 예와 같이 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
      labelSelector: 5
        matchLabels:
          app=<label_1>
          app=<label_2>
          app=<label_3>
      orLabelSelectors: 6
      - matchLabels:
          app=<label_1>
          app=<label_2>
          app=<label_3>
    1
    백업할 네임스페이스 배열을 지정합니다.
    2
    선택 사항: 백업에 포함할 리소스 배열을 지정합니다. 리소스는 바로 가기(예: 'pods'의 경우 'po')이거나 정규화될 수 있습니다. 지정하지 않으면 모든 리소스가 포함됩니다.
    3
    선택 사항: 백업에서 제외할 리소스 배열을 지정합니다. 리소스는 바로 가기(예: 'pods'의 경우 'po')이거나 정규화될 수 있습니다.
    4
    backupStorageLocations CR의 이름을 지정합니다.
    5
    지정된 라벨이 모두 있는 백업 리소스의 {key,value} 쌍의 맵입니다.
    6
    지정된 라벨이 하나 이상 있는 백업 리소스의 {key,value} 쌍의 맵입니다.
  3. Backup CR의 상태가 Completed 인지 확인합니다.

    $ oc get backup -n openshift-adp <backup> -o jsonpath='{.status.phase}'

4.6.3. CSI 스냅샷을 사용하여 영구 볼륨 백업

Backup CR을 생성하기 전에 클라우드 스토리지의 VolumeSnapshotClass CR(사용자 정의 리소스)을 편집하여 CSI(Container Storage Interface) 스냅샷을 사용하여 영구 볼륨을 백업 합니다. CSI 볼륨 스냅샷을 참조하십시오.

자세한 내용은 Backup CR 생성을 참조하십시오.

사전 요구 사항

  • 클라우드 공급자는 CSI 스냅샷을 지원해야 합니다.
  • DataProtectionApplication CR에서 CSI를 활성화해야 합니다.

절차

  • VolumeSnapshotClass 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"
    driver: <csi_driver>
    deletionPolicy: Retain

이제 Backup CR을 생성할 수 있습니다.

4.6.4. Restic으로 애플리케이션 백업

클라우드 공급자가 스냅샷을 지원하지 않거나 애플리케이션이 NFS 데이터 볼륨에 있는 경우 Restic을 사용하여 백업을 생성할 수 있습니다.

참고

Restic 은 기본적으로 OADP Operator에 의해 설치됩니다.

Restic과 OADP 통합은 거의 모든 유형의 Kubernetes 볼륨을 백업하고 복원하는 솔루션을 제공합니다. 이러한 통합은 기존 기능을 대체하지 않고 OADP 기능에 추가됩니다.

Backup 사용자 정의 리소스(CR)를 편집하여 Kubernetes 리소스, 내부 이미지 및 영구 볼륨을 Restic으로 백업합니다.

DataProtectionApplication CR에서 스냅샷 위치를 지정할 필요가 없습니다.

중요

Restic은 hostPath 볼륨 백업을 지원하지 않습니다. 자세한 내용은 추가 Restic 제한 사항을 참조하십시오.

사전 요구 사항

  • OpenShift API for Data Protection(OADP) Operator를 설치해야 합니다.
  • DataProtectionApplication CR에서 spec.configuration.restic.enablefalse 로 설정하여 기본 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:
      defaultVolumesToRestic: true 1
    ...
    1
    spec 블록에 defaultVolumesToRestic: true 를 추가합니다.

4.6.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
    오류 처리에 허용되는 값은 FailContinue 입니다. 기본값은 Fail 입니다.
    10
    선택 사항: 명령을 실행할 때까지 대기하는 시간입니다. 기본값은 30s 입니다.
    11
    이 블록은 사전 백업 후크와 동일한 매개변수를 사용하여 백업 후에 실행할 후크 배열을 정의합니다.

4.6.6. 스케줄 CR을 사용하여 백업 예약

schedule 작업을 사용하면 Cron 표현식에 정의된 지정된 시간에 데이터 백업을 생성할 수 있습니다.

Backup CR 대신 Schedule CR(사용자 정의 리소스)을 생성하여 백업을 예약합니다.

주의

다른 백업이 생성되기 전에 백업이 완료될 수 있도록 백업 일정에 충분한 시간을 남겨 둡니다.

예를 들어 네임스페이스의 백업이 일반적으로 10분 정도 걸리는 경우 15분마다 백업을 더 자주 예약하지 마십시오.

사전 요구 사항

  • OpenShift API for Data Protection(OADP) Operator를 설치해야 합니다.
  • DataProtectionApplication CR은 Ready 상태에 있어야 합니다.

절차

  1. backupStorageLocations CR을 검색합니다.

    $ oc get backupStorageLocations -n openshift-adp

    출력 예

    NAMESPACE       NAME              PHASE       LAST VALIDATED   AGE   DEFAULT
    openshift-adp   velero-sample-1   Available   11s              31m

  2. 다음 예와 같이 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
        defaultVolumesToRestic: true 4
        ttl: 720h0m0s
    EOF
    1
    백업을 예약하는 Cron 표현식(예: 0 7 * * * )은 매일 7:00에 백업을 수행합니다.
    2
    백업할 네임스페이스 배열입니다.
    3
    backupStorageLocations CR의 이름입니다.
    4
    선택 사항: Restic을 사용하여 볼륨을 백업하는 경우 defaultVolumesToRestic: true 키-값 쌍을 추가합니다.
  3. 예약된 백업이 실행된 후 Schedule CR의 상태가 Completed 인지 확인합니다.

    $ oc get schedule -n openshift-adp <schedule> -o jsonpath='{.status.phase}'

4.6.7. 백업 삭제

Backup CR(사용자 정의 리소스)을 삭제하여 백업 파일을 제거할 수 있습니다.

주의

Backup CR 및 관련 오브젝트 스토리지 데이터를 삭제한 후에는 삭제된 데이터를 복구할 수 없습니다.

사전 요구 사항

  • 백업 CR을 생성했습니다.
  • Backup CR의 이름과 이를 포함하는 네임스페이스를 알고 있습니다.
  • Velero CLI 툴을 다운로드했습니다.
  • 클러스터에서 Velero 바이너리에 액세스할 수 있습니다.

절차

  • Backup CR을 삭제하려면 다음 작업 중 하나를 선택합니다.

    • Backup CR을 삭제하고 연결된 오브젝트 스토리지 데이터를 유지하려면 다음 명령을 실행합니다.

      $ oc delete backup <backup_CR_name> -n <velero_namespace>
    • Backup CR을 삭제하고 연결된 오브젝트 스토리지 데이터를 삭제하려면 다음 명령을 실행합니다.

      $ velero backup delete <backup_CR_name> -n <velero_namespace>

      다음과 같습니다.

      <backup_CR_name>
      Backup 사용자 정의 리소스의 이름을 지정합니다.
      <velero_namespace>
      Backup 사용자 정의 리소스가 포함된 네임스페이스를 지정합니다.

4.6.8. Kopia 정보

Kopia는 데이터의 암호화된 스냅샷을 작성하고 선택한 원격 또는 클라우드 스토리지에 스냅샷을 저장할 수 있는 빠르고 안전한 오픈 소스 백업 및 복원 도구입니다.

Kopia는 네트워크 및 로컬 스토리지 위치와 다음을 포함한 많은 클라우드 또는 원격 스토리지 위치를 지원합니다.

  • Amazon S3 및 S3와 호환되는 모든 클라우드 스토리지
  • Azure Blob Storage
  • Google Cloud Storage Platform

Kopia는 스냅샷을 위해 콘텐츠 주소 지정 가능 스토리지를 사용합니다.

  • 각 스냅샷은 항상 증분입니다. 즉, 모든 데이터가 파일 콘텐츠를 기반으로 리포지토리에 한 번 업로드됩니다. 파일은 수정된 경우에만 리포지토리에 업로드됩니다.
  • 동일한 파일의 여러 복사본이 한 번 저장되므로 중복 제거가 수행됩니다. 대용량 파일을 이동하거나 변경한 후 Kopia는 동일한 콘텐츠가 있고 다시 업로드하지 않는다는 것을 인식할 수 있습니다.

4.6.8.1. Kopia와 OADP 통합

OADP 1.3은 Restic 외에도 Pod 볼륨 백업의 백업 메커니즘으로 Kopia를 지원합니다. 설치 시 DataProtectionApplication CR(사용자 정의 리소스)에서 uploaderType 필드를 설정하여 설치 시 하나 이상을 선택해야 합니다. 가능한 값은 restic 또는 kopia 입니다. uploaderType 을 지정하지 않으면 OADP 1.3의 기본값은 Kopia를 백업 메커니즘으로 사용합니다. 데이터는 통합 리포지토리로 작성 및 읽습니다.

Kopia DataProtectionApplication 구성

apiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
metadata:
  name: dpa-sample
spec:
  configuration:
    nodeAgent:
      enable: true
      uploaderType: kopia
# ...

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.