검색

4.9. OADP 데이터 Mover

download PDF

4.9.1. OADP Data Mover 소개

OADP Data Mover를 사용하면 오류, 실수로 삭제 또는 클러스터 손상이 발생할 경우 저장소에서 상태 저장 애플리케이션을 복원할 수 있습니다.

참고

OADP 1.1 Data Mover는 기술 프리뷰 기능입니다.

OADP 1.2 Data Mover는 기능 및 성능이 크게 개선되었지만 여전히 기술 프리뷰 기능입니다.

중요

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

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

참고

마이그레이션 후 후크는 OADP 1.3 Data Mover에서 제대로 작동하지 않을 수 있습니다.

OADP 1.1 및 OADP 1.2 데이터 이동자는 동기 프로세스를 사용하여 애플리케이션 데이터를 백업 및 복원합니다. 프로세스는 동기적이므로 사용자는 데이터 Mover의 PVC(영구 볼륨 클레임)에 의해 관련 Pod의 영구 볼륨(PV)이 릴리스된 후에만 모든 복원 후 후크가 시작되도록 할 수 있습니다.

그러나 OADP 1.3 Data Mover는 비동기 프로세스를 사용합니다. 이러한 차이로 인해 Data Mover의 PVC에 의해 관련 PV를 릴리스하기 전에 복원 후 후크가 호출될 수 있습니다. 이 경우 Pod는 Pending 상태로 유지되며 후크를 실행할 수 없습니다. 후크 시도는 Pod가 릴리스되기 전에 시간 초과되어 PartiallyFailed 복원 작업을 수행할 수 있습니다.

4.9.1.1. OADP 데이터 Mover 사전 요구 사항

  • 별도의 네임스페이스에서 상태 저장 애플리케이션이 실행되고 있습니다.
  • OLM(Operator Lifecycle Manager)을 사용하여 OADP Operator를 설치했습니다.
  • 적절한 VolumeSnapshotClassStorageClass 를 생성했습니다.
  • OLM을 사용하여volSync Operator를 설치했습니다.

4.9.2. CSI 스냅샷에 Data Mover 사용

OADP Data Mover를 통해 고객은 CSI(Container Storage Interface) 볼륨 스냅샷을 원격 오브젝트 저장소에 백업할 수 있습니다. Data Mover가 활성화되면 오류, 실수로 삭제 또는 클러스터 손상이 발생하는 경우 오브젝트 저장소에서 가져온 CSI 볼륨 스냅샷을 사용하여 상태 저장 애플리케이션을 복원할 수 있습니다.

Data Mover 솔루션은volSync의 Restic 옵션을 사용합니다.

Data Mover는 CSI 볼륨 스냅샷의 백업 및 복원만 지원합니다.

OADP 1.2에서 VSB(Data Mover VolumeSnapshotBackups ) 및 VolumeSnapshotRestores (VSR)는 VolumeSnapshotMover(VSM)를 사용하여 큐에 추가됩니다. VSM의 성능은 동시에 진행 중 VSB 및 VSR 수를 지정하여 향상됩니다. 모든 비동기 플러그인 작업이 완료되면 백업이 완료된 것으로 표시됩니다.

참고

OADP 1.1 Data Mover는 기술 프리뷰 기능입니다.

OADP 1.2 Data Mover는 기능 및 성능이 크게 개선되었지만 여전히 기술 프리뷰 기능입니다.

중요

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

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

참고

Red Hat은 ODF CephFS 볼륨을 백업 및 복원하기 위해 OADP 1.2 Data Mover를 사용하는 고객은 성능을 개선하기 위해 OpenShift Container Platform 버전 4.12 이상을 업그레이드하거나 설치하는 것이 좋습니다. OADP Data Mover는 OpenShift Container Platform 버전 4.12 이상에서 CephFS shallow 볼륨을 활용할 수 있으며, 이 볼륨은 백업 시간을 개선할 수 있습니다.

사전 요구 사항

  • StorageClassVolumeSnapshotClass CR(사용자 정의 리소스)에서 CSI를 지원하는지 확인했습니다.
  • 하나의 VolumeSnapshotClass CR에만 주석 snapshot.storage.kubernetes.io/is-default-class: "true" 가 있는지 확인했습니다.

    참고

    OpenShift Container Platform 버전 4.12 이상에서 이것이 유일한 기본 VolumeSnapshotClass 인지 확인합니다.

  • VolumeSnapshotClass CR의 deletionPolicyRetain 으로 설정되어 있는지 확인했습니다.
  • 하나의 StorageClass CR에만 주석 storageclass.kubernetes.io/is-default-class: "true" 가 있는지 확인했습니다.
  • VolumeSnapshotClass CR에 velero.io/csi-volumesnapshot-class: "true" 레이블이 포함되어 있습니다.
  • OADP 네임스페이스에 oc annotate --overwrite namespace /openshift-adp volsync.backube/privileged-movers="true" 주석이 있는지 확인했습니다.

    참고

    OADP 1.1에서 위의 설정은 필수입니다.

    OADP 1.2에서는 대부분의 시나리오에서 privileged-movers 설정이 필요하지 않습니다. 컨테이너 권한 복원은volsync 사본에 적합해야 합니다. 일부 사용자 시나리오에서는 privileged-mover= true 설정이 해결되어야 하는 권한 오류가 있을 수 있습니다.

  • OLM(Operator Lifecycle Manager)을 사용하여 VolSync Operator를 설치했습니다.

    참고

    OADP Data Mover를 사용하려면volSync Operator가 필요합니다.

  • OLM을 사용하여 OADP Operator를 설치했습니다.

    참고

    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

    이 시나리오에서는 백업이 성공적으로 완료되도록 볼륨 크기 조정 또는 다른 파일 시스템 유형(예: ext4 )을 사용하는 것이 좋습니다.

