将 Compute Engine 实例备份和恢复到备份保险柜

了解如何将 Compute Engine 实例备份到备份保险柜并从备份保险柜恢复实例。

在本快速入门中,您将执行以下任务:

  • 创建备份保险柜。
  • 创建备份方案。
  • 将 Compute Engine 实例备份到备份保险柜。
  • 从备份恢复 Compute Engine 实例。

准备工作

  1. 在 Google Cloud 项目中启用 Backup and DR Service API。

    启用该 API

  2. 如果您没有虚拟机,请在支持备份保险柜的位置创建并启动 Compute Engine 实例。在本快速入门中,请在 us-central1 区域中创建 Compute Engine 实例。

  3. 在项目中拥有以下 IAM 角色:

    • BackupDR Admin (roles/backupdr.admin)
    • Backup and DR User V2 (backupdr.backupPlanAssociations.createForComputeInstance)
    • Cloud Asset Viewer (cloudasset.assets.searchAllResources)
    • Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1)
    • Compute Viewer (roles/compute.viewer)
    • Logs Viewer (roles/logging.logEntries.list)
    • OS Config Admin (osconfig.osPolicyAssignments.create.)
    • Project IAM Admin (roles/resourcemanager.projectIamAdmin)
    • Service Usage Admin (serviceusage.services.enable)
    • Service Account User (iam.serviceAccountUser)
  4. 必须在恢复项目中为备份保险柜服务代理授予必需的角色,才能使用备份创建新实例。

    • Backup and DR Compute Engine Operator (roles/backupdr.computeEngineOperator)
    • 如果您使用的是共享 VPC,则为 Compute Network User (roles/compute.networkUser)

创建备份保险柜

备份保险柜是一个用于存储备份的容器,类似于自行管理的存储空间。备份保险柜通过将备份存储在安全、隔离且专用的存储空间中来保护备份。如需详细了解备份保险柜,请参阅用于存储不可更改和不可删除的备份的备份保险柜

虚拟机。如需了解详情,请参阅使用设备管理控制台保护和恢复 Compute Engine 实例

按照以下说明创建备份保险柜。

控制台

  1. 在 Google Cloud 控制台的Backup and DR部分中,前往备份保险柜页面。

    前往备份保险库

  2. 点击创建备份保险柜

  3. 创建备份保险柜页面上,输入备份保险柜信息。

  4. 为备份保险库命名字段中,输入备份保险库的名称和(可选)说明。

  5. 选择数据存储位置中,配置以下设置:

    • 地区:备份保险库的地区,例如 us-central1
    • 多区域:适用于备份保险柜} - 例如 Americas
  6. 防止备份被删除字段中,输入最短强制保留期限,以定义备份在多长时间内受到保护,不会被删除。最短期限为 1 天,最长期限为 99 年。

    如果您想锁定强制保留期限的最小值,请选择锁定强制保留期限,然后点击 图标,并从日历中选择日期。

    • 防止在备份规则中指定的时间段内删除:您可以将备份保险库设置为继承备份方案中设置的在以下时间后删除备份值。备份无法手动删除,系统会根据相关联的备份方案中的值来删除备份。

    • 锁定强制保留期限:如果您想锁定强制保留期限的最小值,请选中此复选框,然后点击 图标,并从日历中选择日期。

  7. 如果您想使用自己的加密密钥,请在加密下选择客户管理的加密密钥 (CMEK) 选项,然后从下拉列表中选择您的密钥。系统只会显示与备份保险库位于同一位置的密钥。您只能在创建备份保险库时配置 CMEK。如需详细了解如何使用 CMEK,请参阅加密

    如需了解所需权限,请参阅 CMEK 权限

  8. 定义对备份保险柜的访问权限部分,选择一个选项来定义备份保险柜的访问权限限制。如果您未选择任何选项,系统会创建具有限制为仅当前组织具有访问权限限制的备份保险柜。

  9. 点击创建

gcloud

  1. 创建备份保险柜。

    gcloud backup-dr backup-vaults create BACKUPVAULT_NAME \
        --project=PROJECT_ID \
        --location=LOCATION \
        --backup-min-enforced-retention=RETENTION_PERIOD_IN_DAYS \
        --backup-retention-inheritance=RETENTION_PERIOD_INHERITANCE
    

    替换以下内容:

    • BACKUPVAULT_NAME:备份保险柜的名称。
    • PROJECT_ID:您要在其中创建备份保险柜的项目的名称。
    • LOCATION:您要创建备份保险柜的位置。例如 us-central1
    • RETENTION_PERIOD_IN_DAYS:备份保险柜中每个备份的不可删除时间段。最短期限为 1 天,最长期限为 99 年。例如 1
    • RETENTION_PERIOD_INHERITANCE:强制性保留期限结束时间的继承模式。例如,match-backup-expire-time 用于从备份规则继承保留期限。

创建备份方案

