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.relaimersPolicy :( Optional )定義刪除快照 CR 時,應用程式歸檔會發生什麼情況。這表示即使設定為,快照也 `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 備份作業。如果 Token 在備份作業期間過期,作業可能會失敗。

  • 如需檢查目前工作階段權杖到期時間的詳細資訊,請參閱 "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`歸零, `snapshotRetention`為大於零的值。環境 `snapshotRetention`為零意味著任何計劃的備份仍將建立快照,但這些快照是臨時的,並在備份完成後立即刪除。

  • 如果叢集範圍的資源在應用程式定義中明確參照,或是具有任何應用程式命名空間的參照,則這些資源會包含在備份,快照或複製中。

使用 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:要保留的備份數量。零表示不應建立備份(僅快照)。

    • *spec.snapshotRetention * :要保留的快照數。零表示不應建立任何快照。

    • * 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)。如果粒度設定為 DailyWeekly , 或者 Monthly。該值必須以字串形式提供。

    • spec.minute:(可選)計畫應運行的小時中的分鐘數(0 - 59)。如果粒度設定為 HourlyDailyWeekly , 或者 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>

    您可以將旗標設定 --full-backup-rule`為持續完整備份,或根據需求自訂旗標 `always。例如,如果您選擇每日精細度,則可以指定應在星期一進行完整備份。例如,使用 `--full-backup-rule "Monday,Thursday"`排程在週一和週四進行完整備份。

    對於僅快照計劃,設置 --backup-retention 0`並指定一個大於 0 的值 `--snapshot-retention

刪除快照

刪除不再需要的排程或隨需快照。

步驟
  1. 移除與快照相關的 Snapshot 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}'

啟用 NetApp 檔案( anf )作業的備份與還原

如果您已安裝 Trident Protect ,您可以啟用節省空間的備份與還原功能,以供使用 NetApp 檔案儲存類別的儲存後端使用,並在 Trident 24.06 之前建立。此功能可與 NFSv4 磁碟區搭配使用,不會佔用容量集區的額外空間。

開始之前

請確認下列事項:

  • 您已安裝 Trident Protect 。

  • 您已在 Trident Protect 中定義應用程式。在您完成此程序之前、此應用程式的保護功能有限。

  • 您已 azure-netapp-files 選擇儲存後端的預設儲存類別。

展開以進行組態步驟
  1. 如果 anf Volume 是在升級至 Trident 24.10 之前建立的,請在 Trident 中執行下列動作:

    1. 針對每個以 NetApp 檔案為基礎且與應用程式相關的 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"

    +
    未啟用 Snapshot 目錄時, Trident Protect 會選擇一般備份功能,在備份程序期間會暫時佔用容量集區中的空間。在這種情況下,請確保容量集區中有足夠的可用空間,以建立備份磁碟區大小的暫存磁碟區。

結果

應用程式已準備好使用 Trident Protect 進行備份與還原。每個 PVC 也可供其他應用程式用於備份和還原。