절차

  1. 다음과 같이 .yaml 파일을 생성하여 Restic 시크릿을 구성합니다.

    apiVersion: v1
    kind: Secret
    metadata:
      name: <secret_name>
      namespace: openshift-adp
    type: Opaque
    stringData:
      RESTIC_PASSWORD: <secure_restic_password>
    참고

    기본적으로 Operator는 dm-credential 이라는 시크릿을 찾습니다. 다른 이름을 사용하는 경우 dpa.spec.features.dataMover.credentialName 을 사용하여 DPA(Data Protection Application) CR을 통해 이름을 지정해야 합니다.

  2. 다음 예와 유사한 DPA CR을 생성합니다. 기본 플러그인에는 CSI가 포함됩니다.

    DPA(Data Protection Application) CR 예

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: velero-sample
      namespace: openshift-adp
    spec:
      backupLocations:
        - velero:
            config:
              profile: default
              region: us-east-1
            credential:
              key: cloud
              name: cloud-credentials
            default: true
            objectStorage:
              bucket: <bucket_name>
              prefix: <bucket-prefix>
            provider: aws
      configuration:
        restic:
          enable: <true_or_false>
        velero:
           itemOperationSyncFrequency: "10s"
           defaultPlugins:
            - openshift
            - aws
            - csi
            - vsm 1
      features:
        dataMover:
          credentialName: restic-secret
          enable: true
          maxConcurrentBackupVolumes: "3" 2
          maxConcurrentRestoreVolumes: "3" 3
          pruneInterval: "14" 4
          volumeOptions: 5
          sourceVolumeOptions:
              accessMode: ReadOnlyMany
              cacheAccessMode: ReadWriteOnce
              cacheCapacity: 2Gi
          destinationVolumeOptions:
              storageClass: other-storageclass-name
              cacheAccessMode: ReadWriteMany
      snapshotLocations:
        - velero:
            config:
              profile: default
              region: us-west-2
            provider: aws

    1
    OADP 1.2만 해당
    2
    OADP 1.2만 해당 선택 사항: 백업에 대해 대기열에 추가할 수 있는 스냅샷 수의 상한을 지정합니다. 기본값은 10입니다.
    3
    OADP 1.2만 해당 선택 사항: 복원을 위해 대기열에 지정할 수 있는 스냅샷 수의 상한을 지정합니다. 기본값은 10입니다.
    4
    OADP 1.2만 해당 선택 사항: 리포지토리에서 Restic 정리를 실행하는 사이의 일 수를 지정합니다. 정리 작업에서는 데이터를 사용 가능한 공간으로 다시 구성하지만 프로세스의 일부로 중요한 I/O 트래픽을 생성할 수도 있습니다. 이 옵션을 설정하면 더 이상 참조되지 않는 데이터에서 스토리지 소비와 액세스 비용 간의 절충이 가능합니다.
    5
    OADP 1.2만 해당 선택 사항: 백업 및 복원을 위해 VolumeSync 볼륨 옵션을 지정합니다.

    OADP Operator는 두 개의 CRD(사용자 정의 리소스 정의), VolumeSnapshotBackupVolumeSnapshotRestore 를 설치합니다.

    VolumeSnapshotBackup CRD의 예

    apiVersion: datamover.oadp.openshift.io/v1alpha1
    kind: VolumeSnapshotBackup
    metadata:
      name: <vsb_name>
      namespace: <namespace_name> 1
    spec:
      volumeSnapshotContent:
        name: <snapcontent_name>
      protectedNamespace: <adp_namespace> 2
      resticSecretRef:
        name: <restic_secret_name>

    1
    볼륨 스냅샷이 존재하는 네임스페이스를 지정합니다.
    2
    OADP Operator가 설치된 네임스페이스를 지정합니다. 기본값은 openshift-adp 입니다.

    VolumeSnapshotRestore CRD의 예

    apiVersion: datamover.oadp.openshift.io/v1alpha1
    kind: VolumeSnapshotRestore
    metadata:
      name: <vsr_name>
      namespace: <namespace_name> 1
    spec:
      protectedNamespace: <protected_ns> 2
      resticSecretRef:
        name: <restic_secret_name>
      volumeSnapshotMoverBackupRef:
        sourcePVCData:
          name: <source_pvc_name>
          size: <source_pvc_size>
        resticrepository: <your_restic_repo>
        volumeSnapshotClassName: <vsclass_name>

    1
    볼륨 스냅샷이 존재하는 네임스페이스를 지정합니다.
    2
    OADP Operator가 설치된 네임스페이스를 지정합니다. 기본값은 openshift-adp 입니다.
  3. 다음 단계를 수행하여 볼륨 스냅샷을 백업할 수 있습니다.

    1. 백업 CR을 생성합니다.

      apiVersion: velero.io/v1
      kind: Backup
      metadata:
        name: <backup_name>
        namespace: <protected_ns> 1
      spec:
        includedNamespaces:
        - <app_ns> 2
        storageLocation: velero-sample-1
      1
      Operator가 설치된 네임스페이스를 지정합니다. 기본 네임스페이스는 openshift-adp 입니다.
      2
      백업할 애플리케이션 네임스페이스 또는 네임스페이스를 지정합니다.
    2. 최대 10분 정도 기다린 후 다음 명령을 입력하여 VolumeSnapshotBackup CR 상태가 완료되었는지 확인합니다.

      $ oc get vsb -n <app_ns>
      $ oc get vsb <vsb_name> -n <app_ns> -o jsonpath="{.status.phase}"

      오브젝트는 DPA에서 구성된 오브젝트 저장소에서 생성됩니다.

      참고

      VolumeSnapshotBackup CR의 상태가 실패 가 되는 경우 문제를 해결하려면 Velero 로그를 참조하십시오.

  4. 다음 단계를 수행하여 볼륨 스냅샷을 복원할 수 있습니다.

    1. Velero CSI 플러그인에서 생성한 애플리케이션 네임스페이스 및 VolumeSnapshotContent 를 삭제합니다.
    2. Restore CR을 생성하고 restorePVtrue 로 설정합니다.

      Restore CR의 예

      apiVersion: velero.io/v1
      kind: Restore
      metadata:
        name: <restore_name>
        namespace: <protected_ns>
      spec:
        backupName: <previous_backup_name>
        restorePVs: true

    3. 최대 10분 정도 기다린 후 다음 명령을 입력하여 VolumeSnapshotRestore CR 상태가 완료되었는지 확인합니다.

      $ oc get vsr -n <app_ns>
      $ oc get vsr <vsr_name> -n <app_ns> -o jsonpath="{.status.phase}"
    4. 애플리케이션 데이터 및 리소스가 복원되었는지 확인합니다.

      참고

      VolumeSnapshotRestore CR의 상태가 'Failed'가 되면 문제 해결을 위해 Velero 로그를 참조하십시오.

