在设备管理控制台中自动保护 Compute Engine 实例

本页详细介绍了如何使用 设备管理控制台中的标记自动备份 Compute Engine 实例。

为新的 Compute Engine 实例配置备份

Compute Engine 实例是托管在 Google Cloud上的虚拟机。 每个实例都将数据存储在附加到该实例的永久性磁盘上。 您可以使用 创建实例创建代管式实例组 通过使用 Google Cloud 控制台、gcloud CLI或 Compute Engine API。

如需了解更多详细信息,请参阅 Compute Engine

自动备份的前提条件

在开始自动备份 Compute Engine 实例之前,请阅读以下程序,为备份做好准备:

设置 Backup and DR Service 并创建备份方案模板后,您可以使用标记将备份方案模板应用于实例,从而自动保护 Compute Engine 实例。

权限

如需为 Compute Engine 资源创建、更新和删除标记定义,您需要拥有 Tag Administrator 角色。如需详细了解 tagUser 角色,请参阅所需权限

如需使用动态标记备份 Compute Engine 实例,您必须在 Compute Engine 项目中向备份/恢复设备服务代理授予 Backup and DR Compute Engine Operator (roles/backupdr.computeEngineOperator) Identity and Access Management (IAM) 角色。

管理动态保护标记

如需创建、更新和删除动态保护标记,您需要拥有 适合您角色的相应权限 ,以确保您拥有以下角色之一:

  • Backup and DR Admin

  • Backup and DR Backup User

  • Backup and DR User V2

  • Project Editor

  • Project Owner

  • 包含以下权限的自定义角色:

所需权限

  • backupdr.managementServers.listDynamicProtection
  • backupdr.managementServers.getDynamicProtection
  • backupdr.managementServers.createDynamicProtection
  • backupdr.managementServers.deleteDynamicProtection
  • compute.instances.listEffectiveTags

详细了解 Backup and DR Service 角色

使用标记自动应用备份方案模板

本部分可帮助您使用标记自动将备份方案应用于 Compute Engine 实例。首先,您需要在设备管理控制台中创建备份方案到标记的映射。然后 您可以使用在设备管理控制台中分配的相同 值,通过 IAM 创建标记。

创建动态保护标记值

按照以下说明创建可与 Compute Engine 实例搭配使用的动态保护标记值:

  1. 在 Backup and DR 设备管理控制台中,点击备份方案 下拉菜单,然后选择动态保护标记

  2. 点击创建动态保护标记

  3. 输入符合以下 命名要求的唯一标记值

  4. 应用类型 列表中,选择 Compute Engine

  5. 选择要与此标记值关联的相应模板配置文件

  6. 点击保存 。系统会创建一个动态保护标记值。

创建动态保护标记

按照以下说明创建动态保护标记,以附加到 Compute Engine 实例,从而自动保护实例:

  1. 如需创建、更新和删除标记定义,您需要拥有 Tag Administrator 角色,或具备特定权限的其他角色。

  2. 在 Google Cloud 控制台中,打开标记页面。

    打开“标记”页面

  3. 在页面顶部的范围选择器 中,选择要在其下创建标记键的组织或项目。

  4. 点击 创建

  5. 标记键 框中,输入 backupdr-dynamicprotect 作为标记键。这是成功实现自动化的必要步骤。请注意拼写错误,并务必添加连字符。

  6. 可选:在标记键说明 框中,输入标记键的说明。

  7. 点击 添加值 ,然后输入您刚刚创建的每个 标记值。

  1. 标记值 框中,输入标记值的显示名。它会成为标记的命名空间名称的一部分。

  2. 标记值说明 框中,输入与此标记值关联的模板和配置文件的说明。

  3. 添加完标记值后,点击创建标记键

向资源添加动态保护标记

现在,您已创建动态保护标记值并将其关联到动态保护标记,下一步是将标记分配给 Compute Engine 实例。如果您的实例 在逻辑组内受到保护,则基于标记的保护不起作用。移除逻辑组,然后尝试使用动态保护。

