Compute Engine 实例的 Google 管理型备份流程涉及将数据发送到备份保险柜。这些备份保险柜提供不可变性和强制保留期限。您可以选择将备份存储在单个区域或多个区域中。
Google 管理型模型支持两种主要执行方法:定期备份和按需备份。本文档介绍了如何配置和管理这些备份。
概览
将备份发送到备份保险柜可确保备份不可变,并强制执行保留期限。借助备份保险柜,您可以将备份存储在单区域或多区域中。备份 Compute Engine 实例的方法主要有两种:
使用 Google Cloud 控制台备份 Compute Engine 实例:在Google Cloud 控制台中,您可以通过应用备份方案将 Compute Engine 实例备份到备份保险柜。您可以使用以下任一方法备份数据。这两种方法都允许您将备份安全地存储在备份保险柜中,从而在发生数据丢失或其他意外事件时,提供一种可靠的 Compute Engine 实例恢复方式。
定期备份:以特定间隔(例如每天、每周、每月或每年)自动备份 Compute Engine 实例。
按需备份:根据需要随时创建按需备份。 在对实例进行重大更改之前创建备份或进行临时数据保护时,按需备份非常有用。
使用管理控制台备份 Compute Engine 实例:如果您有以下任一备份要求,可以使用管理控制台备份 Compute Engine 实例:
- 跨区域备份
- 挂接到虚拟机的特定磁盘的备份
- 基于标记自动保护 Compute Engine 虚拟机
- 如果 Google Cloud 基于控制台的备份方案和备份保险库与源虚拟机运行的区域不兼容。
设备管理控制台是 Backup and DR 的一部分,用于管理设备管理的备份。如果您必须使用设备管理控制台,请参阅通过设备管理控制台发现并保护 Compute Engine 实例。
准备工作
在 Compute Engine 实例所在的位置启用 Backup and DR Service API。
在存储桶上设置 Observability Analytics 以监控 Backup and DR 备份作业。
备份用户账号的 IAM 角色和权限
如需配置预定备份或执行按需备份,管理员必须在备份保险库项目中授予以下 IAM 角色:
- Backup and DR Backup User (
roles/backupdr.backupUser) - Viewer (
roles/viewer)
Google 管理的备份操作所需的具体权限包括:
backupdr.backupPlans.listbackupdr.backupPlanAssociations.createForComputeInstancebackupdr.backupPlanAssociations.listbackupdr.backupPlanAssociations.getbackupdr.backupPlanAssociations.triggerBackupForComputeInstancebackupdr.backupPlanAssociations.deleteForComputeInstancebackupdr.backupPlans.useForComputeInstancebackupdr.locations.listbackupdr.operations.getcloudasset.assets.searchAllResources
除了恢复权限之外,用户还必须拥有查看和检索备份元数据的权限:
backupdr.backupVaults.getbackupdr.backupVaults.listbackupdr.bvbackups.listbackupdr.bvbackups.getbackupdr.bvdataSources.listbackupdr.bvdataSources.get
下表列出了每次 API 调用所需的权限:
| 资源 | 要对资源执行的操作 | 每次 API 调用所需的权限 | 需要分配到的项目 |
|---|---|---|---|
| 备份保险柜 | 创建 BackupVault | backupdr.backupVaults.create | 管理员项目 |
| 删除 BackupVault | backupdr.backupVaults.delete | 管理员项目 | |
| 更新 BackupVault | backupdr.backupVaults.update | 管理员项目 | |
| 列出 BackupVault | backupdr.backupVaults.list | 管理员项目 | |
| 获取 BackupVault | backupdr.backupVaults.get | 管理员项目 | |
| 备份方案 | 创建 BackupPlan | backupdr.backupPlans.create | 管理员项目 |
| Delete BackupPlan | backupdr.backupPlans.delete | 管理员项目 | |
| 获取 BackupPlan | backupdr.backupPlans.get | 管理员项目 | |
| 列出备份方案 | backupdr.backupPlans.list | 管理员项目 | |
| 备份方案关联 | 创建备份方案关联 | 工作负载项目 | |
| backupdr.backupPlanAssociations.createForComputeInstance | 工作负载项目 | ||
| backupdr.backupPlans.useForComputeInstance | 管理员项目 | ||
| 删除备份方案关联 | backupdr.backupPlanAssociations.deleteForComputeInstance | 工作负载项目 | |
| 在备份方案关联时触发按需备份 | backupdr.backupPlanAssociations.triggerBackupForComputeInstance | 工作负载项目 | |
| 获取备份方案关联 | backupdr.backupPlanAssociations.getForComputeInstance | 工作负载项目 | |
| 列出备份方案关联 | backupdr.backupPlanAssociations.list | 工作负载项目 | |
| 获取备份方案关联 | backupdr.backupPlanAssociations.fetchForComputeInstance | 工作负载项目 | |
| 数据源 | 获取 DataSource | backupdr.bvdataSources.get | 管理员项目 |
| 列出数据源 | backupdr.backupPlanAssociations.list | 管理员项目 | |
| 备份 | 获取备份 | backupdr.bvbackups.get | 管理员项目 |
| 列出备份 | backupdr.bvbackups.list | 管理员项目 | |
| 删除备份 | backupdr.bvbackups.delete | 管理员项目 | |
| 恢复备份 | backupdr.bvbackups.restore | 管理员项目 | |
| 运维 | 列出操作 | backupdr.operations.list | 相应项目 |
| GET 操作 | backupdr.operations.get | 相应项目 |
在 Compute Engine 项目中授予备份保险柜访问权限
如需备份某个项目中的 Compute Engine 实例(该项目与创建备份保险柜的项目不同),您必须在 Compute Engine 项目中向备份保险柜服务代理授予 Backup and DR Compute Engine Operator (roles/backupdr.computeEngineOperator) IAM 角色。如果将存储备份的备份保险柜项目与 Compute Engine 项目不同,请在 Compute Engine 项目中为备份保险柜服务代理分配该角色。
如需备份与创建备份保险柜的项目相同的项目中的 Compute Engine 实例,您无需授予任何角色。
如需了解如何在您打算备份的项目中向备份保险库服务代理授予角色,请参阅向服务代理授予角色。
约束和限制
Backup and DR 不支持为使用以下配置的 Compute Engine 实例进行 Google 管理的备份:
- 已挂接极端永久性磁盘的实例
- 使用任何 hyperdisk-* 磁盘类型的实例
- 使用 C3D、H3、A3 或 Z3 机器类型的实例
- 使用客户提供的加密密钥 (CSEK) 的实例。支持客户管理的加密密钥 (CMEK);请参阅所需的权限的 Identity and Access Management 配置。
- 缺少已挂接磁盘的实例
- 大小超过 200 太字节 (TB) 的实例
配置预定备份
按照以下说明为 Compute Engine 实例配置定期备份。
控制台
在 Google Cloud 控制台中,前往保险库备份页面。
点击安排备份。
使用资源类型下拉菜单选择资源类型。
在项目列表中,点击浏览,然后选择 Compute Engine 实例所在的项目。
从区域列表中,选择您的实例所在的区域。
在资源列表中,点击浏览。
选择要备份的 Compute Engine 实例,然后点击完成。
点击继续。
在备份方案列表中,点击选择。
选择要用于保护 Compute Engine 实例的备份方案。
点击完成。
查看备份详细信息,然后点击安排。
gcloud
获取实例 ID。
gcloud compute instances describe VM_NAME --zone=VM_ZONE --format="value(id)"替换以下内容:
VM_NAME:虚拟机实例的名称。VM_ZONE:虚拟机所在的位置。
配置预定备份。
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 资源配置定期备份。
Backup and DR Compute Engine 备份的应用一致性
应用一致性快照可捕获备份时应用数据的状态,包括所有应用事务已完成且所有待处理的写入内容都会刷新到磁盘。
按照以下说明为 Compute Engine 实例配置应用一致性备份。
准备工作
请参阅应用一致性快照。
在 Linux 环境中,应用一致性实例备份的备份方案需要快照前和快照后脚本。为 Linux 环境创建必要的快照前和快照后脚本。
在 Compute Engine 实例上为应用一致性备份创建备份方案
按照以下说明为 Compute Engine 实例创建应用一致性备份。
控制台
如需创建可使用访客刷新或 VSS 为 Compute Engine 实例实现应用一致性的备份方案,请执行以下操作:
在 Google Cloud 控制台中,前往 Backup and DR Service 页面。
在导航菜单中,点击备份方案。
点击创建备份方案。
系统会显示创建备份方案页面。
使用资源类型下拉菜单,选择 Compute Engine 虚拟机。
在备份方案名称字段中,输入一个唯一的名称。
可选:在说明字段中输入说明。
从区域下拉列表中,选择要创建备份计划的区域。此区域必须与您打算备份的 Compute Engine 实例的区域兼容。
在选择备份存储位置下,选择备份保险柜位置类型。
使用区域下拉菜单,选择备份保险柜位置。
使用备份保险柜下拉菜单,选择现有备份保险柜。
可选:如需添加备份规则,请点击添加规则,然后执行以下操作:
使用名称字段,输入备份规则的名称。
如需选择创建备份的时间,请使用重复频率下拉列表,然后选择创建备份的频率,可以是每小时、每天、每周、每月或每年。
使用时区下拉菜单,选择您希望在其中执行备份作业的时区。
使用开始时间下拉菜单,选择您希望备份作业开始的时间。
使用结束时间下拉菜单,选择您希望备份作业完成的时间。
在在以下天数后删除备份字段中,输入您希望在删除备份之前保留备份的天数。
点击保存。
如需包含待处理的写入操作并执行应用一致性备份,请勾选启用应用一致性快照复选框。
点击创建。
创建完成后,此备份方案即可应用于您的 Compute Engine 实例。使用此方案创建的备份会尝试执行客机刷新/VSS 操作,以实现应用一致性。您可以在“备份方案”列表和“备份清单”页面中查看一致性类型。
gcloud
创建备份方案。
gcloud backup-dr backup-plans create BACKUP_PLAN_NAME \ --compute-instance-properties=guest-flush=true \ --resource-type=compute.googleapis.com/Instance \ --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:使用相应备份方案创建的按需备份的自定义保留期限上限(以天为单位)。
更新现有备份方案,以实现 Compute Engine 实例的应用一致性备份
按照以下说明更新备份方案,以生成 Compute Engine 实例的应用一致性备份。
控制台
如需更新备份方案,以使用 Guest Flush 或 VSS 为 Compute Engine 实例启用应用一致性,请按照以下说明操作:
在 Google Cloud 控制台中,前往 Backup and DR 备份方案页面。
选择要修改的备份方案,或选中其复选框,然后点击 图标。
点击修改。
勾选启用应用一致性复选框。
点击保存更改。
gcloud
更新备份方案。
gcloud backup-dr backup-plans update BACKUP_PLAN_NAME \ --compute-instance-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 实例的备份方案
您可以将应用于 Compute Engine 实例的备份方案更改为其他备份方案。其他备份方案必须满足以下条件:
- 使用相同的备份保险柜
- 与 Compute Engine 实例位于同一区域
按照以下说明更改与 Compute Engine 实例关联的备份方案。
控制台
在 Google Cloud 控制台中,前往保险库备份页面。
已保险柜化的备份页面仅列出了已应用备份方案且备份已存储在项目中的备份保险柜内的实例。
选择要改用其他方案的备份。在备份的备份详情页面中,或在 菜单中,选择更改备份方案。选择备份方案窗口仅列出适用于相应实例的有效备份方案。
选择备份方案,然后点击应用。
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 实例。
控制台
在 Google Cloud 控制台中,前往保险库备份页面。
已保险柜化的备份页面仅列出了已应用备份方案且备份已存储在项目中的备份保险柜内的实例。
gcloud
列出已安排的备份。
gcloud backup-dr backup-plan-associations list \ --location=LOCATION \ --project=PROJECT_ID替换以下内容:
PROJECT_ID:项目的名称。LOCATION:预定备份的位置。
创建按需备份
您可以为具有备份方案的 Compute Engine 实例启动按需备份,方法是触发所选的备份规则立即运行。按需备份通常仅捕获自上次备份以来发生变化的数据(增量)。
创建按需备份时,您可以从与 Compute Engine 实例关联的备份方案中选择一条规则。此规则决定何时删除按需备份。您可以在作业页面中查看备份作业状态。如需了解详情,请参阅在 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。
取消保护 Compute Engine 实例
您可以移除应用于 Compute Engine 实例的备份方案,从而取消对该实例的保护。从 Compute Engine 实例中移除备份方案不会删除该备份方案或实例使用期间创建的任何备份。您仍然可以访问和管理这些现有备份。
按照以下说明取消对 Compute Engine 实例的保护。
控制台
在 Google Cloud 控制台中,前往保险库备份页面。
点击要移除备份方案的实例的名称。
选择移除备份方案。
gcloud
取消保护 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:预定备份的位置。