將 Compute Engine 執行個體備份至備份保存庫

本頁面提供相關操作說明,包括如何將 Compute Engine 執行個體備份至備份和災難復原服務備份儲存空間、在 Compute Engine 專案中授予備份儲存空間存取權、設定排程備份、建立隨選備份,以及管理儲存在備份儲存空間中的備份。

總覽

將備份傳送至 backup vault,即可確保備份內容不可變更,並強制執行保留設定。您可以使用備份保存庫,將備份資料儲存在單一或多個區域。備份 Compute Engine 執行個體主要有兩種方法:

  • 使用 Google Cloud 主控台備份 Compute Engine 執行個體:在Google Cloud 主控台中,您可以套用備份方案,將 Compute Engine 執行個體備份至備份儲存空間。您可以透過下列任一方法備份資料。這兩種方法都能讓您將備份安全地儲存在備份保存庫中,在資料遺失或其他意外事件發生時,提供可靠的 Compute Engine 執行個體復原方式。

    • 排定備份時程:自動以特定間隔備份 Compute Engine 執行個體,例如每天、每週、每月或每年。

    • 隨選備份:隨時視需要建立備份。 在對執行個體進行重大變更前,或進行臨時資料保護時,隨需備份功能就派得上用場。

  • 使用管理主控台備份 Compute Engine 執行個體:如有下列任一備份需求,您可以使用管理主控台備份 Compute Engine 執行個體:

    • 跨區域備份
    • 備份連結至虛擬機器 (VM) 的特定磁碟
    • 根據標記自動保護 Google Compute Engine VM
    • 如果 Google Cloud 以控制台為準的備份方案和備份保存庫與來源 VM 執行的區域不相容

事前準備

  1. 在 Compute Engine 執行個體所在的區域啟用 Backup and DR Service API。

    啟用 API

  2. 建立備份保存庫

  3. 建立備份方案

  4. 為備份使用者指派 IAM 角色和權限

  5. 在 Compute Engine 專案中授予備份儲存空間存取權

  6. 在 bucket 上設定 Log Analytics,監控備份和災難復原服務的備份工作。

限制

如果 Compute Engine 執行個體使用下列任一設定,備份和災難復原服務就不支援將執行個體備份至備份保存庫:

  • 已連結極速永久磁碟的 VM 執行個體。
  • 使用 hyperdisk-* 磁碟類型的 VM 執行個體。使用「磁碟備份」
  • 使用 C3D、H3、A3 或 Z3 機型的 VM 執行個體。
  • 使用客戶管理的加密金鑰 (CMEK) 或客戶提供的加密金鑰 (CSEK) 的 VM 執行個體。
  • 沒有任何附加磁碟的 VM 執行個體。
  • VM 執行個體大於 200 TB。

備份使用者的 IAM 角色和權限

如要取得設定排程備份或執行隨選備份所需的權限,請要求管理員在備份保存庫專案中授予您下列 IAM 角色:

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這些預先定義的角色具備設定排程備份或執行隨選備份所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

如要設定排程備份或執行隨選備份,必須具備下列權限:

  • backupdr.backupPlans.list
  • backupdr.backupPlanAssociations.createForComputeInstance
  • backupdr.backupPlanAssociations.list
  • backupdr.backupPlanAssociations.get
  • backupdr.backupPlanAssociations.triggerBackupForComputeInstance
  • backupdr.backupPlanAssociations.deleteForComputeInstance
  • backupdr.backupPlans.useForComputeInstance
  • backupdr.locations.list
  • backupdr.operations.get
  • cloudasset.assets.searchAllResources

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

下表列出各項 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 管理員專案
備份方案關聯 建立備份方案關聯 compute.instances.updateBackupDrConfig 工作負載專案
backupdr.backupPlanAssociations.createForComputeInstance 工作負載專案
backupdr.backupPlans.useForComputeInstance 管理員專案
刪除備份方案關聯 backupdr.backupPlanAssociations.deleteForComputeInstance 工作負載專案
compute.instances.updateBackupDrConfig 工作負載專案
在備份方案關聯中觸發隨選備份 backupdr.backupPlanAssociations.triggerBackupForComputeInstance 工作負載專案
取得備份方案關聯 backupdr.backupPlanAssociations.getForComputeInstance 工作負載專案
列出備份方案關聯 backupdr.backupPlanAssociations.list 工作負載專案
擷取備份方案關聯 backupdr.backupPlanAssociations.fetchForComputeInstance 工作負載專案
資料來源 取得 DataSource backupdr.bvdataSources.get 管理員專案
可列出資料來源 backupdr.backupPlanAssociations.list 管理員專案
PiTR 還原 backupdr.bvdataSources.useReadOnlyForComputeInstance 管理員專案
備份 取得備份 backupdr.bvbackups.get 管理員專案
列出備份 backupdr.bvbackups.list 管理員專案
刪除備份 backupdr.bvbackups.delete 管理員專案
還原備份 backupdr.bvbackups.useReadOnlyForComputeInstance 管理員專案
資料來源參照 取得資料來源參照 backupdr.dataSourceReferences.getForComputeInstance 工作負載專案
擷取資料來源參照 backupdr.dataSourceReferences.fetchForComputeInstance 工作負載專案
作業 可列出作業 backupdr.operations.list 各自的專案
Get 作業 backupdr.operations.get 各自的專案

