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

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

  • 多区域或跨区域备份
  • 挂接到虚拟机的特定磁盘的备份
  • 基于标记自动保护 Google Compute Engine 虚拟机
  • 如果您的虚拟机所在区域不支持基于 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,以监控备份和灾难恢复备份作业。

限制

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

  • 挂接了极端永久性磁盘的虚拟机实例。
  • 挂接了任何 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 项目中的备份保险柜服务代理授予 Backup and DR Compute Engine Operator (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 实例。

控制台

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

后续步骤