15.3. 가상 머신 백업


중요

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

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

OADP(OpenShift API for Data Protection) Backup CR(사용자 정의 리소스)을 생성하여 VM(가상 머신) 을 백업합니다.

Backup CR은 다음 작업을 수행합니다.

참고

OADP는 백업 작업 전에 VM 파일 시스템을 정지하고 백업이 완료되면 해제할 수 있는 백업 후크를 제공합니다.

kubevirt-controller 는 Velero가 백업 작업 전후에 virt-freezer 바이너리를 실행할 수 있는 주석을 사용하여 virt-launcher Pod를 생성합니다.

고정 해제 API는 VM 스냅샷 API의 하위 리소스입니다. 자세한 내용은 가상 머신 스냅샷 정보를 참조하십시오.

Backup CR에 후크를 추가하여 백업 작업 전이나 후에 특정 VM에서 명령을 실행할 수 있습니다.

Backup CR 대신 Schedule CR을 생성하여 백업을 예약합니다.

15.3.1. 백업 CR 생성

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

사전 요구 사항

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

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

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

절차

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

    $ oc get backupstoragelocations.velero.io -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'의 경우')이거나 정규화된 것일 수 있습니다. 지정하지 않으면 모든 리소스가 포함됩니다.
    3
    선택 사항: 백업에서 제외할 리소스 배열을 지정합니다. 리소스는 바로 가기(예: 'pods'의 경우')이거나 정규화된 것일 수 있습니다.
    4
    backupStorageLocations CR의 이름을 지정합니다.
    5
    지정된 라벨이 모두 있는 백업 리소스의 {key,value} 쌍의 맵입니다.
    6
    지정된 라벨이 하나 이상 있는 백업 리소스의 {key,value} 쌍의 맵입니다.
  3. Backup CR의 상태가 Completed 인지 확인합니다.

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

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

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

사전 요구 사항

  • 클라우드 공급자는 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

    1
    true 로 설정해야 합니다.
    2
    true 로 설정해야 합니다.
    3
    OADP는 CSI 및 Data Mover 백업 및 복원에 대한 RetainDelete 삭제 정책 유형을 지원합니다. OADP 1.2 Data Mover의 경우 삭제 정책 유형을 Retain 으로 설정합니다.

다음 단계

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

15.3.1.2. Restic을 사용하여 애플리케이션 백업

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

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

중요

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

사전 요구 사항

  • OADP(Data Protection) Operator를 위한 OpenShift API를 설치해야 합니다.
  • 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:
      defaultVolumesToFsBackup: true 1
    ...
    1
    OADP 버전 1.2 이상에서 spec 블록 내에 defaultVolumesToFsBackup: true 설정을 추가합니다. OADP 버전 1.1에서 defaultVolumesToRestic: true 를 추가합니다.

15.3.1.3. 백업 후크 생성

Backup CR(사용자 정의 리소스)을 편집하여 Pod의 컨테이너에서 명령을 실행하는 백업 후크를 생성합니다.

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
    이 블록은 사전 백업 후크와 동일한 매개변수를 사용하여 백업 후 실행할 후크 배열을 정의합니다.

15.3.2. 추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.