4.9.3. Ceph 스토리지에서 OADP 1.2 Data Mover 사용

OADP 1.2 Data Mover를 사용하여 CephFS, CephRBD 또는 둘 다 사용하는 클러스터의 애플리케이션 데이터를 백업하고 복원할 수 있습니다.

OADP 1.2 Data Mover는 대규모 환경을 지원하는 Ceph 기능을 활용합니다. 이러한 방법 중 하나는 OpenShift Container Platform 4.12 이상에서 사용할 수 있는 단순 복사 방법입니다. 이 기능은 소스 PVC(영구 볼륨 클레임)에 있는 것 이외의 StorageClassAccessMode 리소스 백업 및 복원을 지원합니다.

중요

CephFS shallow copy 기능은 백업 기능입니다. 복원 작업의 일부가 아닙니다.

4.9.3.1. Ceph 스토리지와 함께 OADP 1.2 Data Mover를 사용하기 위한 사전 요구 사항

다음 사전 요구 사항은 Ceph 스토리지를 사용하는 클러스터에서 OADP(OpenShift API for Data Protection) 1.2 Data Mover를 사용하는 모든 데이터 백업 및 복원 작업에 적용됩니다.

  • OpenShift Container Platform 4.12 이상을 설치했습니다.
  • OADP Operator가 설치되어 있습니다.
  • 네임스페이스 openshift-adp에 시크릿 cloud-credentials 를 생성했습니다.
  • Red Hat OpenShift Data Foundation을 설치했습니다.
  • Operator Lifecycle Manager를 사용하여 최신volSync Operator를 설치했습니다.

4.9.3.2. OADP 1.2 Data Mover와 함께 사용할 사용자 정의 리소스 정의

Red Hat OpenShift Data Foundation을 설치하면 기본 CephFS 및 CephRBD StorageClassVolumeSnapshotClass CR(사용자 정의 리소스)이 자동으로 생성됩니다. OADP(OpenShift API for Data Protection) 1.2 Data Mover와 함께 사용하려면 이러한 CR을 정의해야 합니다.

CR을 정의한 후 백업 및 복원 작업을 수행하기 전에 환경에 몇 가지 다른 변경을 수행해야 합니다.

4.9.3.2.1. OADP 1.2 Data Mover와 함께 사용할 CephFS 사용자 정의 리소스 정의

Red Hat OpenShift Data Foundation을 설치하면 기본 CephFS StorageClass 사용자 정의 리소스(CR) 및 기본 CephFS VolumeSnapshotClass CR이 자동으로 생성됩니다. OADP(OpenShift API for Data Protection) 1.2 Data Mover와 함께 사용할 이러한 CR을 정의할 수 있습니다.

