Skip to main content
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

Trident Protect를 사용하여 애플리케이션을 보호합니다

기여자 netapp-mwallis netapp-shwetav netapp-aruldeepa

Trident Protect에서 관리하는 모든 앱은 자동화된 보호 정책을 사용하거나 임시적으로 스냅샷과 백업을 생성하여 보호할 수 있습니다.

참고 데이터 보호 작업 중에 파일 시스템을 고정 및 고정 해제하도록 Trident Protect를 구성할 수 있습니다. "Trident Protect를 사용하여 파일 시스템 중지를 구성하는 방법에 대해 자세히 알아보십시오"..

필요 시 스냅샷을 생성합니다

언제든지 주문형 스냅샷을 생성할 수 있습니다.

참고 클러스터 범위 리소스는 애플리케이션 정의에 명시적으로 참조되거나 애플리케이션 네임스페이스에 대한 참조가 있는 경우 백업, 스냅샷 또는 클론에 포함됩니다.
CR을 사용하여 스냅샷을 생성합니다
단계
  1. CR(사용자 정의 리소스) 파일을 만들고 이름을 `trident-protect-snapshot-cr.yaml`지정합니다.

  2. 생성한 파일에서 다음 속성을 구성합니다.

    • metadata.name: (required) 이 사용자 정의 리소스의 이름입니다. 사용자 환경에 맞는 고유하고 합리적인 이름을 선택하십시오.

    • * spec.applicationRef *: 스냅샷을 생성할 애플리케이션의 Kubernetes 이름입니다.

    • * spec.appVaultRef *: (required) 스냅샷 내용(메타데이터)을 저장할 AppVault의 이름입니다.

    • spec.reclaimPolicy: (Optional) 스냅샷 CR이 삭제될 때 스냅샷의 AppArchive에 발생하는 동작을 정의합니다. 즉, 로 설정된 경우에도 Retain 스냅샷이 삭제됩니다. 유효한 옵션:

      • Retain (기본값)

      • Delete

        ---
        apiVersion: protect.trident.netapp.io/v1
        kind: Snapshot
        metadata:
          namespace: my-app-namespace
          name: my-cr-name
        spec:
          applicationRef: my-application
          appVaultRef: appvault-name
          reclaimPolicy: Delete
  3. 파일을 올바른 값으로 채운 후 trident-protect-snapshot-cr.yaml CR:

    kubectl apply -f trident-protect-snapshot-cr.yaml
CLI를 사용하여 스냅샷을 생성합니다
단계
  1. 대괄호 안의 값을 사용자 환경의 정보로 대체하여 스냅샷을 생성합니다. 예를 들면 다음과 같습니다.

    tridentctl-protect create snapshot <my_snapshot_name> --appvault <my_appvault_name> --app <name_of_app_to_snapshot> -n <application_namespace>

필요 시 백업을 생성합니다

언제든지 앱을 백업할 수 있습니다.

참고 클러스터 범위 리소스는 애플리케이션 정의에 명시적으로 참조되거나 애플리케이션 네임스페이스에 대한 참조가 있는 경우 백업, 스냅샷 또는 클론에 포함됩니다.
시작하기 전에

AWS 세션 토큰의 만료가 장시간 실행되는 S3 백업 작업에 충분한지 확인합니다. 백업 작업 중에 토큰이 만료되면 작업이 실패할 수 있습니다.

  • 현재 세션 토큰 만료 확인에 대한 자세한 내용은 를 "AWS API 설명서" 참조하십시오.

  • AWS 리소스의 자격 증명에 대한 자세한 내용은 를 "AWS IAM 설명서" 참조하십시오.

