本頁面詳細說明如何使用標記自動備份 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
角色,請參閱「必要權限」。
管理動態保護代碼
如要建立、更新及刪除動態保護標記,您必須具備下列任一角色:
備份和災難復原管理員
備份和災難復原備份使用者
備份和災難復原使用者 V2
專案編輯者
專案擁有者
自訂角色,其中包含下列權限:
所需權限
backupdr.managementServers.listDynamicProtection
backupdr.managementServers.getDynamicProtection
backupdr.managementServers.createDynamicProtection
backupdr.managementServers.deleteDynamicProtection
compute.instances.listEffectiveTags
進一步瞭解備份和災難復原服務角色。
使用標記自動套用備份方案範本
本節將說明如何使用標記,將備份方案自動套用至 Compute Engine 執行個體。首先,請在管理控制台中建立備份計畫與標記的對應項目。接著,您可以透過身分與存取權管理 (IAM) 使用管理控制台指派的相同值建立標記。
建立動態保護代碼值
請按照下列操作說明建立可與 Compute Engine 執行個體搭配使用的動態保護標記值:
在管理控制台中,按一下「Backup Plans」下拉式選單,然後選取「Dynamic Protection Tags」。
按一下「建立動態保護標記」。
輸入符合下列命名規定的專屬代碼值。
在「Application type」清單中,選取「Compute Engine」。
選擇要與這個標記值關聯的相應「範本」和「設定檔」。
按一下 [儲存]。系統會建立動態保護標記值。
建立動態保護標記
請按照以下操作說明建立動態保護標記,並附加至 Compute Engine 執行個體,以便自動執行保護作業:
如要建立、更新及刪除代碼定義,您必須具備「代碼管理員」角色,或是具備特定權限的其他角色。
在 Google Cloud 控制台中開啟「Tags」頁面。
在頁面頂端的「範圍挑選器」中,選取要建立代碼鍵的機構或專案。
按一下
「Create」(建立)。在「Tag key」方塊中,輸入
backupdr-dynamicprotect
做為標記鍵。這是自動化動作成功執行的必要步驟。請注意拼字錯誤,並務必加上連字號。選用:在「標記鍵說明」方塊中,輸入標記鍵的說明。
按一下
「新增值」,然後輸入剛建立的每個標記值。
在「代碼值」方塊中,輸入代碼值的顯示名稱。這會成為代碼命名空間名稱的一部分。
在「標記值說明」方塊中,輸入與此標記值相關聯的範本和設定檔說明。
新增完代碼值後,請按一下「建立代碼鍵」。
在資源中新增動態保護標記
您已建立動態保護標記值並將其連結至動態保護標記,下一步就是將標記指派給 Compute Engine 執行個體。如果您的執行個體在邏輯群組中受到保護,標記式保護功能就無法運作。移除邏輯群組,然後嘗試使用動態保護功能。
開始操作前,請為您的角色啟用適當的權限,確保您已指派下列任一角色:
備份和災難復原管理員
備份和災難復原備份使用者
備份和災難復原使用者 V2
專案編輯者
專案擁有者
您可以按照下列操作說明,將動態保護代碼附加至 Compute Engine 執行個體:
前往 Google Cloud 控制台的「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 點執行,但您也可以使用下列指令步驟,按需執行 Dynamic Protection 引擎:
輸入開頭為「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 執行個體遷移至標記式保護,請按照下列步驟操作:
- 將「啟用遷移至標記式保護」切換鈕設為「關閉」。
- 確認「Disable Migration」對話方塊。這會停用手動保護的 Compute Engine 執行個體遷移至標記式保護的功能。
事件和通知
動態保護引擎執行後,您可以透過監控事件查看進度。管理控制台在執行動態保護動作後,會收到摘要通知。如需使用者採取行動,系統就會傳送錯誤通知。
最佳做法
動態防護功能可增加執行的備份工作數量,以及使用的儲存空間量。為獲得最佳成效,請考慮下列事項:
增加備份時間間隔。通常,6 到 10 小時的時間窗口通常可讓所有工作執行完畢。
設定代碼前,請先考量家電類型。為獲得最佳成效,請確認所有已標記的 Compute Engine 執行個體都位於備份/復原機器上,且該機器執行的是 Compute Engine VM 或 SAP HANA 資料庫的標準機器類型。
還原的 VM 會沿用與來源 VM 相同的保護標記和備份方案,但保護類型會從標記式保護變更為使用者啟動的保護機制。系統會繼續使用轉移的備份方案保護資源。如要將防護類型改回標記式防護,您可以移除沿用防護備份方案,並視需要觸發動態防護工作,或等待下次排定執行作業,以便再次為應用程式指派標記式防護。
在任何現有主機或新建主機上掛載的 VM 不會繼承與來源 VM 相同的保護標記,因此在掛載作業後不會自動受到保護。如果需要保護新掛載的 VM,您可以套用與來源 VM 類似的新 VM 標記繫結。