절차

  1. 다음 예와 같이 VolumeSnapshotClass CR을 정의합니다.

    VolumeSnapshotClass CR의 예

    apiVersion: snapshot.storage.k8s.io/v1
    deletionPolicy: Retain 1
    driver: openshift-storage.cephfs.csi.ceph.com
    kind: VolumeSnapshotClass
    metadata:
      annotations:
        snapshot.storage.kubernetes.io/is-default-class: true 2
      labels:
        velero.io/csi-volumesnapshot-class: true 3
      name: ocs-storagecluster-cephfsplugin-snapclass
    parameters:
      clusterID: openshift-storage
      csi.storage.k8s.io/snapshotter-secret-name: rook-csi-cephfs-provisioner
      csi.storage.k8s.io/snapshotter-secret-namespace: openshift-storage

    1
    Retain 으로 설정해야 합니다.
    2
    true 로 설정해야 합니다.
    3
    true 로 설정해야 합니다.
  2. 다음 예와 같이 StorageClass CR을 정의합니다.

    StorageClass CR의 예

    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
      name: ocs-storagecluster-cephfs
      annotations:
        description: Provides RWO and RWX Filesystem volumes
        storageclass.kubernetes.io/is-default-class: true 1
    provisioner: openshift-storage.cephfs.csi.ceph.com
    parameters:
      clusterID: openshift-storage
      csi.storage.k8s.io/controller-expand-secret-name: rook-csi-cephfs-provisioner
      csi.storage.k8s.io/controller-expand-secret-namespace: openshift-storage
      csi.storage.k8s.io/node-stage-secret-name: rook-csi-cephfs-node
      csi.storage.k8s.io/node-stage-secret-namespace: openshift-storage
      csi.storage.k8s.io/provisioner-secret-name: rook-csi-cephfs-provisioner
      csi.storage.k8s.io/provisioner-secret-namespace: openshift-storage
      fsName: ocs-storagecluster-cephfilesystem
    reclaimPolicy: Delete
    allowVolumeExpansion: true
    volumeBindingMode: Immediate

    1
    true 로 설정해야 합니다.
4.9.3.2.2. OADP 1.2 Data Mover와 함께 사용할 CephRBD 사용자 정의 리소스 정의

Red Hat OpenShift Data Foundation을 설치하면 기본 CephRBD StorageClass CR(사용자 정의 리소스) 및 기본 CephRBD VolumeSnapshotClass CR이 자동으로 생성됩니다. OADP(OpenShift API for Data Protection) 1.2 Data Mover와 함께 사용할 이러한 CR을 정의할 수 있습니다.

절차

  1. 다음 예와 같이 VolumeSnapshotClass CR을 정의합니다.

    VolumeSnapshotClass CR의 예

    apiVersion: snapshot.storage.k8s.io/v1
    deletionPolicy: Retain 1
    driver: openshift-storage.rbd.csi.ceph.com
    kind: VolumeSnapshotClass
    metadata:
      labels:
        velero.io/csi-volumesnapshot-class: true 2
      name: ocs-storagecluster-rbdplugin-snapclass
    parameters:
      clusterID: openshift-storage
      csi.storage.k8s.io/snapshotter-secret-name: rook-csi-rbd-provisioner
      csi.storage.k8s.io/snapshotter-secret-namespace: openshift-storage

    1
    Retain 으로 설정해야 합니다.
    2
    true 로 설정해야 합니다.
  2. 다음 예와 같이 StorageClass CR을 정의합니다.

    StorageClass CR의 예

    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
      name: ocs-storagecluster-ceph-rbd
      annotations:
        description: 'Provides RWO Filesystem volumes, and RWO and RWX Block volumes'
    provisioner: openshift-storage.rbd.csi.ceph.com
    parameters:
      csi.storage.k8s.io/fstype: ext4
      csi.storage.k8s.io/provisioner-secret-namespace: openshift-storage
      csi.storage.k8s.io/provisioner-secret-name: rook-csi-rbd-provisioner
      csi.storage.k8s.io/node-stage-secret-name: rook-csi-rbd-node
      csi.storage.k8s.io/controller-expand-secret-name: rook-csi-rbd-provisioner
      imageFormat: '2'
      clusterID: openshift-storage
      imageFeatures: layering
      csi.storage.k8s.io/controller-expand-secret-namespace: openshift-storage
      pool: ocs-storagecluster-cephblockpool
      csi.storage.k8s.io/node-stage-secret-namespace: openshift-storage
    reclaimPolicy: Delete
    allowVolumeExpansion: true
    volumeBindingMode: Immediate

4.9.3.2.3. OADP 1.2 Data Mover와 함께 사용할 추가 사용자 정의 리소스 정의

기본 StorageClass 및 CephRBD VolumeSnapshotClass CR(사용자 정의 리소스)을 생성한 후 다음 CR을 생성해야 합니다.

  • shallow 복사 기능을 사용하도록 정의된 CephFS StorageClass CR
  • Restic Secret CR