您可以使用以下说明将动态保护标记附加到 Compute Engine 实例:

  1. 在 Google Cloud 控制台中,前往 Compute Engine > 虚拟机实例 页面。

    转到虚拟机实例

  2. 名称 列中,点击要为其添加标记的虚拟机的名称。

  3. 虚拟机实例 详情页面中,完成以下步骤:

    1. 点击修改
    2. 基本 部分中,点击管理标记 并为实例添加所需的标记。
  4. 选择 backupdr-dynamicprotect: 键,以及与您在 Google Cloud 控制台中设置的模板和配置文件对应的标记值

  5. 点击保存

在创建资源期间向资源添加标记

在某些情况下,您可能需要在创建资源期间标记资源,而不是在创建资源之后。

控制台

  1. 在 Google Cloud 控制台中,前往虚拟机实例页面。

    转到虚拟机实例

  2. 选择您的项目并点击继续

  3. 点击创建实例

  4. 点击管理标记和标签

  5. 点击添加标记

  6. 按照侧边栏中的说明选择要添加到实例的 backupdr-dynamicprotect

  7. 点击保存

  8. 完成创建并启动虚拟机实例 中的其他步骤,以完成实例的创建。

gcloud

如需使用 gcloud CLI 或 API,请按照 SDK 文档执行以下操作:

Terraform

使用以下 Terraform 模板开始使用动态保护标记。此模板假定您尚未在 控制台中创建任何 Google Cloud 动态保护标记键,并将为您进行设置 。该模板会创建一个新的 Compute Engine 实例,并将其绑定到动态保护标记。您可以等待预定的动态保护作业在当地时间凌晨 4:15 或下午 4:15 运行以使其生效,也可以按照 运行手动自动保护中的步骤按需运行动态保护作业。

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

从资源分离标记

您可以通过删除标记绑定资源,从资源分离标记。

如需查看有关如何分离标记的说明,请参阅 Resource Manager 文档中的从资源分离标记

控制台

  1. 在 Google Cloud 控制台中,前往虚拟机实例页面。

    转到虚拟机实例

  2. 选择您的项目并点击继续

  3. 名称列中,点击要为其添加标记的虚拟机的名称。

  4. 虚拟机实例详情页面中,完成以下步骤:

  5. 点击修改

  6. 基本 部分中,点击管理标记 并为实例移除 backupdr-dynamicprotect

  7. 点击保存

gcloud

如需使用 gcloud CLI,请按照文档 使用 gcloud CLI 从资源分离标记。

运行手动自动保护

虽然保护引擎每天在当地时间凌晨 4:15 和下午 4:15 运行,但您也可以使用以下命令步骤按需运行动态保护引擎:

  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" -H "Content-Type: application/json" -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. 确认“启用迁移”对话框。手动保护的 Compute Engine 实例将使用虚拟机上定义的标记重新保护。

如需停用将手动保护的 Compute Engine 实例迁移到基于标记的保护,请按照以下步骤操作:

  1. 启用迁移到基于标记的保护 切换为“关闭”状态。
  2. 确认“停用迁移”对话框。这会停用将手动保护的 Compute Engine 实例迁移到基于标记的保护。

事件和通知

动态保护引擎运行后,您可以从 监控事件中查看进度。设备管理控制台会在执行动态保护操作后收到摘要通知。如果需要用户操作,系统会发送错误通知。

最佳做法

动态保护可以增加正在运行的备份作业数量和使用的存储空间量。为获得最佳结果,请考虑以下事项:

  • 增加备份窗口。6 到 10 小时的窗口通常可以允许所有作业运行完成。

  • 恢复的虚拟机将沿用与源虚拟机相同的保护标记以及相同的备份方案,但保护类型将从基于标记的保护更改为用户发起的保护。资源将继续使用沿用的备份方案受到保护。如需将保护类型改回基于标记的保护,您可以移除沿用的保护备份方案,并按需触发动态保护作业,或等待其下次预定执行,以便应用再次分配基于标记的保护。

  • 任何现有主机或新创建的主机上的装载虚拟机都不会沿用与源虚拟机相同的保护标记,因此在装载操作后不会自动受到保护。如果需要保护新装载的虚拟机,您可以向新虚拟机应用与源虚拟机类似的标记绑定。