本頁詳細說明如何使用標記,自動備份 Compute Engine 執行個體。
為新的 Compute Engine 執行個體設定備份
Compute Engine 執行個體是 Google Cloud代管的 VM。 每個執行個體都會將資料儲存在附加至該執行個體的永久磁碟上。您可以使用 Google Cloud 控制台、Google Cloud CLI 或 Compute Engine API 建立執行個體,或建立代管執行個體群組。
詳情請參閱 Compute Engine。
自動備份的先決條件
開始自動備份 Compute Engine 執行個體之前,請先閱讀下列程序,為備份作業做好準備:
設定備份和災難復原服務並建立備份方案範本後,您可以使用「標記」,將備份方案範本套用至執行個體,自動保護 Compute Engine 執行個體。
權限
如要建立、更新及刪除 Compute Engine 資源的標記定義,您需要 Tag Administrator
角色。如要進一步瞭解tagUser
角色,請參閱必要權限。
如要使用動態標記備份 Compute Engine 執行個體,您必須在 Compute Engine 專案中,將 Backup and DR Compute Engine 運算子 (roles/backupdr.computeEngineOperator
) IAM 角色授予 backup vault 服務代理。
管理動態保護標記
如要建立、更新及刪除動態保護標記,您必須具備適當的權限,且獲派下列其中一種角色:
備份和災難復原管理員
備份和災難復原備份使用者
備份和災難復原使用者 V2
專案編輯者
專案擁有者
包含下列權限的自訂角色:
所需權限
backupdr.managementServers.listDynamicProtection
backupdr.managementServers.getDynamicProtection
backupdr.managementServers.createDynamicProtection
backupdr.managementServers.deleteDynamicProtection
compute.instances.listEffectiveTags
進一步瞭解備份和災難復原服務角色。
使用標記自動套用備份方案範本
本節說明如何使用標記,自動將備份方案套用至 Compute Engine 執行個體。首先,請在管理控制台中建立備份方案與標記的對應關係。然後,您可以使用管理控制台中指派的相同值,透過身分與存取權管理 (IAM) 建立標記。
建立動態保護標記值
請按照下列操作說明建立動態保護標記值,以便搭配 Compute Engine 執行個體使用:
在 Backup and DR 管理控制台中,按一下「Backup Plans」(備份方案) 下拉式選單,然後選取「Dynamic Protection Tags」(動態保護標記)。
按一下「建立動態保護標記」。
輸入不重複的「代碼值」,並遵守這些命名規定。
在「應用程式類型」清單中,選取「Compute Engine」。
選擇要與這個標記值建立關聯的相應範本和設定檔。
按一下 [儲存]。系統會建立動態保護標記值。
建立動態保護標記
請按照下列操作說明建立動態保護標記,並附加至 Compute Engine 執行個體,以自動執行保護作業:
如要建立、更新及刪除代碼定義,您必須具備「代碼管理員」角色,或是擁有特定權限的其他角色。
在 Google Cloud 控制台中開啟「標記」頁面。
在頁面頂端的「範圍選擇器」中,選取要建立標記鍵的機構或專案。
按一下「
Create」(建立)。在「標記鍵」方塊中,輸入
backupdr-dynamicprotect
做為標記鍵。這是成功自動化的必要步驟。請注意拼字錯誤,並務必加上連字號。選用:在「標記鍵說明」方塊中,輸入標記鍵的說明。
按一下「新增值」
,然後輸入您剛建立的每個標記值。
在「標記值」方塊中,輸入標記值的顯示名稱。這會成為代碼命名空間名稱的一部分。
在「標記值說明」方塊中,輸入與這個標記值相關聯的範本和設定檔說明。
新增完標記值後,請按一下「建立標記鍵」。
在資源中新增動態保護標記
您已建立動態保護標記值,並連結至動態保護標記,接下來請將標記指派給 Compute Engine 執行個體。如果執行個體受到邏輯群組保護,標記式保護功能就無法運作。移除邏輯群組,然後嘗試使用動態保護功能。
按照下列操作說明,將動態保護標記附加至 Compute Engine 執行個體:
在 Google Cloud 控制台中,依序前往「Compute Engine」>「VM instances」(VM 執行個體) 頁面。
在「Name」(名稱) 欄中,按一下要新增標記的 VM 名稱。
在「VM 執行個體詳細資料」頁面上,完成下列步驟:
- 按一下 [編輯]。
- 在「基本」部分中,按一下「管理標記」,然後為執行個體新增所需標記。
選取
backupdr-dynamicprotect:
鍵和對應的「標記值」,該值會對應至您在 Google Cloud 控制台中設定的範本和設定檔。按一下 [儲存]。
在建立資源時為資源新增標記
在某些情況下,您可能想在建立資源時標記資源,而不是在資源建立後標記。
主控台
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
選取您的專案並點選 [繼續]。
點選「建立執行個體」。
按一下「管理標記和標籤」。
按一下「新增標記」。
按照側邊面板中的操作說明選取
backupdr-dynamicprotect
,即可新增至執行個體。按一下 [儲存]。
完成「建立並啟動 VM 執行個體」一文中的其他步驟,即可完成執行個體的建立作業。
gcloud
如要使用 Google Cloud CLI 或 API,請按照 SDK 說明文件執行下列操作:
Terraform
使用下列 Terraform 範本,開始使用動態保護標記。這個範本假設您尚未在 Google Cloud 控制台中建立任何動態保護代碼金鑰,並會為您設定。範本會建立新的 Compute Engine 執行個體,並將其繫結至動態保護標記。您可以等待系統在當地時間凌晨 4 點或下午 4 點執行排定的動態保護工作,也可以按照「手動執行自動保護工作」一文中的步驟,視需要執行動態保護工作。
variable "project_id" {
description = "The ID of the existing Google Cloud project"
type = string
}
variable "region" {
description = "The Google Cloud region where demo-instance should be created"
type = string
}
variable "zone" {
description = "The Google Cloud zone where demo-instance should be created"
type = string
}
provider "google" {
project = var.project_id
region = var.region
zone = var.zone
}
data "google_project" "project" {
project_id = var.project_id
}
# Reference: https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/tags_tag_key
resource "google_tags_tag_key" "key" {
parent = "projects/${var.project_id}"
short_name = "backupdr-dynamicprotect"
description = "Tag key for Dynamic Protection."
}
# Reference: https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/tags_tag_value
resource "google_tags_tag_value" "value" {
parent = "tagKeys/${google_tags_tag_key.key.name}"
short_name = "backupdr-gold" # This value should be present in the "Management Console UI" > "Backup Plans" > "Dynamic Protection Tags"
description = "Tag value for gold plan."
}
# Reference: https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/compute_instance
# Ensure not to define tag in "resource_manager_tags" block while creating VM instance. It'll destroy the VM
# when tag value is changed/removed later. Instead define a separate tag binding using "google_tags_tag_binding"
# or "google_tags_location_tag_binding" resource. It'll modify just tag binding and VM instance won't be affected.
resource "google_compute_instance" "vm_instance" {
name = "demo-instance"
machine_type = "e2-micro"
zone = var.zone
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
network = "default"
access_config {
// Ephemeral public IP
}
}
}
# Reference: https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/google_tags_location_tag_binding
resource "google_tags_location_tag_binding" "binding" {
parent = "//compute.googleapis.com/projects/${data.google_project.project.number}/zones/${var.zone}/instances/${google_compute_instance.vm_instance.instance_id}"
tag_value = "tagValues/${google_tags_tag_value.value.name}"
location = var.zone
}
# Reference for Tag bindings at project/org level: https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/tags_tag_binding
將標記從資源卸離
如要從資源卸離標記,請刪除標記繫結資源。
如要查看如何分離標記的操作說明,請參閱資源管理員文件中的「從資源分離標記」。
主控台
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
選取您的專案並點選 [繼續]。
在「Name」(名稱) 欄中,按一下要新增標記的 VM 名稱。
在「VM 執行個體詳細資料」頁面上,完成下列步驟:
按一下 [編輯]。
在「基本」部分,按一下「管理標記」,然後移除執行個體的
backupdr-dynamicprotect
。按一下 [儲存]。
gcloud
如要使用 Google Cloud CLI,請按照文件使用 Google Cloud CLI 從資源中分離標記操作。
手動執行自動防護
雖然防護引擎會在每天當地時間上午 4 點和下午 4 點執行,但您也可以使用下列指令步驟,視需要執行動態防護引擎:
輸入以「https://bmc-」開頭並以「.com」結尾的值,設定管理控制台端點。例如
https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com
。export MC_ENDPOINT="MC_ENDPOINT_edited_value"
產生不記名權杖:
echo "Generating a new bearer token..." export BEARER_TOKEN=$(gcloud auth print-access-token) echo "Bearer token generated: BEARER_TOKEN=$BEARER_TOKEN"
取得新的工作階段 ID:
echo "Generating a new session id..." export SESSION_RESPONSE=$(curl -XPOST -H "Authorization: Bearer $BEARER_TOKEN" -d {} "$MC_ENDPOINT/actifio/session" 2>&-) export SESSION_ID=$(echo $SESSION_RESPONSE | jq -r '.session_id') if [ -z ${SESSION_ID} ] then echo "Issue with generating a new session id. Response: $SESSION_RESPONSE"; return 1; fi echo "Session id generated: SESSION_ID=$SESSION_ID"
設定端點、產生不記名權杖並取得工作階段 ID 後,您就能觸發動態保護工作,直到工作階段 ID 過期為止 (一小時)。
觸發動態保護工作
動態保護工作會更新所有 Compute Engine 執行個體的目前標記,並根據標記指派備份計畫。視工作負載待處理的變更數量而定,觸發的工作可能需要幾分鐘才會完成。
echo "Triggering dynamic protection job.." curl -H "Authorization: Bearer $BEARER_TOKEN" -H "backupdr-management-session: Actifio $SESSION_ID" -H "Content-Type: application/json" -XPOST -d '{}' "$MC_ENDPOINT/actifio/dynamicprotection/job/gceinstance" echo "Dynamic protection job triggered."
搭配 Resource Manager 使用動態保護措施
您可以搭配Resource Manager 使用動態防護標記,在較高的機構層級自動防護 Compute Engine 執行個體。使用 Resource Manager 在專案層級或更高等級為資源加上標記,確保所有資源都繼承保護措施。進一步瞭解代碼沿用。
將手動保護措施遷移至動態保護措施
如果您打算將已受保護的資源遷移至使用動態保護措施 (透過標記),則必須在專案中啟用遷移標記。啟用遷移功能後,手動保護的執行個體現在可以使用動態保護功能。系統會根據標記自動新增標記和資源,並移除現有的手動保護措施。
Bash
執行下列指令。
輸入以「https://bmc-」開頭並以「.com」結尾的值,設定管理控制台端點。例如
https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com
。#!/bin/bash export MC_ENDPOINT="MC_ENDPOINT_edited_value"
啟用遷移功能。
curl -H "Authorization: Bearer $BEARER_TOKEN" -H "backupdr-management-session: Actifio $SESSION_ID" -H "Content-Type: application/json" -XPATCH -d '{ "enableMigrationToTagBasedProtection":"true"}' "$MC_ENDPOINT/actifio/dynamicprotection/jobconfig"
管理控制台
如要啟用手動保護的 Compute Engine 執行個體移轉至以標記為準的保護機制,請按照下列步驟操作:
- 將「啟用遷移至以代碼為基礎的防護功能」切換為「開啟」狀態
- 確認「啟用遷移作業」對話方塊。系統會使用 VM 上定義的標記,重新保護手動保護的 Compute Engine 執行個體。
如要停用手動保護的 Compute Engine 執行個體遷移至以標記為準的保護機制,請按照下列步驟操作:
- 將「啟用以代碼為準的保護機制」切換為「關閉」。
- 確認「停用遷移作業」對話方塊。這會停用手動保護的 Compute Engine 執行個體遷移作業,改為以標記為基礎的保護機制。
事件和通知
動態保護引擎執行完畢後,您可以在監控事件中查看進度。執行動態保護措施後,管理控制台會收到摘要通知。如果需要使用者採取行動,系統會傳送錯誤通知。
最佳做法
動態保護功能可能會增加執行的備份作業數量和使用的儲存空間量。為獲得最佳成效,請注意下列事項:
增加備份時間範圍。通常 6 到 10 小時的時段就足以讓所有工作完成。
還原的 VM 會沿用來源 VM 的相同保護標記和備份計畫,但保護類型會從以標記為準的保護措施變更為使用者啟動的保護措施。資源將繼續受到沿用的備份方案保護。如要將保護類型改回以標記為準,可以移除沿用的保護備份方案,並視需要觸發動態保護作業,或等待下次排定的執行時間,讓應用程式再次採用以標記為準的保護措施。
掛接至現有主機或新建立主機的 VM 不會沿用來源 VM 的相同保護標記,因此掛接作業完成後,系統不會自動保護該 VM。如要保護新掛接的 VM,可以對新 VM 套用與來源 VM 類似的標記繫結。