借助备份方案,您可以定义高级备份策略来备份 Compute Engine 实例。在备份方案中,您可以定义何时以及如何备份 Compute Engine 实例。您必须在工作负载运行的同一区域中创建备份方案,并且备份保险柜必须位于与工作负载位置兼容的位置。此外,备份方案只能备份位于同一区域中的 Compute Engine 实例。如需了解详情,请参阅 Google Cloud 控制台中的备份方案

按照以下说明创建备份方案。在此过程中,您将创建一个备份方案,用于每小时备份 Compute Engine 实例,并使用您在 us-central1 区域中创建的备份保险柜。

控制台

  1. 在 Google Cloud 控制台的 Backup and DR 部分中,前往备份方案页面。

    前往“备份方案”

  2. 点击创建备份方案

  3. 对于资源类型,选择 Compute Engine

  4. 备份方案名称字段中,输入备份方案的名称。备份方案创建后,您无法更改方案的名称。

  5. 备份方案说明字段中,输入备份方案的可选说明。

  6. 区域列表中,选择备份方案区域。备份方案是在此区域中创建的。您可以保护与备份方案位于同一区域的资源。

  7. 备份保险柜列表中,选择用于存储备份的备份保险柜。

  8. 添加备份规则部分中,系统已设置默认备份规则。

    1. 如果您想使用默认规则,而不使用任何其他备用规则,可以点击创建
    2. 如果您想为此快速入门添加其他备份规则,请点击添加规则

    添加备份规则窗格中,输入备份规则信息,然后点击保存

    • 为备份规则命名:为备份规则输入一个名称。
    • 选择创建备份的时间:指定备份的周期和频率。
    • 时间段:为备份作业选择时区开始时间结束时间
    • 选择将备份保留多久后删除:输入备份在删除前应保留的天数。请注意,此值必须等于或大于备份保险柜的最短强制保留期限
  9. 您可以选择设置自定义按需保留期限上限

    自定义按需备份可保留的最长时间,由自定义按需保留期限上限决定。在创建按需备份时,您可以设置保留期限,也可以使用现有的备份规则。如果未指定,系统会将保险柜的最短强制保留期限加上 30 天作为自定义保留期限的上限。

    最长保留期限中输入一个以天为单位的值。此值必须大于或等于保险柜的最短强制保留期限。

  10. 点击创建

gcloud

  1. 创建备份方案。

    gcloud backup-dr backup-plans create BACKUP_PLAN_NAME \
        --location=REGION \
        --resource-type=compute.googleapis.com/Instance \
        --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
    

    替换以下内容:

    • BACKUP_PLAN_NAME:备份方案的名称。
    • REGION:您要创建备份方案的区域。例如 us-central1
    • PROJECT_ID:备份保险柜所在项目的名称。
    • BACKUPVAULT_NAME:您要用于备份存储的备份保险柜的名称。
    • RULE_NAME:备份规则的名称。
    • RECURRENCE:创建备份的频率。例如 HOURLY
    • HOURS:每小时备份的频率。例如 6
    • TIME_ZONE:备份方案的时区。例如 UTC
    • START_TIME:备份窗口的开始时间,采用 24 小时制。例如 0
    • END_TIME:备份窗口的结束时间,采用 24 小时制。例如 4
    • BACKUP_RETENTION:备份的保留期限(以天为单位)。例如 30

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

在 Google Cloud 控制台中,您可以通过应用备份方案将 Compute Engine 实例备份到备份保险柜。您可以通过以下两种方式进行备份:定期备份按需备份

配置预定备份

按照以下说明配置定期备份。

控制台

  1. 在 Google Cloud 控制台的Backup and DR部分中,前往封存的备份页面。

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

  2. 点击安排备份

  3. 选择资源类型 Compute Engine。

  4. 保持项目不变。

  5. 区域列表中,选择实例区域 us-central1

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

  7. 选择要备份的 Compute Engine 实例,然后点击完成

  8. 点击继续

  9. 备份方案列表中,点击选择,然后选择您刚刚创建的备份方案。

  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:虚拟机实例所在的区域。
    • VM_PROJECT_ID:虚拟机实例所在项目的项目 ID。
    • VM_ZONE:虚拟机实例所在的可用区。
    • VM_ID:在上一步中检索到的虚拟机实例 ID。
    • PROJECT_ID:备份方案所在的项目 ID。
    • LOCATION:备份方案所在的区域。
    • BACKUP_PLAN:备份方案的名称。

当当前时间在备份时段内时,系统将触发根据此备份方案进行的首次备份。如果备份作业尚未运行,请立即运行按需备份。

按需备份

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

控制台

  1. 在 Google Cloud 控制台的Backup and DR部分中,前往封存的备份页面。

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

  2. 具有保险柜备份的资源列表中,点击包含已备份实例的行中的 图标。点击创建按需备份

  3. 选择何时删除此备份下,选择根据现有备份规则,然后点击创建

  4. 如需查看备份操作状态,您可以执行以下操作:

    • 查看 Google Cloud 控制台顶部的通知铃图标。
    • 前往作业页面。

    转到作业