在 Compute Engine 專案中授予 backup vault 存取權

如要備份備份儲存庫所在專案以外的 Compute Engine VM 執行個體,您必須在 Compute Engine 專案中,將 Backup and DR Compute Engine 運算子 (roles/backupdr.computeEngineOperator) 身分與存取權管理角色授予備份儲存庫服務代理。

如要備份與備份保存庫位於相同專案的 Compute Engine VM 執行個體,則不需要授予任何角色。

如要瞭解如何在要備份的專案中,將角色授予 backup vault 服務代理,請參閱「將角色授予服務代理」。

設定排程備份

請按照下列操作說明,為 Compute Engine 執行個體設定排程備份。

控制台

  1. 前往 Google Cloud 控制台的「Vaulted backups」(已封存備份) 頁面。

    前往「封存備份」

  2. 按一下「排定備份時間」

  3. 在「專案」清單中,按一下「瀏覽」,然後選取 Compute Engine 執行個體所在的專案。

  4. 從「Region」(區域) 清單中,選取執行個體所在的區域。

  5. 在「資源」清單中,按一下「瀏覽」

  6. 選擇要備份的 Compute Engine 執行個體,然後按一下「完成」

  7. 按一下「繼續」

  8. 在「備份方案」清單中,按一下「選取」

  9. 選擇要用來保護 Compute Engine 執行個體的備份方案。

  10. 按一下 [完成]

  11. 查看備份詳細資料,然後按一下「排程」

gcloud

  1. 取得執行個體 ID。

      gcloud compute instances describe VM_NAME --zone=VM_ZONE --format="value(id)"
    

    更改下列內容:

    • VM_NAME:VM 執行個體的名稱。
    • VM_ZONE:VM 所在位置。
  2. 設定排程備份。

      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 資源設定排程備份


# Before creating a backup plan association, you need to create backup plan (google_backup_dr_backup_plan)
# and compute instance (google_compute_instance).
resource "google_backup_dr_backup_plan_association" "default" {
  provider                   = google-beta
  location                   = "us-central1"
  backup_plan_association_id = "my-bpa"
  resource                   = google_compute_instance.default.id
  resource_type              = "compute.googleapis.com/Instance"
  backup_plan                = google_backup_dr_backup_plan.default.name
}

變更套用至 Compute Engine 執行個體的備份方案

您可以將套用至 Compute Engine 執行個體的備份方案變更為其他備份方案。其他備份方案必須符合下列條件:

  • 使用同一個備份保存庫
  • 與 Compute Engine 執行個體位於相同地區

如要變更與 Compute Engine 執行個體相關聯的備份方案,請按照下列指示操作。

控制台

  1. 前往 Google Cloud 控制台的「Vaulted backups」(已封存備份) 頁面。

    前往「封存備份」

    「已封存的備份」頁面只會列出符合下列條件的執行個體:已套用備份方案,而且備份儲存於專案中的 backup vault。

  2. 選取要改用其他方案的備份。在備份的備份詳細資料頁面中,或從 選單中,選取「變更備份方案」。「選取備份方案」視窗只會列出適用於這個執行個體的備份方案。

  3. 選取備份方案,然後按一下「套用」

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 執行個體。

控制台

  1. 前往 Google Cloud 控制台的「Vaulted backups」(已封存備份) 頁面。

    前往「封存備份」

    「已封存的備份」頁面只會列出符合下列條件的執行個體:已套用備份方案,而且備份儲存於專案中的 backup vault。

gcloud

  1. 列出排定的備份作業。

      gcloud backup-dr backup-plan-associations list \
      --location=LOCATION \
      --project=PROJECT_ID
    

    更改下列內容:

    • PROJECT_ID:專案名稱。
    • LOCATION:排定備份的位置。

建立按照需求執行的備份

您可以觸發所選備份規則立即執行,為具備備份方案的 Compute Engine 執行個體啟動按需求備份。按照需求執行的備份通常只會擷取上次備份後變更的資料 (增量備份)。

建立隨需備份時,您可以從與 Compute Engine 執行個體相關聯的備份方案中選擇規則。這項規則會決定何時刪除隨需備份。您可以在「工作」頁面查看備份工作狀態。詳情請參閱「在 Google Cloud 控制台中監控備份與還原工作」。

請按照下列操作說明建立隨選備份。

控制台

  1. 依序前往「VM 執行個體」 >「詳細資料」 >「備份方案」,建立隨選備份。
  2. 按一下「建立隨需備份」。您必須具備正確權限,才能執行隨需備份。
  3. 選擇何時要刪除這個備份。您可以選擇以下做法:

    • 依據自訂保留期限 (預覽版) 根據預設,上限為備份 vault 的最短強制保留期限加上 30 天。如要設定不同的上限,請為備份方案新增自訂隨需備份的最長保留期限。
    • 依據現有備份規則。從「備份保留天數」下拉式選單中選取規則。
  4. 按一下「建立」,即可開始建立隨選備份。

  5. 如要查看隨選備份工作的狀態,請按一下「通知」

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 執行個體。

控制台

  1. 前往 Google Cloud 控制台的「Vaulted backups」(已封存備份) 頁面。

    前往「封存備份」

  2. 按一下要移除備份方案的執行個體名稱。

  3. 選取「移除備份方案」

gcloud

  1. 取消保護 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:排定備份作業的位置。

後續步驟