使用Trident Protect 保護應用程式
您可以使用自動保護策略或臨時保護策略,透過拍攝快照和備份來保護Trident Protect 管理的所有應用程式。
|
|
您可以設定Trident Protect 在資料保護作業期間凍結和解凍檔案系統。"了解更多關於使用Trident Protect 設定檔系統凍結的信息"。 |
建立隨需快照
您可以隨時建立隨需快照。
|
|
如果叢集範圍的資源在應用程式定義中明確參照,或是具有任何應用程式命名空間的參照,則這些資源會包含在備份,快照或複製中。 |
-
建立自訂資源( CR )檔案並命名為
trident-protect-snapshot-cr.yaml。 -
在您建立的檔案中,設定下列屬性:
-
* metadata.name*: ( _required )此自訂資源的名稱;為您的環境選擇唯一且合理的名稱。
-
SPEC.applicationRef :要快照的應用程式的 Kubernetes 名稱。
-
spec.appVaultRef :( _required _ )應儲存快照內容(中繼資料)的 AppVault 名稱。
-
spec.relaimersPolicy :( Optional )定義刪除快照 CR 時,應用程式歸檔會發生什麼情況。這表示即使設定為,快照也 `Retain`會被刪除。有效選項:
-
Retain(預設) -
DeleteapiVersion: 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
-
-
-
在您以正確的值填入檔案之後
trident-protect-snapshot-cr.yaml、請套用 CR :kubectl apply -f trident-protect-snapshot-cr.yaml
-
建立快照,以您環境的資訊取代方括號中的值。例如:
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 )檔案並命名為
trident-protect-backup-cr.yaml。 -
在您建立的檔案中,設定下列屬性:
-
* metadata.name*: ( _required )此自訂資源的名稱;為您的環境選擇唯一且合理的名稱。
-
SPEC.applicationRef :( _required _ )要備份的應用程式 Kubernetes 名稱。
-
spec.appVaultRef :( _required _ )應儲存備份內容的 AppVault 名稱。
-
*spec.dataMover * :( Optional )字串,指出備份作業所使用的備份工具。可能的值(區分大小寫):
-
Restic -
Kopia(預設)
-
-
spec.reClaimPolicy :( Optional )定義備份從宣告中釋出時會發生什麼情況。可能值:
-
Delete -
Retain(預設)
-
-
spec.snapshotRef:(可選):用作備份來源的快照的名稱。如果未提供,將會建立並備份暫存快照。
YAML 範例:
--- apiVersion: protect.trident.netapp.io/v1 kind: Backup metadata: namespace: my-app-namespace name: my-cr-name spec: applicationRef: my-application appVaultRef: appvault-name dataMover: Kopia -
-
在您以正確的值填入檔案之後
trident-protect-backup-cr.yaml、請套用 CR :kubectl apply -f trident-protect-backup-cr.yaml
-
建立備份,以您環境的資訊取代括號中的值。例如:
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`旗標來指定備份是否應為非遞增備份。依預設,所有備份都是遞增備份。使用此旗標時,備份會變成非遞增備份。最佳做法是定期執行完整備份,然後在完整備份之間執行遞增備份,以將與還原相關的風險降至最低。
支援的備份註釋
下表描述了建立備份 CR 時可以使用的註解:
| 註釋 | 類型 | 說明 | 預設值 |
|---|---|---|---|
protect.trident.netapp.io/full-backup |
字串 |
指定備份是否應為非增量備份。設定為 `true`建立非增量備份。最佳實踐是定期執行完整備份,然後在兩次完整備份之間執行增量備份,以最大限度地降低與復原相關的風險。 |
"假" |
protect.trident.netapp.io/snapshot-completion-timeout |
字串 |
完成整個快照操作允許的最長時間。 |
60米 |
protect.trident.netapp.io/volume-snapshots-ready-to-use-timeout |
字串 |
卷快照達到可用狀態所需的最長時間。 |
30米 |
protect.trident.netapp.io/volume-snapshots-created-timeout |
字串 |
建立磁碟區快照允許的最長時間。 |
5米 |
protect.trident.netapp.io/pvc-bind-timeout-sec |
字串 |
等待新建立的持久卷聲明 (PVC) 到達的最大時間(以秒為單位) `Bound`操作失敗前的階段。 |
1200(20分鐘) |
建立資料保護排程
保護策略透過按照定義的計劃建立快照、備份或兩者來保護應用程式。您可以選擇每小時、每天、每周和每月建立快照和備份,並可以指定要保留的副本數量。您可以使用 full-backup-rule 註解來排程非增量式完整備份。預設情況下,所有備份都是增量的。定期執行完整備份以及其間的增量備份有助於降低與復原相關的風險。
|
|
|
-
建立自訂資源( CR )檔案並命名為
trident-protect-schedule-cr.yaml。 -
在您建立的檔案中,設定下列屬性:
-
* metadata.name*: ( _required )此自訂資源的名稱;為您的環境選擇唯一且合理的名稱。
-
*spec.dataMover * :( Optional )字串,指出備份作業所使用的備份工具。可能的值(區分大小寫):
-
Restic -
Kopia(預設)
-
-
SPEC.applicationRef :要備份之應用程式的 Kubernetes 名稱。
-
spec.appVaultRef :( _required _ )應儲存備份內容的 AppVault 名稱。
-
spec.backupRetention: (必要) 要保留的備份數量。零表示不應建立備份(僅快照)。
-
spec.backupReclaimPolicy: (可選) 決定如果備份 CR 在其保留期內被刪除,則備份會發生什麼情況。保留期過後,備份檔案總是會被刪除。可能的值(區分大小寫):
-
Retain(預設) -
Delete
-
-
spec.snapshotRetention: (必需) 要保留的快照數量。零表示不建立任何快照。
-
spec.snapshotReclaimPolicy: (可選) 決定如果快照 CR 在其保留期內被刪除,則快照會發生什麼情況。保留期過後,快照總是會被刪除。可能的值(區分大小寫):
-
Retain -
Delete(預設)
-
-
* 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。該值必須以字串形式提供。備份和快照計劃的範例 YAML:
--- apiVersion: protect.trident.netapp.io/v1 kind: Schedule metadata: namespace: my-app-namespace name: my-cr-name 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" -
-
在您以正確的值填入檔案之後
trident-protect-schedule-cr.yaml、請套用 CR :kubectl apply -f trident-protect-schedule-cr.yaml
-
建立保護排程,以環境資訊取代方括號中的值。例如:
您可以使用 `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> \ --backup-reclaim-policy <Retain|Delete (default Retain)> \ --data-mover <Kopia_or_Restic> \ --day-of-month <day_of_month_to_run_schedule> \ --day-of-week <day_of_week_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> \ --snapshot-reclaim-policy <Retain|Delete (default Delete)> \ --full-backup-rule <string> \ -n <application_namespace>您可以將旗標設定
--full-backup-rule`為持續完整備份,或根據需求自訂旗標 `always。例如,如果您選擇每日精細度,則可以指定應在星期一進行完整備份。例如,使用 `--full-backup-rule "Monday,Thursday"`排程在週一和週四進行完整備份。對於僅快照計劃,設置
--backup-retention 0`並指定一個大於 0 的值 `--snapshot-retention。
支援的日程註釋
下表描述了建立計劃變更請求 (CR) 時可以使用的註釋:
| 註釋 | 類型 | 說明 | 預設值 |
|---|---|---|---|
protect.trident.netapp.io/full-backup-rule |
字串 |
指定安排完整備份的規則。你可以將其設定為 |
未設定(所有備份均為增量備份) |
protect.trident.netapp.io/snapshot-completion-timeout |
字串 |
完成整個快照操作允許的最長時間。 |
60米 |
protect.trident.netapp.io/volume-snapshots-ready-to-use-timeout |
字串 |
卷快照達到可用狀態所需的最長時間。 |
30米 |
protect.trident.netapp.io/volume-snapshots-created-timeout |
字串 |
建立磁碟區快照允許的最長時間。 |
5米 |
protect.trident.netapp.io/pvc-bind-timeout-sec |
字串 |
等待新建立的持久卷聲明 (PVC) 到達的最大時間(以秒為單位) `Bound`操作失敗前的階段。 |
1200(20分鐘) |
刪除快照
刪除不再需要的排程或隨需快照。
-
移除與快照相關的 Snapshot CR :
kubectl delete snapshot <snapshot_name> -n my-app-namespace
刪除備份
刪除不再需要的排程或隨需備份。
|
|
確保回收策略設定為 Delete`從物件儲存中刪除所有備份資料。該策略的預設值是 `Retain`以避免意外資料遺失。如果政策沒有改變 `Delete ,備份資料將保留在物件儲存中,需要手動刪除。
|
-
移除與備份相關的備份 CR :
kubectl delete backup <backup_name> -n my-app-namespace
檢查備份作業的狀態
您可以使用命令列來檢查正在進行,已完成或已失敗的備份作業狀態。
-
使用下列命令可擷取備份作業的狀態,以環境中的資訊取代方括號中的值:
kubectl get backup -n <namespace_name> <my_backup_cr_name> -o jsonpath='{.status}'
啟用 NetApp 檔案( anf )作業的備份與還原
如果您已安裝Trident Protect,則可以為使用 azure-netapp-files 儲存類別且在Trident 24.06 之前建立的儲存後端啟用節省空間的備份和還原功能。此功能適用於 NFSv4 卷,並且不會佔用容量池中的額外空間。
請確認下列事項:
-
您已安裝Trident Protect。
-
您已在Trident Protect中定義了一個應用程式。在您完成此步驟之前,此應用程式的保護功能將受到限制。
-
您已
azure-netapp-files選擇儲存後端的預設儲存類別。
展開以進行組態步驟
-
如果 anf Volume 是在升級至 Trident 24.10 之前建立的,請在 Trident 中執行下列動作:
-
針對每個以 NetApp 檔案為基礎且與應用程式相關的 PV ,啟用快照目錄:
tridentctl update volume <pv name> --snapshot-dir=true -n trident -
確認已為每個相關的 PV 啟用快照目錄:
tridentctl get volume <pv name> -n trident -o yaml | grep snapshotDir回應:
snapshotDirectory: "true"
+
如果未啟用快照目錄, Trident Protect 將選擇常規備份功能,該功能會在備份過程中暫時佔用容量池中的空間。在這種情況下,請確保容量池中有足夠的空間來建立與被備份磁碟區大小相同的臨時磁碟區。 -
該應用程式已準備好使用Trident Protect 進行備份和還原。每個 PVC 也可供其他應用程式用於備份和還原。