将磁盘备份到备份保险柜

本页面介绍如何将磁盘备份到备份保险柜。将备份发送到备份保险柜可提供不可变性和强制保留。 借助备份保险柜,您可以将备份存储在区域或多区域中。

在 Google Cloud 控制台中,您可以通过 应用备份方案将磁盘备份到备份保险柜。您可以通过以下两种方式进行备份:

  • 预定备份:您可以按特定时间间隔(例如每天、每周、每月或每年)自动备份磁盘 。
  • 按需备份:您可以根据需要随时创建按需备份。 按需备份非常适合在对实例进行重大更改之前创建备份,或用于临时数据保护。

这两种方法都允许您将备份安全地存储在备份保险柜中,从而提供一种可靠的方式来恢复磁盘,以防数据丢失或其他意外事件。

准备工作

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

限制

Backup and DR Service 不支持:

  • 将磁盘备份到具有客户提供的加密密钥 (CSEK) 的磁盘的备份保险柜。
  • 不支持备份访问模式为 READ_WRITE_MANY 的磁盘。
  • 每小时备份次数超过一次。
  • 跨区域备份。

备份用户的 IAM 角色和权限

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

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

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

所需权限

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

  • backupdr.backupPlans.list
  • backupdr.backupPlanAssociations.createForComputeDisk
  • backupdr.backupPlanAssociations.list
  • backupdr.backupPlanAssociations.get
  • backupdr.backupPlanAssociations.triggerBackupForComputeDisk
  • backupdr.backupPlanAssociations.deleteForComputeDisk
  • backupdr.backupPlans.useForComputeDisk
  • backupdr.locations.list
  • backupdr.operations.get
  • cloudasset.assets.searchAllResources

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

在磁盘所在的项目中授予备份保险柜访问权限

如需备份与创建备份保险柜的项目不同的项目中的磁盘,您必须在磁盘所在的项目中向备份保险柜服务代理授予 Backup and DR Disk Operator (roles/backupdr.diskOperator) IAM 角色。

如需备份创建备份保险柜的项目中的磁盘,则无需授予任何角色。

如果磁盘受客户管理的加密密钥 (CMEK) 保护,您必须向用于加密磁盘的 KMS 密钥上的备份保险柜服务代理 (service-BACKUP_VAULT_PROJECT_NUMBER@gcp-sa-backupdr.iam.gserviceaccount.com) 授予 Cloud KMS CryptoKey Encrypter/Decrypter 角色 (roles/cloudkms.cryptoKeyEncrypterDecrypter) 。Backup and DR Service 需要此权限才能在备份和恢复操作期间访问密钥。

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

配置预定备份

按照以下说明为磁盘配置预定备份。

控制台

  1. 在 Google Cloud 控制台中,前往 受保管的备份 页面。

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

  2. 点击安排备份

  3. 对于资源类型,请选择磁盘

  4. 项目 列表中,点击浏览 ,然后选择磁盘所在的项目。

  5. 区域 列表中,选择磁盘所在的区域。

  6. 资源 列表中,点击浏览

  7. 选择要备份的磁盘,然后点击完成

  8. 点击继续

  9. 备份方案 列表中,点击选择

  10. 选择要用于保护磁盘的备份方案。

  11. 点击完成

  12. 查看备份详细信息,然后点击安排 。 此时,您已将备份方案与磁盘相关联。备份方案会根据备份政策中设置的频率安排所选磁盘进行备份,但尚未备份。如果当前时间在备份方案中设置的时间窗口内,则第一个备份作业将在几分钟内开始。如果当前时间不在方案窗口内, 则创建按需备份

gcloud

  1. 获取实例 ID。

      gcloud compute instances describe DISK_NAME --zone=DISK_ZONE --format="value(id)"
    

    替换以下内容:

    • DISK_NAME:磁盘的名称。
    • DISK_ZONE:磁盘所在的位置。
  2. 配置预定备份。

      gcloud backup-dr backup-plan-associations create BACKUP_PLAN_ASSOCIATION_NAME \
      --location=DISK_REGION \
      --resource=projects/DISK_PROJECT_ID/zones/DISK_ZONE/disks/DISK_ID \
      --resource-type=compute.googleapis.com/Disk \
      --backup-plan=projects/PROJECT_ID/locations/LOCATION/backupPlans/BACKUP_PLAN
    

    替换以下内容:

    • BACKUP_PLAN_ASSOCIATION_NAME:备份方案关联的名称。
    • DISK_REGION:磁盘所在的区域。
    • DISK_PROJECT_ID:磁盘所在项目的名称。
    • DISK_ZONE:磁盘所在的可用区。
    • DISK_ID:磁盘 ID。
    • PROJECT_ID:备份方案所在项目的名称。
    • LOCATION:备份方案所在的区域。
    • BACKUP_PLAN:您要与磁盘关联的备份方案的名称。

