基于备份创建虚拟机

本页面介绍了如何在 Google Distributed Cloud (GDC) 气隙环境中从现有备份创建虚拟机 (VM)。

创建备份后,您可以为该备份创建恢复,以便开始恢复整个虚拟机。恢复的虚拟机及其关联的磁盘具有不同的名称,具体取决于您在 GDC 控制台中指定的新虚拟机实例名称,或在应用编程接口 (API) 中指定的 restoredResourceName

恢复备份时,系统会恢复整个虚拟机。创建资源后,应用功能的实际恢复取决于虚拟机操作系统或映像。

准备工作

如需根据备份创建虚拟机,您必须满足以下条件:

  • 现有备份。如需了解详情,请参阅创建备份计划
  • 必要的身份和访问权限角色:

    • Project VirtualMachine Admin:管理项目命名空间中的虚拟机。请让您的 Project IAM Admin 向您授予 Project VirtualMachine Admin (project-vm-admin) 角色。
    • 备份创建器:创建手动备份和恢复。请让您的 Project IAM Admin 为您授予 Backup Creator (backup-creator) 角色。
    • 项目查看者:拥有对项目命名空间内所有资源的只读权限。请让您的项目 IAM 管理员为您授予 Project Viewer (project-viewer) 角色。

为虚拟机创建恢复

使用 GDC 控制台或 API 恢复虚拟机备份。

控制台

  1. 登录 GDC 控制台。
  2. 在导航菜单中,点击 Backup for Virtual Machines
  3. 选择一个项目。
  4. 点击备份标签页。
  5. 在备份列表中,找到要恢复的备份,然后点击恢复
  6. 新的虚拟机实例名称字段中,输入新目标虚拟实例的名称,以便在其中恢复备份。
  7. 可选:在新虚拟机实例说明字段中,输入说明。
  8. 输入恢复的名称
  9. 点击恢复

API

定义 VirtualMachineRestoreRequest 自定义资源以启动恢复流程。virtualMachineBackup 字段中引用的备份是指由 VirtualMachineBackupRequest 生成的 VirtualMachineBackup 自定义资源。以下是 VirtualMachineRestoreRequest 的示例:

定义 VirtualMachineRestoreRequest 自定义资源以启动恢复流程:

apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineRestoreRequest
metadata:
  name: RESTORE_REQUEST_NAME
  namespace: PROJECT_NAME
spec:
  virtualMachineBackup: VM_BACKUP_NAME
  restoreName: RESTORE_NAME
  restoredResourceName: RESTORED_RESOURCE_NAME
  restoredResourceDescription: RESTORED_RESOURCE_DESCRIPTION

替换以下内容:

  • VM_BACKUP_NAME:要从中恢复的 VirtualMachineBackup 的名称。
  • PROJECT_NAME:GDC 项目的名称。
  • RESTORE_REQUEST_NAME:要启动的恢复请求的名称。
  • RESTORE_NAME:为正在启动的恢复指定的名称。
  • RESTORED_RESOURCE_NAME:要为恢复的虚拟机指定的名称。
  • RESTORED_RESOURCE_DESCRIPTION:有关执行恢复的原因的备注。

恢复操作的结果是创建一个新虚拟机,该虚拟机具有与备份相同的配置和磁盘状态。

查看虚拟机的恢复

使用 GDC 控制台查看恢复列表:

  1. 登录 GDC 控制台。
  2. 在导航菜单中,点击 Backup for Virtual Machines
  3. 选择一个项目。
  4. 点击恢复标签页。
  5. 点击列表中的某个恢复,即可查看其详细信息。

删除恢复

使用 GDC 控制台或 kubectl 删除恢复。

控制台

  1. 登录 GDC 控制台。
  2. 在导航菜单中,点击 Backup for Virtual Machines
  3. 选择一个项目。
  4. 点击恢复标签页。
  5. 在恢复列表中,找到要删除的恢复,然后点击删除恢复
  6. 恢复名称字段中,输入要删除的恢复的名称。
  7. 点击删除恢复

kubectl

  1. 列出现有恢复:

    kubectl get virtualmachinerestores.virtualmachine.gdc.goog -n PROJECT_NAME
    

    PROJECT_NAME 替换为该项目的名称。

  2. 在列表中,找到要删除的恢复。

  3. 删除恢复作业:

    kubectl delete virtualmachinerestores.virtualmachine.gdc.goog RESTORE_NAME -n PROJECT_NAME
    

    替换以下内容:

    • RESTORE_NAME:恢复的名称。
    • PROJECT_NAME:项目的名称。