将 Compute Engine 实例备份到备份保险柜

本页介绍了如何使用 Google Cloud 控制台将 Compute Engine 实例备份到备份保险柜。将备份发送到备份保险柜可实现不可变性和强制保留。借助备份保险柜,您可以在单个区域或多区域中存储备份。如果您有以下任何备份要求,则可以使用管理控制台备份 Compute Engine 实例:

  • 跨区域备份
  • 挂接到虚拟机的特定磁盘的备份
  • 基于标记自动保护 Google Compute Engine 虚拟机
  • 如果 Google Cloud 基于控制台的备份方案和备份保险柜不在与源虚拟机运行区域兼容的位置。
只有受邀者才能访问多区域备份保险柜。如果您想在 Google Cloud项目中申请访问多区域备份保险柜,请与您的销售代表联系。

在 Google Cloud 控制台中,您可以通过应用备份方案将 Compute Engine 实例备份到备份保险柜。您可以通过这两种方式进行备份。通过这两种方法,您都可以将备份安全地存储在备份保险柜中,从而能够在发生数据丢失或其他意外事件时可靠地恢复 Compute Engine 实例。

  • 计划备份。您可以按特定时间间隔(例如每天、每周、每月或每年)自动备份 Compute Engine 实例。
  • 按需备份。您可以根据需要创建按需备份。在对实例进行重大更改之前创建备份或临时保护数据时,按需备份非常有用。

准备工作

  1. 在 Compute Engine 实例所在的位置启用 Backup and DR Service API。
  2. 启用该 API
  3. 创建备份保险柜
  4. 创建备份方案
  5. 向备用用户分配 IAM 角色和权限
  6. 在 Compute Engine 项目中授予备份保险柜访问权限
  7. 在存储桶上设置 Log Analytics 以监控 Backup and DR 备份作业。

限制

如果实例使用以下任一配置,Backup and DR Service 不支持将 Compute Engine 实例备份到备份保险柜:

  • 已挂接极端永久性磁盘的虚拟机实例。
  • 已挂接任何 Hyperdisk Extreme 磁盘的虚拟机实例。
  • 使用 C3D、H3、A3 或 Z3 机器类型的虚拟机实例。
  • 使用客户管理的加密密钥 (CMEK) 或客户提供的加密密钥 (CSEK) 的虚拟机实例。
  • 没有任何已挂接磁盘的虚拟机实例。
  • 虚拟机实例大于 200 太字节 (TB)。

备用用户的 IAM 角色和权限

如需获得配置定期备份或运行按需备份所需的权限,请让管理员向您授予备份保险柜项目的以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

这些预定义角色包含配置定期备份或运行按需备份所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需配置定期备份或运行按需备份,您需要具备以下权限:

  • 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

您也可以使用自定义角色或其他预定义角色来获取这些权限。

在 Compute Engine 项目中授予备份保险柜访问权限

如需在创建备份保险柜的项目之外的项目中备份 Compute Engine 虚拟机实例,您必须向 Compute Engine 项目中的备份保险柜服务代理授予“备份和灾难恢复 Compute Engine 操作员”(roles/backupdr.computeEngineOperator) IAM 角色。

如需在创建备份保险柜的项目中备份 Compute Engine 虚拟机实例,无需授予任何角色。

如需了解如何向您要备份的项目中的备份保险柜服务代理授予角色,请参阅向服务代理授予角色

配置定期备份

按照以下说明为 Compute Engine 实例配置定期备份。

控制台

  1. 在 Google Cloud 控制台中,前往保险柜备份页面。

    前往“受保管的备份”页面

  2. 点击安排备份

  3. 项目列表中,点击浏览,然后选择包含 Compute Engine 实例的项目。

  4. 区域列表中,选择实例所在的区域。

  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_ZONE:虚拟机所在的位置。
  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 控制台中,前往保险柜备份页面。

    前往“受保管的备份”页面

    存储在保险柜中的备份页面仅列出已应用备份方案且备份已存储在项目内备份保险柜中的实例。

  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 控制台中,前往保险柜备份页面。

    前往“受保管的备份”页面

    存储在保险柜中的备份页面仅列出已应用备份方案且备份已存储在项目内备份保险柜中的实例。

gcloud

  1. 列出已安排的备份。

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

    替换以下内容:

    • PROJECT_ID:项目的名称。
    • LOCATION:定期备份的位置。

创建按需备份

您可以触发所选的备份规则立即运行,以便为具有备份方案的 Compute Engine 实例启动按需备份。按需备份通常仅捕获自上次备份以来发生更改的数据(增量)。

创建按需备份时,您可以从与 Compute Engine 实例关联的备份方案中选择规则。此规则决定何时删除按需备份。您可以通过作业页面查看备份作业的状态。如需了解详情,请参阅在 Google Cloud 控制台中监控备份和恢复作业

请按照以下说明创建按需备份。

控制台

  1. 依次前往虚拟机实例 > 详细信息 > 备份方案,以创建按需备份。
  2. 点击创建按需备份。您必须拥有正确的权限才能进行按需备份。
  3. 选择备份规则。
  4. 点击创建以开始按需备份创建流程。
  5. 如需查看按需备份作业的状态,请点击通知

gcloud

  1. 创建按需备份。

      gcloud backup-dr backup-plan-associations trigger-backup BACKUP_PLAN_ASSOCIATION_NAME \
      --project=PROJECT_ID --location=LOCATION \
      --backup-rule-id=RULE_ID
    

    替换以下内容:

    • BACKUP_PLAN_ASSOCIATION_NAME:备份方案关联的名称。运行 gcloud backup-dr backup-plan-associations list --location=LOCATION --project=PROJECT_ID 命令以获取与 Compute Engine 实例关联的备份方案的列表。
    • PROJECT_ID:项目的名称。
    • LOCATION:定期备份的位置。
    • RULE_ID:您要关联以运行按需备份的备份规则的名称。

取消保护 Compute Engine 实例

您可以通过移除应用于 Compute Engine 实例的备份方案来取消保护该实例。从 Compute Engine 实例中移除备份方案不会删除该备份方案或在实例使用期间创建的任何备份。您仍然可以访问和管理这些现有备份。

请按照以下说明取消保护 Compute Engine 实例。

控制台

  1. 在 Google Cloud 控制台中,前往保险柜备份页面。

    前往“受保管的备份”页面

  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:定期备份的位置。

后续步骤