CR을 사용하여 백업을 생성합니다
단계
  1. CR(사용자 정의 리소스) 파일을 만들고 이름을 `trident-protect-backup-cr.yaml`지정합니다.

  2. 생성한 파일에서 다음 속성을 구성합니다.

    • metadata.name: (required) 이 사용자 정의 리소스의 이름입니다. 사용자 환경에 맞는 고유하고 합리적인 이름을 선택하십시오.

    • * spec.applicationRef *:(required) 백업할 응용 프로그램의 Kubernetes 이름입니다.

    • * spec.appVaultRef *: (required) 백업 내용을 저장할 AppVault의 이름입니다.

    • * spec.datamover *: (Optional) 백업 작업에 사용할 백업 도구를 나타내는 문자열입니다. 가능한 값(대소문자 구분):

      • Restic

      • Kopia (기본값)

    • spec.reclaimPolicy: (Optional) 클레임에서 해제될 때 백업에 어떤 일이 발생하는지를 정의합니다. 가능한 값:

      • Delete

      • Retain (기본값)

    • spec.snapshotRef: (선택 사항): 백업 소스로 사용할 스냅샷의 이름입니다. 제공하지 않으면 임시 스냅샷이 생성되고 백업됩니다.

    • metadata.annotations.protect.trident.netapp.io/full-backup : (선택 사항) 이 주석은 백업이 증분 방식이 아니어야 하는지 여부를 지정하는 데 사용됩니다. 기본적으로 모든 백업은 증분 백업입니다. 그러나 이 주석을 로 true 설정하면 백업이 비증분 백업이 됩니다. 지정하지 않으면 백업이 기본 증분 백업 설정을 따릅니다. 전체 백업을 주기적으로 수행한 다음 전체 백업 사이에 증분 백업을 수행하여 복원과 관련된 위험을 최소화하는 것이 좋습니다.

      YAML 예:

    ---
    apiVersion: protect.trident.netapp.io/v1
    kind: Backup
    metadata:
      namespace: my-app-namespace
      name: my-cr-name
      annotations:
        protect.trident.netapp.io/full-backup: "true"
    spec:
      applicationRef: my-application
      appVaultRef: appvault-name
      dataMover: Kopia
  3. 파일을 올바른 값으로 채운 후 trident-protect-backup-cr.yaml CR:

    kubectl apply -f trident-protect-backup-cr.yaml
CLI를 사용하여 백업을 생성합니다
단계
  1. 대괄호 안의 값을 사용자 환경의 정보로 대체하여 백업을 만듭니다. 예를 들면 다음과 같습니다.

    tridentctl-protect create backup <my_backup_name> --appvault <my-vault-name> --app <name_of_app_to_back_up> --data-mover <Kopia_or_Restic> -n <application_namespace>

    필요에 따라 플래그를 사용하여 백업이 비증분 백업이어야 하는지 여부를 지정할 수 --full-backup 있습니다. 기본적으로 모든 백업은 증분 백업입니다. 이 플래그를 사용하면 백업이 비증분 백업이 됩니다. 전체 백업을 주기적으로 수행한 다음 전체 백업 사이에 증분 백업을 수행하여 복원과 관련된 위험을 최소화하는 것이 좋습니다.

데이터 보호 스케줄을 생성합니다

보호 정책은 정의된 일정에 따라 스냅샷, 백업 또는 둘 다를 생성하여 앱을 보호합니다. 매시간, 매일, 매주, 매월 스냅샷과 백업을 만들도록 선택할 수 있으며, 보관할 복사본 수를 지정할 수 있습니다. full-backup-rule 주석을 사용하여 비증분 전체 백업을 예약할 수 있습니다. 기본적으로 모든 백업은 증분 백업입니다. 주기적으로 전체 백업을 수행하고 그 사이에 증분 백업을 수행하면 복원과 관련된 위험을 줄이는 데 도움이 됩니다.

참고
  • 스냅샷에 대한 일정은 다음을 설정하여 생성할 수 있습니다. backupRetention 0으로 그리고 snapshotRetention 0보다 큰 값으로. 환경 snapshotRetention 0으로 설정하면 예약된 백업은 여전히 스냅샷을 생성하지만, 이는 임시적이며 백업이 완료되면 즉시 삭제됩니다.

  • 클러스터 범위 리소스는 애플리케이션 정의에 명시적으로 참조되거나 애플리케이션 네임스페이스에 대한 참조가 있는 경우 백업, 스냅샷 또는 클론에 포함됩니다.