절차

  1. CephFS StorageClass CR을 생성하고 다음 예와 같이 backingSnapshot 매개변수를 true 로 설정합니다.

    backingSnapshottrue로 설정된 CephFS StorageClass CR의 예

    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
      name: ocs-storagecluster-cephfs-shallow
      annotations:
        description: Provides RWO and RWX Filesystem volumes
        storageclass.kubernetes.io/is-default-class: false
    provisioner: openshift-storage.cephfs.csi.ceph.com
    parameters:
      csi.storage.k8s.io/provisioner-secret-namespace: openshift-storage
      csi.storage.k8s.io/provisioner-secret-name: rook-csi-cephfs-provisioner
      csi.storage.k8s.io/node-stage-secret-name: rook-csi-cephfs-node
      csi.storage.k8s.io/controller-expand-secret-name: rook-csi-cephfs-provisioner
      clusterID: openshift-storage
      fsName: ocs-storagecluster-cephfilesystem
      csi.storage.k8s.io/controller-expand-secret-namespace: openshift-storage
      backingSnapshot: true 1
      csi.storage.k8s.io/node-stage-secret-namespace: openshift-storage
    reclaimPolicy: Delete
    allowVolumeExpansion: true
    volumeBindingMode: Immediate

    1
    true 로 설정해야 합니다.
    중요

    CephFS VolumeSnapshotClassStorageClass CR의 값이 provisioner 에 대해 동일한지 확인합니다.

  2. 다음 예와 같이 Restic Secret CR을 구성합니다.

    Restic Secret CR의 예

    apiVersion: v1
    kind: Secret
    metadata:
      name: <secret_name>
      namespace: <namespace>
    type: Opaque
    stringData:
      RESTIC_PASSWORD: <restic_password>

4.9.3.3. OADP 1.2 Data Mover 및 CephFS 스토리지를 사용하여 데이터 백업 및 복원

OADP(OpenShift API for Data Protection) 1.2 Data Mover를 사용하여 CephFS의 단순 복사 기능을 활성화하여 CephFS 스토리지를 사용하여 데이터를 백업하고 복원할 수 있습니다.

사전 요구 사항

  • 상태 저장 애플리케이션은 CephFS를 프로비저너로 사용하는 PVC(영구 볼륨 클레임)가 있는 별도의 네임스페이스에서 실행됩니다.
  • StorageClassVolumeSnapshotClass CR(사용자 정의 리소스)은 CephFS 및 OADP 1.2 데이터 Mover에 대해 정의됩니다.
  • openshift-adp 네임스페이스에는 시크릿 cloud-credentials 가 있습니다.
4.9.3.3.1. CephFS 스토리지와 함께 사용할 DPA 생성

OADP(OpenShift API for Data Protection) 1.2 Data Mover를 사용하여 CephFS 스토리지를 사용하여 데이터를 백업하고 복원하기 전에 DPA(Data Protection Application) CR을 생성해야 합니다.

절차

  1. 다음 명령을 실행하여 VolumeSnapshotClass CR의 deletionPolicy 필드가 Retain 으로 설정되어 있는지 확인합니다.

    $ oc get volumesnapshotclass -A  -o jsonpath='{range .items[*]}{"Name: "}{.metadata.name}{"  "}{"Retention Policy: "}{.deletionPolicy}{"\n"}{end}'
  2. 다음 명령을 실행하여 VolumeSnapshotClass CR의 레이블이 true 로 설정되어 있는지 확인합니다.

    $ oc get volumesnapshotclass -A  -o jsonpath='{range .items[*]}{"Name: "}{.metadata.name}{"  "}{"labels: "}{.metadata.labels}{"\n"}{end}'
  3. 다음 명령을 실행하여 StorageClass CR의 storageclass.kubernetes.io/is-default-class 주석이 true 로 설정되어 있는지 확인합니다.

    $ oc get storageClass -A  -o jsonpath='{range .items[*]}{"Name: "}{.metadata.name}{"  "}{"annotations: "}{.metadata.annotations}{"\n"}{end}'
  4. 다음 예와 유사한 DPA(Data Protection Application) CR을 생성합니다.

    DPA CR 예

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: velero-sample
      namespace: openshift-adp
    spec:
      backupLocations:
        - velero:
            config:
              profile: default
              region: us-east-1
            credential:
              key: cloud
              name: cloud-credentials
            default: true
            objectStorage:
              bucket: <my_bucket>
              prefix: velero
           provider: aws
        configuration:
          restic:
            enable: false  1
          velero:
            defaultPlugins:
              - openshift
              - aws
              - csi
              - vsm
        features:
          dataMover:
            credentialName: <restic_secret_name> 2
            enable: true 3
            volumeOptionsForStorageClasses: 4
              ocs-storagecluster-cephfs:
                sourceVolumeOptions:
                  accessMode: ReadOnlyMany
                  cacheAccessMode: ReadWriteMany
                  cacheStorageClassName: ocs-storagecluster-cephfs
                  storageClassName: ocs-storagecluster-cephfs-shallow

    1
    enable 필드에 대한 기본값이 없습니다. 유효한 값은 true 또는 false입니다.
    2
    OADP 1.2 Data Mover 및 Ceph로 작업할 수 있는 환경을 준비할 때 생성한 Restic 시크릿 을 사용합니다. Restic Secret 을 사용하지 않는 경우 CR은 이 매개변수에 기본값 dm-credential 을 사용합니다.
    3
    enable 필드에 대한 기본값이 없습니다. 유효한 값은 true 또는 false입니다.
    4
    선택적 매개변수입니다. 각 storageClass 볼륨에 대해 다른 VolumeOptionsForStorageClass 레이블 세트를 정의할 수 있습니다. 이 구성은 다양한 공급자가 있는 볼륨에 대한 백업을 제공합니다. 선택적 VolumeOptionsForStorageClass 매개변수는 일반적으로 CephFS와 함께 사용되지만 모든 스토리지 유형에 사용할 수 있습니다.
