自動保護新的 Compute Engine 執行個體

本頁面詳細說明如何使用標記自動備份 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 執行個體搭配使用的動態保護標記值:

  1. 在管理控制台中,按一下「Backup Plans」下拉式選單,然後選取「Dynamic Protection Tags」

  2. 按一下「建立動態保護標記」

  3. 輸入符合下列命名規定的專屬代碼值

  4. 在「Application type」清單中,選取「Compute Engine」

  5. 選擇要與這個標記值關聯的相應「範本」和「設定檔」

  6. 按一下 [儲存]。系統會建立動態保護標記值。

建立動態保護標記

請按照以下操作說明建立動態保護標記,並附加至 Compute Engine 執行個體,以便自動執行保護作業:

  1. 如要建立、更新及刪除代碼定義,您必須具備「代碼管理員」角色,或是具備特定權限的其他角色。

  2. 在 Google Cloud 控制台中開啟「Tags」頁面。

    開啟「代碼」頁面

  3. 在頁面頂端的「範圍挑選器」中,選取要建立代碼鍵的機構或專案。

  4. 按一下 「Create」(建立)

  5. 在「Tag key」方塊中,輸入 backupdr-dynamicprotect 做為標記鍵。這是自動化動作成功執行的必要步驟。請注意拼字錯誤,並務必加上連字號。

  6. 選用:在「標記鍵說明」方塊中,輸入標記鍵的說明。

  7. 按一下 「新增值」,然後輸入剛建立的每個標記值。

中設定的動態保護代碼值完全一致。
  1. 在「代碼值」方塊中,輸入代碼值的顯示名稱。這會成為代碼命名空間名稱的一部分。

  2. 在「標記值說明」方塊中,輸入與此標記值相關聯的範本和設定檔說明。

  3. 新增完代碼值後,請按一下「建立代碼鍵」

在資源中新增動態保護標記

您已建立動態保護標記值並將其連結至動態保護標記,下一步就是將標記指派給 Compute Engine 執行個體。如果您的執行個體在邏輯群組中受到保護,標記式保護功能就無法運作。移除邏輯群組,然後嘗試使用動態保護功能。

開始操作前,請為您的角色啟用適當的權限,確保您已指派下列任一角色:

  • 備份和災難復原管理員

  • 備份和災難復原備份使用者

  • 備份和災難復原使用者 V2

  • 專案編輯者

  • 專案擁有者

您可以按照下列操作說明,將動態保護代碼附加至 Compute Engine 執行個體:

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  2. 選取您的專案並點選 [繼續]

  3. 在「Name」欄中,按一下要新增代碼的 VM 名稱。

  4. 在「VM 執行個體」詳細資料頁面上,完成以下步驟:

    1. 按一下 [編輯]
    2. 在「基本」部分中,按一下「管理代碼」,然後為執行個體新增所需代碼。
  5. 選取 backupdr-dynamicprotect: 鍵和對應的標記值,對應至您在 Google Cloud 控制台中設定的範本和設定檔。

  6. 按一下 [儲存]

在建立資源時為資源新增標記

在某些情況下,您可能會想在建立資源時標記資源,而不是在資源建立後標記。

主控台

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  2. 選取您的專案並點選 [繼續]

  3. 點選「建立執行個體」

  4. 按一下「管理代碼和標籤」

  5. 按一下「新增代碼」

  6. 按照側邊面板中的操作說明,選取要新增至執行個體的 backupdr-dynamicprotect

  7. 按一下 [儲存]

  8. 完成「建立並啟動 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

將標記從資源中卸離

您可以刪除標籤繫結資源,將標籤從資源中分離。

如需標記解除連結的操作說明,請參閱資源管理工具說明文件中的「從資源中解除標記」。

主控台

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  2. 選取您的專案並點選 [繼續]

  3. 在「Name」欄中,按一下要新增代碼的 VM 名稱。

  4. 在「VM 執行個體」詳細資料頁面上,完成以下步驟:

  5. 按一下 [編輯]

  6. 在「基本」部分,按一下「管理標記」,然後移除執行個體的 backupdr-dynamicprotect

  7. 按一下 [儲存]

gcloud

如要使用 Google Cloud CLI,請按照說明文件使用 Google Cloud CLI 將標記從資源中分離

執行手動自動防護

雖然防護引擎會在當地時間每天上午 4 點和下午 4 點執行,但您也可以使用下列指令步驟,按需執行 Dynamic Protection 引擎:

  1. 輸入開頭為「https://bmc-」且結尾為「.com」的值,即可設定管理控制台端點。例如 https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com

    export MC_ENDPOINT="MC_ENDPOINT_edited_value"
    
  2. 產生不記名權杖:

    echo "Generating a new bearer token..."
    export BEARER_TOKEN=$(gcloud auth print-access-token)
    echo "Bearer token generated: BEARER_TOKEN=$BEARER_TOKEN"
    
  3. 取得新的工作階段 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 到期為止。

  4. 觸發動態防護工作

    動態保護工作會更新所有 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

執行下列指令。

  1. 輸入開頭為「https://bmc-」且結尾為「.com」的值,即可設定管理控制台端點。例如 https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com

     #!/bin/bash
    
     export MC_ENDPOINT="MC_ENDPOINT_edited_value"
    
    
  2. 啟用遷移功能。

    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 執行個體遷移至標記式保護,請按照下列步驟操作:

  1. 將「啟用遷移至標記式防護」切換至「開啟」狀態
  2. 確認「啟用遷移」對話方塊。系統會使用 VM 上定義的標記,為手動保護的 Compute Engine 執行個體重新提供保護。

如要停用手動保護的 Compute Engine 執行個體遷移至標記式保護,請按照下列步驟操作:

  1. 將「啟用遷移至標記式保護」切換鈕設為「關閉」。
  2. 確認「Disable Migration」對話方塊。這會停用手動保護的 Compute Engine 執行個體遷移至標記式保護的功能。

事件和通知

動態保護引擎執行後,您可以透過監控事件查看進度。管理控制台在執行動態保護動作後,會收到摘要通知。如需使用者採取行動,系統就會傳送錯誤通知。

最佳做法

動態防護功能可增加執行的備份工作數量,以及使用的儲存空間量。為獲得最佳成效,請考慮下列事項:

  • 增加備份時間間隔。通常,6 到 10 小時的時間窗口通常可讓所有工作執行完畢。

  • 設定代碼前,請先考量家電類型。為獲得最佳成效,請確認所有已標記的 Compute Engine 執行個體都位於備份/復原機器上,且該機器執行的是 Compute Engine VM 或 SAP HANA 資料庫的標準機器類型。

  • 還原的 VM 會沿用與來源 VM 相同的保護標記和備份方案,但保護類型會從標記式保護變更為使用者啟動的保護機制。系統會繼續使用轉移的備份方案保護資源。如要將防護類型改回標記式防護,您可以移除沿用防護備份方案,並視需要觸發動態防護工作,或等待下次排定執行作業,以便再次為應用程式指派標記式防護。

  • 在任何現有主機或新建主機上掛載的 VM 不會繼承與來源 VM 相同的保護標記,因此在掛載作業後不會自動受到保護。如果需要保護新掛載的 VM,您可以套用與來源 VM 類似的新 VM 標記繫結。