Compute Engine 執行個體的 Google 管理備份程序會將資料傳送至備份保存庫。這些 backup vault 提供不可變更和強制保留功能。您可以選擇將備份資料儲存在單一區域或多個區域。
Google 管理的模式支援兩種主要執行方法:排定備份和隨選備份。本文說明如何設定及管理這些備份。
總覽
將備份傳送至 backup vault,即可確保備份不可變更,並強制執行保留政策。您可以使用備份保存庫,將備份儲存在單一區域或多區域。備份 Compute Engine 執行個體的方法主要有兩種:
使用 Google Cloud 主控台備份 Compute Engine 執行個體:在Google Cloud 主控台中,您可以套用備份方案,將 Compute Engine 執行個體備份至備份儲存空間。您可以透過下列任一方法備份資料。這兩種方法都能讓您將備份安全地儲存在備份保存庫中,在資料遺失或其他意外事件發生時,提供可靠的 Compute Engine 執行個體復原方式。
排定備份時程:自動以特定間隔備份 Compute Engine 執行個體,例如每天、每週、每月或每年。
隨選備份:隨時視需要建立備份。 在對執行個體進行重大變更前,或進行臨時資料保護時,隨需備份功能就派得上用場。
使用管理主控台備份 Compute Engine 執行個體:如有下列任一備份需求,您可以使用管理主控台備份 Compute Engine 執行個體:
- 跨區域備份
- 備份連結至虛擬機器 (VM) 的特定磁碟
- 根據標記自動保護 Compute Engine VM
- 如果 Google Cloud 以控制台為準的備份方案和備份保存庫與來源 VM 執行的區域不相容。
設備管理控制台是 Backup and DR 的一部分,適用於設備管理的備份作業。如必須使用設備管理控制台,請參閱「透過設備管理控制台探索及保護 Compute Engine 執行個體」。
事前準備
在 Compute Engine 執行個體所在的區域啟用備份和災難復原服務 API。
[建立備份方案][2]。
在 bucket 上設定 Observability Analytics,監控備份和災難復原備份工作。
IAM 設定
如要設定排定的備份或執行隨需備份,管理員必須在備份儲存庫專案中授予下列 IAM 角色:
- 備份和災難復原備份使用者 (
roles/backupdr.backupUser) - 檢視者 (
roles/viewer)
Google 管理的備份作業需要下列特定權限:
backupdr.backupPlans.listbackupdr.backupPlanAssociations.createForComputeInstancebackupdr.backupPlanAssociations.listbackupdr.backupPlanAssociations.getbackupdr.backupPlanAssociations.triggerBackupForComputeInstancebackupdr.backupPlanAssociations.deleteForComputeInstancebackupdr.backupPlans.useForComputeInstancebackupdr.locations.listbackupdr.operations.getcloudasset.assets.searchAllResources
除了還原權限外,使用者也必須具備查看及擷取備份中繼資料的權限:
backupdr.backupVaults.getbackupdr.backupVaults.listbackupdr.bvbackups.listbackupdr.bvbackups.getbackupdr.bvdataSources.listbackupdr.bvdataSources.get
如果 Compute Engine 執行個體與備份儲存庫位於不同專案,您必須在 Compute Engine 專案中,將備份和災難復原 Compute Engine 操作者 (roles/backupdr.computeEngineOperator) 角色授予備份儲存庫服務代理。
下表列出各項 API 呼叫所需的權限:
| 資源 | 要對資源執行的動作 | 各項 API 呼叫所需的權限 | 需要指派的專案 |
|---|---|---|---|
| backup vault | 建立 BackupVault | backupdr.backupVaults.create | 管理員專案 |
| 刪除 BackupVault | backupdr.backupVaults.delete | 管理員專案 | |
| 更新 BackupVault | backupdr.backupVaults.update | 管理員專案 | |
| 列出 BackupVault | backupdr.backupVaults.list | 管理員專案 | |
| 取得 BackupVault | backupdr.backupVaults.get | 管理員專案 | |
| 備份方案 | 建立 BackupPlan | backupdr.backupPlans.create | 管理員專案 |
| 刪除 BackupPlan | backupdr.backupPlans.delete | 管理員專案 | |
| 取得 BackupPlan | backupdr.backupPlans.get | 管理員專案 | |
| 列出備份方案 | backupdr.backupPlans.list | 管理員專案 | |
| 備份方案關聯 | 建立備份方案關聯 | 工作負載專案 | |
| backupdr.backupPlanAssociations.createForComputeInstance | 工作負載專案 | ||
| backupdr.backupPlans.useForComputeInstance | 管理員專案 | ||
| 刪除備份方案關聯 | backupdr.backupPlanAssociations.deleteForComputeInstance | 工作負載專案 | |
| 在備份方案關聯中觸發隨選備份 | backupdr.backupPlanAssociations.triggerBackupForComputeInstance | 工作負載專案 | |
| 取得備份方案關聯 | backupdr.backupPlanAssociations.getForComputeInstance | 工作負載專案 | |
| 列出備份方案關聯 | backupdr.backupPlanAssociations.list | 工作負載專案 | |
| 擷取備份方案關聯 | backupdr.backupPlanAssociations.fetchForComputeInstance | 工作負載專案 | |
| 資料來源 | 取得資料來源 | backupdr.bvdataSources.get | 管理員專案 |
| 列出資料來源 | backupdr.backupPlanAssociations.list | 管理員專案 | |
| 備份 | 取得備份 | backupdr.bvbackups.get | 管理員專案 |
| 列出備份 | backupdr.bvbackups.list | 管理員專案 | |
| 刪除備份 | backupdr.bvbackups.delete | 管理員專案 | |
| 還原備份 | backupdr.bvbackups.restore | 管理員專案 | |
| 作業 | 可列出作業 | backupdr.operations.list | 各自的專案 |
| Get 作業 | backupdr.operations.get | 各自的專案 |
限制
備份和災難復原不支援使用下列設定的 Compute Engine 執行個體,進行 Google 管理的備份:
- 已連結極端永久磁碟的執行個體
- 使用任何 hyperdisk-* 磁碟類型的執行個體
- 使用 C3D、H3、A3 或 Z3 機型的執行個體
- 使用客戶提供的加密金鑰 (CSEK) 的執行個體
- 缺少連結磁碟的執行個體
- 大小超過 200 TB 的執行個體
設定排程備份
請按照下列操作說明,為 Compute Engine 執行個體設定排程備份。
控制台
前往 Google Cloud 控制台的「Vaulted backups」(封存備份) 頁面。
按一下「排定備份時間」。
在「專案」清單中,按一下「瀏覽」,然後選取 Compute Engine 執行個體所在的專案。
從「Region」(區域) 清單中,選取執行個體所在的區域。
在「資源」清單中,按一下「瀏覽」。
選擇要備份的 Compute Engine 執行個體,然後按一下「完成」。
按一下「繼續」。
在「備份方案」清單中,按一下「選取」。
選擇要用來保護 Compute Engine 執行個體的備份方案。
按一下 [完成]。
查看備份詳細資料,然後按一下「排程」。
gcloud
取得執行個體 ID。
gcloud compute instances describe VM_NAME --zone=VM_ZONE --format="value(id)"更改下列內容:
VM_NAME:VM 執行個體的名稱。VM_ZONE:VM 所在的位置。
設定排程備份。
gcloud backup-dr backup-plan-associations create BACKUP_PLAN_ASSOCIATION_NAME \ --location=VM_REGION \ --resource=projects/VM_PROJECT_ID/zones/VM_ZONE/instances/VM_ID \ --backup-plan=projects/PROJECT_ID/locations/LOCATION/backupPlans/BACKUP_PLAN更改下列內容:
BACKUP_PLAN_ASSOCIATION_NAME:備份方案關聯的名稱。VM_REGION:Compute Engine 執行個體所在的區域。VM_PROJECT_ID:Compute Engine 執行個體所在的專案名稱。VM_ZONE:Compute Engine 執行個體所在的區域。VM_ID:Compute Engine 執行個體 ID。PROJECT_ID:備份方案所在的專案名稱。LOCATION:備份方案所在的區域。BACKUP_PLAN:要與 Compute Engine 執行個體建立關聯的備份計畫名稱。
Terraform
您可以使用 Terraform 資源設定排程備份。
備份和災難復原 Compute Engine 備份作業的應用程式一致性
應用程式一致性快照會擷取備份時的應用程式資料狀態,包括完成所有應用程式交易,以及將所有待處理的寫入作業排清至磁碟。
請按照下列操作說明,為 Compute Engine 執行個體設定應用程式一致性備份。
事前準備
請參閱應用程式一致性快照。
如要在 Linux 環境中備份執行個體,並確保備份內容與應用程式一致,備份方案必須包含前置和後置指令碼。為 Linux 環境建立必要的快照前和快照後指令碼。
為 Compute Engine 執行個體建立應用程式一致性備份的備份計畫
請按照下列操作說明,為 Compute Engine 執行個體建立應用程式一致性備份。
gcloud
建立備份方案。
gcloud backup-dr backup-plans create BACKUP_PLAN_NAME \ --compute-instance-properties=guest-flush=true \ --resource-type=compute.googleapis.com/Instance \ --location=REGION \ --project=PROJECT_ID \ --backup-vault=BACKUPVAULT_NAME \ --backup-rule=rule-id=RULE_NAME,recurrence=RECURRENCE,hourly-frequency=HOURS, \ time-zone=TIME_ZONE,backup-window-start=START_TIME,backup-window-end=END_TIME,\ retention-days=BACKUP_RETENTION --max-custom-on-demand-retention-days=MAX_ONDEMAND_RETENTION更改下列內容:
BACKUP_PLAN_NAME:備份方案名稱。REGION:要建立備份計畫的 Google Cloud 區域。PROJECT_ID:備份保存庫所在的專案名稱。BACKUPVAULT_NAME:要用於備份儲存空間的備份保存庫名稱。RULE_NAME:備份規則的名稱。RECURRENCE:建立備份的頻率。頻率可以是每小時、每日、每週、每月或每年。HOURS:每小時備份的頻率。只有在將週期設為每小時時,才指定這個值。 每小時頻率的預設下限值為 6 小時。TIME_ZONE:備份計畫的時區,例如世界標準時間。請使用 IANA 時區格式,加入備份方案的時區。START_TIME:開始時間以 24 小時制表示,開始時間必須早於結束時間,且備份時間範圍包含開始時間和結束時間。END_TIME:結束時間是以 24 小時制表示的時間,結束時間必須晚於開始時間,且不包含在備份時間範圍內。BACKUP_RETENTION:備份的保留期限。請注意,備份保留期限必須等於或大於備份保存庫強制執行的最短保留期限。MAX_ONDEMAND_RETENTION:使用這項備份方案建立的隨需備份,允許的最長自訂保留期限 (以天為單位)。
更新現有的備份方案,為 Compute Engine 執行個體建立應用程式一致性備份
請按照下列操作說明更新備份方案,為 Compute Engine 執行個體產生應用程式一致性備份。
gcloud
更新備份方案。
gcloud backup-dr backup-plans update BACKUP_PLAN_NAME \ --compute-instance-properties=guest-flush=true \ --project=PROJECT_ID \ --location=REGION \ --description=DESCRIPTION \ --backup-rule=BACKUP_RULE \ --add-backup-rule=ADD_BACKUP_RULE \ --remove-backup-rule=REMOVE_BACKUP_RULE \ --max-custom-on-demand-retention-days=MAX_ONDEMAND_RETENTION更改下列內容:
BACKUP_PLAN_NAME:備份方案名稱。PROJECT_ID:備份保存庫所在的專案名稱。REGION:要建立備份計畫的位置。DESCRIPTION:備份方案的更新說明。BACKUP_RULE:現有備份規則的完整定義,包含更新後的值。ADD_BACKUP_RULE:要新增至備份方案的備份規則參數。您可以重複使用這個旗標,新增更多備份規則。REMOVE_BACKUP_RULE:要從備份方案中移除的現有備份規則。MAX_ONDEMAND_RETENTION:使用這項備份方案建立的隨需備份,允許的最長自訂保留期限 (以天為單位)。
變更套用至 Compute Engine 執行個體的備份方案
您可以將套用至 Compute Engine 執行個體的備份方案變更為其他備份方案。其他備份方案必須符合下列條件:
- 使用相同的備份保存庫
- 與 Compute Engine 執行個體位於相同區域
如要變更與 Compute Engine 執行個體相關聯的備份方案,請按照下列指示操作。
控制台
前往 Google Cloud 控制台的「Vaulted backups」(封存備份) 頁面。
「已封存的備份」頁面只會列出符合下列條件的執行個體:已套用備份方案,而且備份儲存於專案中的 backup vault。
選取要改用其他方案的備份資料。在備份的備份詳細資料頁面中,或從 選單中,選取「變更備份方案」。「選取備份方案」視窗只會列出適用於這個執行個體的備份方案。
選取備份方案,然後按一下「套用」。
gcloud
變更指派的備份方案。
gcloud backup-dr backup-plan-associations update BACKUP_PLAN_ASSOCIATION_NAME \ --workload-project=VM_PROJECT_ID \ --location=VM_REGION \ --backup-plan=BACKUP-PLAN \ --project=PROJECT_ID更改下列內容:
BACKUP_PLAN_ASSOCIATION_NAME:備份方案關聯資源的名稱。VM_PROJECT_ID:Compute Engine 執行個體的專案 ID。VM_REGION:Compute Engine 執行個體的位置。BACKUP_PLAN:要切換的備份計畫名稱。PROJECT_ID:所選備份計畫的專案 ID。
列出排定的備份
請按照下列操作說明列出備份的 Compute Engine 執行個體。
控制台
前往 Google Cloud 控制台的「Vaulted backups」(封存備份) 頁面。
「已封存的備份」頁面只會列出符合下列條件的執行個體:已套用備份方案,而且備份儲存於專案中的 backup vault。
gcloud
列出排定的備份作業。
gcloud backup-dr backup-plan-associations list \ --location=LOCATION \ --project=PROJECT_ID更改下列內容:
PROJECT_ID:專案名稱。LOCATION:排定備份的位置。
建立按照需求執行的備份
您可以觸發所選備份規則立即執行,為採用備份方案的 Compute Engine 執行個體啟動按需備份。隨需備份通常只會擷取上次備份後變更的資料 (增量備份)。
建立隨需備份時,您可以從與 Compute Engine 執行個體相關聯的備份方案中選擇規則。這項規則會決定何時刪除隨選備份。您可以在「工作」頁面查看備份工作狀態。詳情請參閱「在 Google Cloud 控制台中監控備份與還原作業」。
請按照下列操作說明建立隨選備份。
控制台
- 依序前往「VM instances」(VM 執行個體) >「Details」(詳細資料) >「Backup Plan」(備份方案),建立隨選備份。
- 按一下「建立隨需備份」。您必須具備適當權限,才能執行隨需備份。
選擇何時要刪除這個備份。您可以選擇以下做法:
- 依據自訂保留期限 預設上限為備份保存庫的最短強制保留期限加上 30 天。如要設定不同的上限,請為備份方案新增自訂隨需備份的最長保留期限。
- 依據現有備份規則。從「備份保留天數」下拉式選單中選取規則。
按一下「建立」,即可啟動隨選備份工作。
如要查看隨選備份工作的狀態,請按一下「通知」。
gcloud
建立使用備份規則的隨需備份。
gcloud backup-dr backup-plan-associations trigger-backup BACKUP_PLAN_ASSOCIATION_NAME \ --project=PROJECT_ID \ --location=REGION \ --backup-rule-id=RULE_ID --labels=LABELS更改下列內容:
BACKUP_PLAN_ASSOCIATION_NAME:備份方案關聯的名稱。執行gcloud backup-dr backup-plan-associations list --location=LOCATION --project=PROJECT_ID指令,取得與 Compute Engine 磁碟相關聯的備份方案清單。PROJECT_ID:專案名稱。REGION:排定備份的位置。RULE_ID:您要建立關聯的備份規則名稱,以便執行隨選備份。LABELS:備份的選用標籤,以半形逗號分隔的鍵/值組合表示,例如webserver=backend,media=images。
建立使用自訂保留期限的隨選備份。
gcloud backup-dr backup-plan-associations trigger-backup BACKUP_PLAN_ASSOCIATION_NAME \ --project=PROJECT_ID \ --location=REGION \ --custom-retention-days=CUSTOM_RETENTION --labels=LABELS更改下列內容:
BACKUP_PLAN_ASSOCIATION_NAME:備份方案關聯的名稱。執行gcloud backup-dr backup-plan-associations list --location=LOCATION --project=PROJECT_ID指令,取得與 Compute Engine 磁碟相關聯的備份方案清單。PROJECT_ID:專案名稱。REGION:排定備份的位置。CUSTOM_RETENTION:這項隨選備份的自訂保留期限 (以天為單位)。這個值必須大於或等於備份保存時間,且小於或等於備份計畫中設定的max-custom-on-demand-retention-days值 (如果未設定max-custom-on-demand-retention-days,則為備份保存時間 + 30 天)。LABELS:備份的選用標籤,以半形逗號分隔的鍵/值組合表示,例如webserver=backend,media=images。
取消保護 Compute Engine 執行個體
如要取消保護 Compute Engine 執行個體,請移除套用至該執行個體的備份計畫。從 Compute Engine 執行個體移除備份方案,不會刪除備份方案,也不會刪除執行個體使用期間建立的任何備份。您仍可存取及管理這些現有備份。
請按照下列操作說明取消保護 Compute Engine 執行個體。
控制台
前往 Google Cloud 控制台的「Vaulted backups」(封存備份) 頁面。
按一下要移除備份方案的執行個體名稱。
選取「移除備份方案」。
gcloud
取消保護 Compute Engine 執行個體。
gcloud backup-dr backup-plan-associations delete BACKUP_PLAN_ASSOCIATION_NAME\ --project=PROJECT_ID \ --location=LOCATION更改下列內容:
BACKUP_PLAN_ASSOCIATION_NAME:要刪除的備份名稱。PROJECT_ID:專案名稱。LOCATION:排定備份作業的位置。