4.9.3.3.2. OADP 1.2 데이터 Mover 및 CephFS 스토리지를 사용하여 데이터 백업

OADP(OpenShift API for Data Protection) 1.2 Data Mover를 사용하여 CephFS 스토리지의 부분 복사 기능을 활성화하여 CephFS 스토리지를 사용하여 데이터를 백업할 수 있습니다.

절차

  1. 다음 예와 같이 Backup CR을 생성합니다.

    Backup CR의 예

    apiVersion: velero.io/v1
    kind: Backup
    metadata:
      name: <backup_name>
      namespace: <protected_ns>
    spec:
      includedNamespaces:
      - <app_ns>
      storageLocation: velero-sample-1

  2. 다음 단계를 완료하여 VolumeSnapshotBackup CR의 진행 상황을 모니터링합니다.

    1. 모든 VolumeSnapshotBackup CR의 진행 상황을 확인하려면 다음 명령을 실행합니다.

      $ oc get vsb -n <app_ns>
    2. 특정 VolumeSnapshotBackup CR의 진행 상황을 확인하려면 다음 명령을 실행합니다.

      $ oc get vsb <vsb_name> -n <app_ns> -ojsonpath="{.status.phase}`
  3. VolumeSnapshotBackup CR의 상태가 Completed 가 될 때까지 몇 분 정도 기다립니다.
  4. Restic 시크릿에 제공된 오브젝트 저장소에 스냅샷이 하나 이상 있는지 확인합니다. /<OADP_namespace> 접두사가 있는 대상 BackupStorageLocation 스토리지 공급자에서 이 스냅샷을 확인할 수 있습니다.
4.9.3.3.3. OADP 1.2 Data Mover 및 CephFS 스토리지를 사용하여 데이터 복원

OADP(OpenShift API for Data Protection) 1.2 Data Mover를 사용하여 백업 프로세스에 CephFS 스토리지의 부분 복사 기능이 활성화된 경우 CephFS 스토리지를 사용하여 데이터를 복원할 수 있습니다. 단순 복사 기능은 복원 프로시저에서 사용되지 않습니다.

절차

  1. 다음 명령을 실행하여 애플리케이션 네임스페이스를 삭제합니다.

    $ oc delete vsb -n <app_namespace> --all
  2. 다음 명령을 실행하여 백업 중에 생성된 VolumeSnapshotContent CR을 삭제합니다.

    $ oc delete volumesnapshotcontent --all
  3. 다음 예와 같이 Restore CR을 생성합니다.

    Restore CR의 예

    apiVersion: velero.io/v1
    kind: Restore
    metadata:
      name: <restore_name>
      namespace: <protected_ns>
    spec:
      backupName: <previous_backup_name>

  4. 다음을 수행하여 VolumeSnapshotRestore CR의 진행 상황을 모니터링합니다.

    1. 모든 VolumeSnapshotRestore CR의 진행 상황을 확인하려면 다음 명령을 실행합니다.

      $ oc get vsr -n <app_ns>
    2. 특정 VolumeSnapshotRestore CR의 진행 상황을 확인하려면 다음 명령을 실행합니다.

      $ oc get vsr <vsr_name> -n <app_ns> -ojsonpath="{.status.phase}
  5. 다음 명령을 실행하여 애플리케이션 데이터가 복원되었는지 확인합니다.

    $ oc get route <route_name> -n <app_ns> -ojsonpath="{.spec.host}"

4.9.3.4. OADP 1.2 Data Mover 및 분할 볼륨을 사용하여 데이터 백업 및 복원(CephFS 및 Ceph RBD)

OADP(OpenShift API for Data Protection) 1.2 Data Mover를 사용하여 CephFS 및 CephRBD를 모두 사용하는 환경인 분할 볼륨이 있는 환경에서 데이터를 백업하고 복원할 수 있습니다.

사전 요구 사항

  • 상태 저장 애플리케이션은 CephFS를 프로비저너로 사용하는 PVC(영구 볼륨 클레임)가 있는 별도의 네임스페이스에서 실행됩니다.
  • StorageClassVolumeSnapshotClass CR(사용자 정의 리소스)은 CephFS 및 OADP 1.2 데이터 Mover에 대해 정의됩니다.
  • openshift-adp 네임스페이스에는 시크릿 cloud-credentials 가 있습니다.
4.9.3.4.1. 분할 볼륨과 함께 사용할 DPA 생성

OADP(OpenShift API for Data Protection) 1.2 Data Mover를 사용하여 분할 볼륨을 사용하여 데이터를 백업하고 복원하기 전에 DPA(Data Protection Application) CR을 생성해야 합니다.