CR을 사용하여 일정을 생성합니다
단계
  1. CR(사용자 정의 리소스) 파일을 만들고 이름을 `trident-protect-schedule-cr.yaml`지정합니다.

  2. 생성한 파일에서 다음 속성을 구성합니다.

    • metadata.name: (required) 이 사용자 정의 리소스의 이름입니다. 사용자 환경에 맞는 고유하고 합리적인 이름을 선택하십시오.

    • * spec.datamover *: (Optional) 백업 작업에 사용할 백업 도구를 나타내는 문자열입니다. 가능한 값(대소문자 구분):

      • Restic

      • Kopia (기본값)

    • * spec.applicationRef *: 백업할 응용 프로그램의 Kubernetes 이름입니다.

    • * spec.appVaultRef *: (required) 백업 내용을 저장할 AppVault의 이름입니다.

    • spec.backupRetention: 보관할 백업 수. 0은 백업을 생성하지 않음을 나타냅니다(스냅샷만 생성).

    • * spec.snapshotRetention *: 보존할 스냅샷 수입니다. 0은 스냅샷을 생성하지 않아야 함을 나타냅니다.

    • spec.granularity: 일정이 실행되는 빈도. 가능한 값과 필수 관련 필드:

      • Hourly(지정해야 함) spec.minute )

      • Daily(지정해야 함) spec.minute 그리고 spec.hour )

      • Weekly(지정해야 함) spec.minute, spec.hour , 그리고 spec.dayOfWeek )

      • Monthly(지정해야 함) spec.minute, spec.hour , 그리고 spec.dayOfMonth )

      • Custom

    • spec.dayOfMonth: (선택 사항) 일정을 실행해야 하는 날짜(1~31)입니다. 세분성이 설정된 경우 이 필드가 필요합니다. Monthly . 값은 문자열로 제공되어야 합니다.

    • spec.dayOfWeek: (선택 사항) 일정을 실행해야 하는 요일(0~7). 0 또는 7의 값은 일요일을 나타냅니다. 세분성이 설정된 경우 이 필드가 필요합니다. Weekly . 값은 문자열로 제공되어야 합니다.

    • spec.hour: (선택 사항) 일정을 실행해야 하는 시간(0~23)입니다. 세분성이 설정된 경우 이 필드가 필요합니다. Daily , Weekly , 또는 Monthly . 값은 문자열로 제공되어야 합니다.

    • spec.minute: (선택 사항) 일정을 실행해야 하는 분(0~59)입니다. 세분성이 설정된 경우 이 필드가 필요합니다. Hourly , Daily , Weekly , 또는 Monthly . 값은 문자열로 제공되어야 합니다.

    • metadata.annotations.protect.trident.netapp.io/full-backup-rule: (Optional) 이 주석은 전체 백업 예약 규칙을 지정하는 데 사용됩니다. 지속적인 전체 백업을 위해 을 설정하거나 요구 사항에 따라 사용자 지정할 수 always 있습니다. 예를 들어, 매일 세분화를 선택하는 경우 전체 백업이 수행되는 요일을 지정할 수 있습니다.

      백업 및 스냅샷 일정에 대한 YAML 예:

      ---
      apiVersion: protect.trident.netapp.io/v1
      kind: Schedule
      metadata:
        namespace: my-app-namespace
        name: my-cr-name
        annotations:
          protect.trident.netapp.io/full-backup-rule: "Monday,Thursday"
      spec:
        dataMover: Kopia
        applicationRef: my-application
        appVaultRef: appvault-name
        backupRetention: "15"
        snapshotRetention: "15"
        granularity: Daily
        hour: "0"
        minute: "0"

      스냅샷 전용 일정에 대한 YAML 예:

    ---
    apiVersion: protect.trident.netapp.io/v1
    kind: Schedule
    metadata:
      namespace: my-app-namespace
      name: my-snapshot-schedule
    spec:
      applicationRef: my-application
      appVaultRef: appvault-name
      backupRetention: "0"
      snapshotRetention: "15"
      granularity: Daily
      hour: "2"
      minute: "0"
  3. 파일을 올바른 값으로 채운 후 trident-protect-schedule-cr.yaml CR:

    kubectl apply -f trident-protect-schedule-cr.yaml