gcloud

  1. 创建按需备份:

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

    替换以下内容:

    • BACKUP_PLAN_ASSOCIATION_NAME:备份方案关联的名称。
    • PROJECT_ID:项目 ID。
    • REGION:备份方案关联的区域。
    • RULE_ID:备份方案中用于确定保留期限的备份规则名称。

从备份恢复 Compute Engine 实例

您可以将 Compute Engine 实例恢复到同一项目或不同项目。本快速入门将引导您将虚拟机恢复到同一项目。

按照以下说明从备份保险柜中的备份恢复 Compute Engine 实例。

控制台

  1. 在 Google Cloud 控制台的 Backup and DR 部分,前往已归档的资源页面。

    前往“受保管的资源”

  2. 点击您刚刚备份的实例。

  3. 在详情页面中,从备份的操作菜单中选择您刚刚创建的备份,然后依次点击 图标和恢复

  1. 恢复备份页面中,查看恢复详细信息,然后点击浏览以选择备份。
  2. 点击继续
  3. 通过备份创建虚拟机实例页面中,将实例配置保留为默认设置,然后点击创建

  4. 在 Google Cloud 控制台中,前往作业页面,查看恢复操作的状态。

    转到作业

gcloud

  1. 查找数据源 ID:

    gcloud backup-dr data-sources list \
        --project=PROJECT_ID \
        --location=REGION \
        --backup-vault=BACKUPVAULT_NAME \
        "--filter=dataSourceGcpResource.computeInstanceDatasourceProperties.name:(VM_NAME)" \
        "--format=get(name)"
    

    替换以下内容:

    • PROJECT_ID:备份保险柜的项目 ID。
    • REGION:备份保险柜的区域。
    • BACKUPVAULT_NAME:备份保险柜的名称。
    • VM_NAME:虚拟机实例的名称。
  2. 列出数据源的备份,以找到 BACKUP_ID

    gcloud backup-dr backups list \
        --project=PROJECT_ID \
        --location=REGION \
        --backup-vault=BACKUPVAULT_NAME \
        --data-source=DATA_SOURCE
    

    DATA_SOURCE 替换为在上一步中检索到的数据源名称。

  3. 恢复虚拟机:

    gcloud backup-dr backups restore compute BACKUP_ID \
        --project=PROJECT_ID \
        --location=REGION \
        --backup-vault=BACKUPVAULT_NAME \
        --data-source=DATA_SOURCE \
        --name=RESTORED_VM_NAME \
        --target-project=TARGET_PROJECT_ID \
        --target-zone=TARGET_ZONE
    

    替换以下内容:

    • BACKUP_ID:要恢复的备份的 ID。
    • RESTORED_VM_NAME:恢复的虚拟机的名称。
    • TARGET_PROJECT_ID:您要将虚拟机恢复到的项目。
    • TARGET_ZONE:您要在其中恢复虚拟机的可用区。

清理

为避免因本页中使用的实例导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。

删除已恢复的虚拟机

控制台

  1. 在 Google Cloud 控制台的 Compute Engine 部分中,前往虚拟机实例页面。

    转到“虚拟机实例”页面

  2. 选择包含您在恢复过程中创建的虚拟机实例的行。

  3. 点击删除,然后点击删除进行确认。

gcloud

  1. 删除已恢复的虚拟机实例:

    gcloud compute instances delete RESTORED_VM_NAME --zone=TARGET_ZONE
    

从已备份的 Compute Engine 实例中移除备份方案

控制台

  1. 在 Google Cloud 控制台的“备份和灾难恢复”部分中,前往归档备份页面。

    前往“受保管的资源”

  2. 在包含已备份实例的行中,点击 图标。点击移除备份方案,然后确认移除。

gcloud

  1. 删除备份方案关联:

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

删除备份方案(可选)

控制台

  1. 在 Google Cloud 控制台的 Compute Engine 部分中,前往备份方案页面。

    前往“备份方案”

  2. 在包含备份方案的行中,点击 图标。点击删除,然后输入 delete 以确认删除。

gcloud

  1. 删除备份方案:

    gcloud backup-dr backup-plans delete BACKUP_PLAN_NAME \
        --project=PROJECT_ID \
        --location=REGION
    

删除备份保险柜(可选)

控制台

  1. 在 Google Cloud 控制台的“Backup and DR”部分中,前往备份保险柜页面。

    前往备份保险库

  2. 在包含备份保险柜的行中,点击 图标。点击删除,然后输入删除以确认删除。

gcloud

  1. 删除备份保险柜:

    gcloud backup-dr backup-vaults delete BACKUPVAULT_NAME \
        --project=PROJECT_ID \
        --location=REGION
    

删除为此快速入门创建的虚拟机(可选)

控制台

  1. 在 Google Cloud 控制台中,前往虚拟机实例页面。

    转到“虚拟机实例”页面

  2. 选择您在本快速入门中创建的虚拟机实例所在的行。

  3. 点击删除,然后点击删除进行确认。

gcloud

  1. 删除虚拟机实例:

    gcloud compute instances delete VM_NAME --zone=VM_ZONE