절차

  • 다음 예와 같이 DPA(Data Protection Application) CR을 생성합니다.

    분할 볼륨이 있는 환경의 DPA CR의 예

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: velero-sample
      namespace: openshift-adp
    spec:
      backupLocations:
        - velero:
            config:
              profile: default
              region: us-east-1
            credential:
              key: cloud
              name: cloud-credentials
            default: true
            objectStorage:
              bucket: <my-bucket>
              prefix: velero
            provider: aws
      configuration:
        restic:
          enable: false
        velero:
          defaultPlugins:
            - openshift
            - aws
            - csi
            - vsm
      features:
        dataMover:
          credentialName: <restic_secret_name> 1
          enable: true
          volumeOptionsForStorageClasses: 2
            ocs-storagecluster-cephfs:
              sourceVolumeOptions:
                accessMode: ReadOnlyMany
                cacheAccessMode: ReadWriteMany
                cacheStorageClassName: ocs-storagecluster-cephfs
                storageClassName: ocs-storagecluster-cephfs-shallow
            ocs-storagecluster-ceph-rbd:
              sourceVolumeOptions:
                storageClassName: ocs-storagecluster-ceph-rbd
                cacheStorageClassName: ocs-storagecluster-ceph-rbd
              destinationVolumeOptions:
                storageClassName: ocs-storagecluster-ceph-rbd
                cacheStorageClassName: ocs-storagecluster-ceph-rbd

    1
    OADP 1.2 Data Mover 및 Ceph로 작업할 수 있는 환경을 준비할 때 생성한 Restic 시크릿 을 사용합니다. 그러지 않으면 CR에서 이 매개변수에 기본값 dm-credential 을 사용합니다.
    2
    storageClass 볼륨에 대해 다른 VolumeOptionsForStorageClass 라벨을 정의할 수 있으므로 다른 공급자가 있는 볼륨에 백업할 수 있습니다. VolumeOptionsForStorageClass 매개변수는 CephFS와 함께 사용할 수 있습니다. 그러나 선택적 VolumeOptionsForStorageClass 매개변수를 모든 스토리지 유형에 사용할 수 있습니다.
4.9.3.4.2. OADP 1.2 Data Mover 및 분할 볼륨을 사용하여 데이터 백업

OADP(OpenShift API for Data Protection) 1.2 Data Mover를 사용하여 볼륨이 분할된 환경에서 데이터를 백업할 수 있습니다.

절차

  1. 다음 예와 같이 Backup CR을 생성합니다.

    Backup CR의 예

    apiVersion: velero.io/v1
    kind: Backup
    metadata:
      name: <backup_name>
      namespace: <protected_ns>
    spec:
      includedNamespaces:
      - <app_ns>
      storageLocation: velero-sample-1

  2. 다음 단계를 완료하여 VolumeSnapshotBackup CR의 진행 상황을 모니터링합니다.

    1. 모든 VolumeSnapshotBackup CR의 진행 상황을 확인하려면 다음 명령을 실행합니다.

      $ oc get vsb -n <app_ns>
    2. 특정 VolumeSnapshotBackup CR의 진행 상황을 확인하려면 다음 명령을 실행합니다.

      $ oc get vsb <vsb_name> -n <app_ns> -ojsonpath="{.status.phase}`
  3. VolumeSnapshotBackup CR의 상태가 Completed 가 될 때까지 몇 분 정도 기다립니다.
  4. Restic 시크릿에 제공된 오브젝트 저장소에 스냅샷이 하나 이상 있는지 확인합니다. /<OADP_namespace> 접두사가 있는 대상 BackupStorageLocation 스토리지 공급자에서 이 스냅샷을 확인할 수 있습니다.
4.9.3.4.3. OADP 1.2 Data Mover 및 분할 볼륨을 사용하여 데이터 복원

OADP(OpenShift API for Data Protection) 1.2 Data Mover를 사용하여 백업 프로세스에 CephFS 스토리지의 부분 복사 기능이 활성화된 경우 볼륨이 분할된 환경에서 데이터를 복원할 수 있습니다. 단순 복사 기능은 복원 프로시저에서 사용되지 않습니다.

절차

  1. 다음 명령을 실행하여 애플리케이션 네임스페이스를 삭제합니다.

    $ oc delete vsb -n <app_namespace> --all
  2. 다음 명령을 실행하여 백업 중에 생성된 VolumeSnapshotContent CR을 삭제합니다.

    $ oc delete volumesnapshotcontent --all
  3. 다음 예와 같이 Restore CR을 생성합니다.

    Restore CR의 예

    apiVersion: velero.io/v1
    kind: Restore
    metadata:
      name: <restore_name>
      namespace: <protected_ns>
    spec:
      backupName: <previous_backup_name>

  4. 다음을 수행하여 VolumeSnapshotRestore CR의 진행 상황을 모니터링합니다.

    1. 모든 VolumeSnapshotRestore CR의 진행 상황을 확인하려면 다음 명령을 실행합니다.

      $ oc get vsr -n <app_ns>
    2. 특정 VolumeSnapshotRestore CR의 진행 상황을 확인하려면 다음 명령을 실행합니다.

      $ oc get vsr <vsr_name> -n <app_ns> -ojsonpath="{.status.phase}
  5. 다음 명령을 실행하여 애플리케이션 데이터가 복원되었는지 확인합니다.

    $ oc get route <route_name> -n <app_ns> -ojsonpath="{.spec.host}"