Terraform

您可以使用 Terraform 资源配置预定备份


# Before creating a backup plan association, you need to create backup plan (google_backup_dr_backup_plan)
# and compute disk (google_compute_disk or google_compute_region_disk).
resource "google_backup_dr_backup_plan_association" "disk_association" {
  provider                   = google-beta
  location                   = "us-central1"
  backup_plan_association_id = "my-disk-bpa"
  resource                   = google_compute_disk.default.id
  resource_type              = "compute.googleapis.com/Disk"
  backup_plan                = google_backup_dr_backup_plan.disk_default.name
}

Backup and DR 磁盘备份的应用一致性

应用一致性快照 可捕获备份时应用数据的状态,所有应用 事务已完成且所有待处理的写入都刷新到磁盘。

按照以下说明为磁盘配置应用一致性备份。此过程只能通过 Google Cloud CLI 执行。

准备工作

为应用一致性磁盘备份创建备份方案

按照以下说明为磁盘创建应用一致性备份。此过程只能通过 gcloud CLI 执行。

gcloud

  1. 创建备份方案。

    gcloud backup-dr backup-plans create BACKUP_PLAN_NAME \
    --disk-properties=guest-flush=true \
    --resource-type=compute.googleapis.com/Disk \
    --location=REGION \
    --project=PROJECT_ID \
    --backup-vault=BACKUPVAULT_NAME \
    --backup-rule=rule-id=RULE_NAME,recurrence=RECURRENCE,hourly-frequency=HOURS,time-zone=TIME_ZONE,backup-window-start=START_TIME,backup-window-end=END_TIME,retention-days=BACKUP_RETENTION --max-custom-on-demand-retention-days=MAX_ONDEMAND_RETENTION
    

    替换以下内容:

    • BACKUP_PLAN_NAME:备份方案的名称。
    • REGION:您要在其中 创建备份方案的 Google Cloud 区域。
    • PROJECT_ID:备份保险柜所在项目的名称。
    • BACKUPVAULT_NAME:您要用于备份存储的备份保险柜的名称。
    • RULE_NAME:备份规则的名称。
    • RECURRENCE:要创建的备份的频率。可以是每小时、每天、每周、每月或每年。
    • HOURS:每小时备份的频率。 仅当您将重复频率设置为每小时时,才指定此值。 每小时的最小值始终设置为 6 小时。
    • TIME_ZONE:备份方案的时区,例如 UTC。使用 IANA 时区 格式来包含备份方案的时区。
    • START_TIME:开始时间是 24 小时制的小时。开始时间必须早于结束时间,并且包含在备份窗口中。
    • END_TIME:结束时间是 24 小时制的小时。结束时间必须晚于开始时间,并且不包含在备份窗口中。
    • BACKUP_RETENTION:备份的保留期限。请注意,备份保留期限必须等于或大于备份保险柜强制执行的最短保留期限。
    • MAX_ONDEMAND_RETENTION:使用此备份方案创建的按需备份允许的自定义保留期限上限(以天为单位)。

更新现有备份方案以进行应用一致性磁盘备份

按照以下说明更新备份方案以生成应用一致性磁盘备份。

gcloud

  1. 更新备份方案。

    gcloud backup-dr backup-plans update BACKUP_PLAN_NAME \
    --disk-properties=guest-flush=true \
    --project=PROJECT_ID\
    --location=REGION \
    --description=DESCRIPTION \
    --backup-rule=BACKUP_RULE \
    --add-backup-rule=ADD_BACKUP_RULE \
    --remove-backup-rule=REMOVE_BACKUP_RULE
    --max-custom-on-demand-retention-days=MAX_ONDEMAND_RETENTION
    

    替换以下内容:

    • BACKUP_PLAN_NAME:备份方案的名称。
    • PROJECT_ID:备份保险柜所在项目的名称。
    • REGION:您要在其中创建备份方案的位置。
    • DESCRIPTION:备份方案的更新说明。
    • BACKUP_RULE:现有备份规则的完整定义,其中包含更新后的值。
    • ADD_BACKUP_RULE:要添加到备份方案的备份规则的参数。您可以重复此标志以添加更多备份规则。
    • REMOVE_BACKUP_RULE:要从备份方案中移除的现有备份规则。
    • MAX_ONDEMAND_RETENTION:使用此备份方案创建的按需备份允许的自定义保留期限上限(以天为单位)。

更改与磁盘关联的备份方案

您可以将与磁盘关联的备份方案更改为另一个备份方案。另一个备份方案必须:

  • 使用相同的备份保险柜
  • 与磁盘 Compute Engine 实例位于同一区域

按照以下说明更改与 磁盘关联的备份方案。