CLI를 사용하여 일정을 생성합니다
단계
  1. 괄호 안의 값을 사용자 환경의 정보로 대체하여 보호 스케줄을 생성합니다. 예를 들면 다음과 같습니다.

    참고 을 사용하여 tridentctl-protect create schedule --help 이 명령에 대한 자세한 도움말 정보를 볼 수 있습니다.
    tridentctl-protect create schedule <my_schedule_name> --appvault <my_appvault_name> --app <name_of_app_to_snapshot> --backup-retention <how_many_backups_to_retain> --data-mover <Kopia_or_Restic> --day-of-month <day_of_month_to_run_schedule> --day-of-week <day_of_month_to_run_schedule> --granularity <frequency_to_run> --hour <hour_of_day_to_run> --minute <minute_of_hour_to_run> --recurrence-rule <recurrence> --snapshot-retention <how_many_snapshots_to_retain> -n <application_namespace> --full-backup-rule <string>

    고정 전체 백업을 위해 플래그를 always 설정하거나 요구 사항에 따라 사용자 지정할 수 --full-backup-rule 있습니다. 예를 들어, 매일 세분화를 선택하는 경우 전체 백업이 수행되는 요일을 지정할 수 있습니다. 예를 들어 월요일과 목요일에 전체 백업을 예약하려면 을 --full-backup-rule "Monday,Thursday" 사용합니다.

    스냅샷 전용 일정의 경우 다음을 설정합니다. --backup-retention 0 0보다 큰 값을 지정합니다. --snapshot-retention .

스냅샷을 삭제합니다

더 이상 필요하지 않은 예약된 스냅샷 또는 주문형 스냅샷을 삭제합니다.

단계
  1. 스냅샷과 연결된 스냅샷 CR을 제거합니다.

    kubectl delete snapshot <snapshot_name> -n my-app-namespace

백업을 삭제합니다

더 이상 필요하지 않은 예약된 백업 또는 필요 시 백업을 삭제합니다.

참고 회수 정책이 설정되어 있는지 확인하십시오. Delete 개체 저장소에서 모든 백업 데이터를 제거합니다. 정책의 기본 설정은 다음과 같습니다. Retain 실수로 인한 데이터 손실을 방지하기 위해. 정책이 변경되지 않으면 Delete 백업 데이터는 개체 스토리지에 남아 있으며 수동으로 삭제해야 합니다.
단계
  1. 백업과 연결된 백업 CR을 제거합니다.

    kubectl delete backup <backup_name> -n my-app-namespace

백업 작업의 상태를 확인합니다

명령줄을 사용하여 진행 중이거나, 완료되었거나, 실패한 백업 작업의 상태를 확인할 수 있습니다.

단계
  1. 다음 명령을 사용하여 백업 작업의 상태를 검색하여 대괄호의 값을 사용자 환경의 정보로 바꿉니다.

    kubectl get backup -n <namespace_name> <my_backup_cr_name> -o jsonpath='{.status}'

Azure-NetApp-files(ANF) 작업을 위한 백업 및 복원이 가능합니다

Trident Protect를 설치한 경우 Azure-NetApp-files 스토리지 클래스를 사용하고 Trident 24.06 이전에 생성된 스토리지 백엔드에 공간 효율적인 백업 및 복원 기능을 사용할 수 있습니다. 이 기능은 NFSv4 볼륨에 적용되며 용량 풀에서 추가 공간을 사용하지 않습니다.

시작하기 전에

다음을 확인합니다.

  • Trident Protect가 설치되어 있습니다.

  • Trident Protect에서 애플리케이션을 정의했습니다. 이 응용 프로그램은 이 절차를 완료할 때까지 제한된 보호 기능을 제공합니다.

  • `azure-netapp-files`스토리지 백엔드의 기본 스토리지 클래스로 선택했습니다.

구성 단계를 위해 확장합니다
  1. Trident 24.10으로 업그레이드하기 전에 ANF 볼륨을 생성한 경우 Trident에서 다음을 수행하십시오.

    1. Azure-NetApp-files 기반이며 애플리케이션과 연결된 각 PV에 대해 스냅샷 디렉토리를 활성화합니다.

      tridentctl update volume <pv name> --snapshot-dir=true -n trident
    2. 연결된 각 PV에 대해 스냅샷 디렉토리가 활성화되었는지 확인합니다.

      tridentctl get volume <pv name> -n trident -o yaml | grep snapshotDir

      응답:

    snapshotDirectory: "true"

    +
    스냅샷 디렉토리가 활성화되지 않은 경우 Trident Protect는 일반 백업 기능을 선택하여 백업 프로세스 중에 용량 풀의 공간을 일시적으로 사용합니다. 이 경우 용량 풀에서 백업 중인 볼륨 크기의 임시 볼륨을 생성할 수 있는 충분한 공간이 있는지 확인합니다.

결과

Trident Protect를 통해 애플리케이션이 백업 및 복원 준비가 되어 있습니다. 각 PVC는 백업 및 복원을 위해 다른 응용 프로그램에서 사용할 수도 있습니다.