4.9.4. OADP 1.1 Data Mover를 사용하여 백업 후 정리

OADP 1.1 Data Mover의 경우 백업을 수행한 후 데이터 정리를 수행해야 합니다.

정리는 다음 리소스를 삭제하는 것으로 구성됩니다.

  • 버킷의 스냅샷
  • 클러스터 리소스
  • 스케줄에 의해 실행되거나 반복적으로 실행되는 백업 프로시저 후VSB(volume snapshot backups)

4.9.4.1. 버킷에서 스냅샷 삭제

OADP 1.1 Data Mover는 백업 후 버킷에 하나 이상의 스냅샷을 남겨 둘 수 있습니다. 모든 스냅샷을 삭제하거나 개별 스냅샷을 삭제할 수 있습니다.

절차

  • 버킷의 모든 스냅샷을 삭제하려면 DPA(Data Protection Application) .spec.backupLocation.objectStorage.bucket 리소스에 지정된 /<protected_namespace > 폴더를 삭제합니다.
  • 개별 스냅샷을 삭제하려면 다음을 수행합니다.

    1. DPA .spec.backupLocation.objectStorage.bucket 리소스에 지정된 /<protected_namespace > 폴더를 찾습니다.
    2. /<volumeSnapshotContent name>-pvc 접두사가 있는 적절한 폴더를 삭제합니다. 여기서 < VolumeSnapshotContent_name >은 PVC당 Data Mover에 의해 생성된 VolumeSnapshotContent 입니다.

4.9.4.2. 클러스터 리소스 삭제

OADP 1.1 Data Mover는 CSI(Container Storage Interface) 볼륨 스냅샷을 원격 오브젝트 저장소에 성공적으로 백업할지 여부에 관계없이 클러스터 리소스를 남겨 둘 수 있습니다.

4.9.4.2.1. 성공적인 백업 및 데이터 Mover를 사용한 복원 후 클러스터 리소스 삭제

성공적인 백업 후 애플리케이션 네임스페이스에 남아 있는 VolumeSnapshotBackup 또는 VolumeSnapshotRestore CR을 삭제하고 Data Mover를 사용한 복원을 삭제할 수 있습니다.

절차

  1. Data Mover를 사용하는 백업 후 애플리케이션 PVC가 있는 네임스페이스인 애플리케이션 네임스페이스에 남아 있는 클러스터 리소스를 삭제합니다.

    $ oc delete vsb -n <app_namespace> --all
  2. Data Mover를 사용하는 복원 후에도 남아 있는 클러스터 리소스를 삭제합니다.

    $ oc delete vsr -n <app_namespace> --all
  3. 필요한 경우 백업 후에도 남아 있는 VolumeSnapshotContent 리소스를 삭제하고 Data Mover를 사용하는 위치를 복원합니다.

    $ oc delete volumesnapshotcontent --all
4.9.4.2.2. 부분적으로 성공한 또는 실패한 백업 후 클러스터 리소스 삭제 및 Data Mover를 사용한 복원

Data Mover를 사용하는 백업 및 복원 작업이 실패하거나 부분적으로만 성공하면 애플리케이션 네임스페이스에 존재하는 VolumeSnapshotBackup (VSB) 또는 VolumeSnapshotRestore CRD(사용자 정의 리소스 정의)를 정리하고 이러한 컨트롤러에서 생성한 추가 리소스를 정리해야 합니다.

절차

  1. 다음 명령을 입력하여 Data Mover를 사용한 백업 작업 후에도 남아 있는 클러스터 리소스를 정리합니다.

    1. 애플리케이션 네임스페이스에서 VSB CRD를 삭제하고 백업하고 복원할 애플리케이션 PVC가 있는 네임스페이스를 삭제합니다.

      $ oc delete vsb -n <app_namespace> --all
    2. VolumeSnapshot CR을 삭제합니다.

      $ oc delete volumesnapshot -A --all
    3. VolumeSnapshotContent CR을 삭제합니다.

      $ oc delete volumesnapshotcontent --all
    4. 보호된 네임스페이스에서 PVC를 삭제하고 Operator가 설치된 네임스페이스를 삭제합니다.

      $ oc delete pvc -n <protected_namespace> --all
    5. 네임스페이스에서 ReplicationSource 리소스를 삭제합니다.

      $ oc delete replicationsource -n <protected_namespace> --all
  2. 다음 명령을 입력하여 Data Mover를 사용하여 복원 작업 후에도 남아 있는 클러스터 리소스를 정리합니다.

    1. VSR CRD를 삭제합니다.

      $ oc delete vsr -n <app-ns> --all
    2. VolumeSnapshot CR을 삭제합니다.

      $ oc delete volumesnapshot -A --all
    3. VolumeSnapshotContent CR을 삭제합니다.

      $ oc delete volumesnapshotcontent --all
    4. 네임스페이스에서 ReplicationDestination 리소스를 삭제합니다.

      $ oc delete replicationdestination -n <protected_namespace> --all
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.