控制台

  1. 在 Google Cloud 控制台中,前往 受保管的备份 页面。

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

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

  2. 选择数据资源以获取不同的方案。您可以从备份的备份详细信息 页面中选择,也可以从 Compute Engine 实例最右侧的菜单中选择 更改备份方案

  3. 选择备份方案 窗口仅列出对此实例有效的备份方案。选择一个备份方案,然后点击应用

gcloud

  • 更改分配的备份方案。

      gcloud backup-dr backup-plan-associations update BACKUP_PLAN_ASSOCIATION_NAME \
      --resource-type=compute.googleapis.com/Disk \
      --workload-project=DISK_PROJECT_ID \
      --location=DISK_REGION \
      --backup-plan=BACKUP-PLAN \
      --project=PROJECT_ID
    

    替换以下内容:

    • BACKUP_PLAN_ASSOCIATION_NAME: 备份方案关联资源的名称。
    • DISK_PROJECT_ID:磁盘的项目 ID。
    • DISK_REGION:磁盘的位置。
    • BACKUP_PLAN:您要切换到的备份方案的名称。
    • PROJECT_ID:所选备份 方案的项目 ID。

列出预定备份和按需备份

按照以下说明列出已备份或计划备份的磁盘。

控制台

  1. 在 Google Cloud 控制台中,前往 受保管的备份 页面。

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

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

  2. 点击磁盘以查看该磁盘的所有可用备份(包括预定备份和按需备份)。

gcloud

  1. 列出预定备份和按需备份。

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

    替换以下内容:

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

创建按需备份

您可以触发所选备份规则立即运行,从而为具有备份方案的磁盘启动按需备份。 按需备份是增量备份,仅捕获自上次备份以来更改的数据。

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

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

控制台

  1. 前往受保管的备份
  2. 选择要备份的磁盘。
  3. 点击创建按需备份
  4. 选择何时删除此备份。您可以选择:

    • 基于自定义保留期限 :默认情况下,上限设置为备份保险柜的最短强制保留期限加上 30 天。如需设置不同的上限,请向备份方案添加自定义按需保留期限上限。
    • 基于现有备份规则 。从在以下时间后删除备份 下拉列表中选择一条规则。
  5. 点击创建 以开始按需备份创建过程。

  6. 如需查看按需备份作业的状态,请点击通知

gcloud

  • 创建使用备份规则的按需备份。

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

    替换以下内容:

    • BACKUP_PLAN_ASSOCIATION_NAME:备份方案关联的名称。运行命令 gcloud backup-dr backup-plan-associations list --location=LOCATION --project=PROJECT_ID 以获取与 Compute Engine 磁盘关联的备份方案的列表。
    • PROJECT_ID:项目的名称。
    • REGION:预定备份的位置。
    • RULE_ID:您要关联以运行按需备份的备份规则名称。
    • LABELS:备份的可选标签,以逗号分隔的键值对形式表示,例如 webserver=backend,media=images
  • 创建使用自定义保留期限的按需备份。

      gcloud backup-dr backup-plan-associations trigger-backup BACKUP_PLAN_ASSOCIATION_NAME \
      --project=PROJECT_ID \
      --location=REGION \
      --custom-retention-days=CUSTOM_RETENTION
      --labels=LABELS
    

    替换以下内容:

    • BACKUP_PLAN_ASSOCIATION_NAME:备份方案关联的名称。运行命令 gcloud backup-dr backup-plan-associations list --location=LOCATION --project=PROJECT_ID 以获取与 Compute Engine 磁盘关联的备份方案的列表。
    • PROJECT_ID:项目的名称。
    • REGION:预定备份的位置。
    • CUSTOM_RETENTION:此按需备份的自定义保留期限(以天为单位)。此值必须等于或大于备份保险柜保留时间,并且小于或等于在备份方案中配置的 max-custom-on-demand-retention-days 值(如果未配置 max-custom-on-demand-retention-days,则为保险柜保留时间 + 30 天)。
    • LABELS:备份的可选标签,以逗号分隔的键值对形式表示,例如 webserver=backend,media=images

取消保护磁盘

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

按照以下说明取消保护磁盘:

控制台

  1. 在 Google Cloud 控制台中,前往 受保管的备份 页面。

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

  2. 点击要从中移除备份方案的磁盘的名称。

  3. 选择移除备份方案

gcloud

  1. 取消保护磁盘。

      gcloud backup-dr backup-plan-associations delete BACKUP_PLAN_ASSOCIATION_NAME\
      --project=PROJECT_ID \
      --location=REGION
    

    替换以下内容:

    • BACKUP_PLAN_ASSOCIATION_NAME:要删除的备份方案关联的名称。
    • PROJECT_ID:项目的名称。
    • REGION:预定备份的位置。