本页介绍了如何将磁盘备份到备份保险柜。将备份发送到备份保险柜可实现不可变性和强制保留。 借助备份保险柜,您可以将备份存储在单区域或多区域中。
在 Google Cloud 控制台中,您可以通过应用备份方案将磁盘备份到备份保险柜。您可以通过以下两种方式进行备份:
这两种方法都允许您将备份安全地存储在备份保险柜中,从而在发生数据丢失或其他意外事件时提供可靠的磁盘恢复方式。
准备工作
- 在磁盘所在的位置启用 Backup and DR API。
- 启用该 API
- 创建备份保险柜
- 创建备份方案
- 为备份用户分配 IAM 角色和权限
- 在 Compute Engine 项目中授予备份保险柜访问权限
- 在存储桶上设置可观测性分析,以监控 Backup and DR 备份作业。
限制
Backup and DR 服务不支持以下内容:
- 将磁盘备份到使用客户提供的加密密钥 (CSEK) 的磁盘的备份保险柜。支持客户管理的加密密钥 (CMEK)。如需详细了解所需权限,请参阅授予备份保险柜访问权限。
- 不支持备份访问模式为 READ_WRITE_MANY 的磁盘。
- 每小时备份多次。
备份用户的 IAM 角色和权限
如需获得配置定期备份或运行按需备份所需的权限,请让管理员向您授予备份保险库项目的以下 IAM 角色:
- Backup and DR Backup User (
roles/backupdr.backupUser) - Viewer (
roles/viewer)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含配置定期备份或运行按需备份所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需配置预定备份或运行按需备份,需要具备以下权限:
-
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 磁盘操作员 (roles/backupdr.diskOperator) IAM 角色。
如需备份创建备份保险柜的项目中的磁盘,无需授予任何角色。
如果磁盘受客户管理的加密密钥 (CMEK) 保护,您必须向用于加密磁盘的 KMS 密钥上的备份库服务代理 (service-BACKUP_VAULT_PROJECT_NUMBER@gcp-sa-backupdr.) 授予 Cloud KMS CryptoKey Encrypter/Decrypter 角色 (roles/cloudkms.cryptoKeyEncrypterDecrypter)。Backup and DR 需要此权限才能在备份和恢复操作期间访问密钥。
如需了解如何在您打算备份的项目中向备份保险库服务代理授予角色,请参阅向服务代理授予角色。
配置预定备份
按照以下说明配置磁盘的定期备份。
控制台
在 Google Cloud 控制台中,前往保险库备份页面。
点击安排备份。
对于资源类型,请选择磁盘。
在项目列表中,点击浏览,然后选择磁盘所在的项目。
从区域列表中,选择磁盘所在的区域。
在资源列表中,点击浏览。
选择要备份的磁盘,然后点击完成。
点击继续。
在备份方案列表中,点击选择。
选择要用于保护磁盘的备份方案。
点击完成。
查看备份详细信息,然后点击安排。 此时,您已将备份方案与磁盘相关联。备份方案会根据备份政策中设置的频率安排所选磁盘进行备份,但尚未开始备份。如果当前时间在备份方案中设置的窗口期内,则第一个备份作业将在几分钟内开始。如果当前时间不在方案窗口内,则创建按需备份。
gcloud
获取实例 ID。
gcloud compute instances describe DISK_NAME --zone=DISK_ZONE --format="value(id)"替换以下内容:
DISK_NAME:磁盘的名称。DISK_ZONE:磁盘所在的位置。
配置预定备份。
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 资源配置定期备份。
Backup and DR 磁盘备份的应用一致性
应用一致性快照可捕获备份时应用数据的状态,包括所有应用事务已完成且所有待处理的写入内容都会刷新到磁盘。
按照以下说明为磁盘配置应用一致性备份。此过程只能通过 gcloud CLI 执行。
准备工作
在 Linux 环境中:
在 Linux 环境中,应用一致性磁盘备份的备份方案需要快照前脚本和快照后脚本。 为 Linux 环境创建必要的快照前和快照后脚本。
在 Windows 环境中:
请先阅读应用一致性快照,然后再继续。
为应用一致性磁盘备份创建备份方案
按照以下说明为磁盘创建应用一致性备份。此过程只能通过 gcloud CLI 执行。
gcloud
创建备份方案。
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
更新备份方案。
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 实例位于同一区域
请按照以下说明更改与磁盘关联的备份方案。
控制台
在 Google Cloud 控制台中,前往保险库备份页面。
已保险柜化的备份页面仅列出了已应用备份方案且备份已存储在项目中的备份保险柜内的实例。
选择数据资源以获取其他方案。在备份的备份详情页面中,或在 Compute Engine 实例最右侧的 菜单中,选择更改备份方案。
选择备份方案窗口仅列出了适用于相应实例的备份方案。选择备份方案,然后点击应用。
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。
列出已安排的备份和按需备份
按照以下说明列出已备份或计划备份的磁盘。
控制台
在 Google Cloud 控制台中,前往保险库备份页面。
已保险柜化的备份页面仅列出了已应用备份方案且备份已存储在项目中的备份保险柜内的实例和磁盘。
点击某个磁盘,查看该磁盘的所有可用备份(包括计划备份和按需备份)。
gcloud
列出计划备份和按需备份。
gcloud backup-dr backup-plan-associations list \ --location=LOCATION \ --project=PROJECT_ID替换以下内容:
LOCATION:预定备份的位置。PROJECT_ID:项目的名称。
创建按需备份
您可以触发所选的备份规则立即运行,从而为具有备份方案的磁盘启动按需备份。 按需备份采用增量方式,仅捕获自上次备份以来发生了更改的数据。
创建按需备份时,您可以从与磁盘关联的备份方案中选择规则。此规则决定了何时删除按需备份。您可以在作业页面中查看备份作业状态。如需了解详情,请参阅在 Google Cloud 控制台中监控备份和恢复作业。
按照以下说明创建按需备份。
控制台
- 前往受保管的备份。
- 选择要备份的磁盘。
- 点击创建按需备份。
选择何时删除此备份。您可以选择:
- 基于自定义保留期限 默认情况下,上限设置为备份保险柜的最短强制保留期限加上 30 天。如需设置其他上限,请在备份方案中添加自定义按需保留期限上限。
- 基于现有备份规则。从在以下时间段后删除备份下拉菜单中选择一条规则。
点击创建,开始按需备份创建流程。
如需查看按需备份作业的状态,请点击通知。
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。
取消保护磁盘
您可以移除应用于磁盘的备份方案,从而取消对磁盘的保护。从磁盘中移除备份方案不会删除该备份方案或使用实例时创建的任何备份。您仍然可以访问和管理这些现有备份。
按照以下说明取消保护磁盘:
控制台
在 Google Cloud 控制台中,前往保险库备份页面。
点击要从中移除备份方案的磁盘的名称。
选择移除备份方案。
gcloud
取消保护磁盘。
gcloud backup-dr backup-plan-associations delete BACKUP_PLAN_ASSOCIATION_NAME\ --project=PROJECT_ID \ --location=REGION替换以下内容:
BACKUP_PLAN_ASSOCIATION_NAME:要删除的备份方案关联的名称。PROJECT_ID:项目的名称。REGION:预定备份的位置。