将即时快照复制到其他位置


在某些情况下,您可能希望将即时快照复制到与其来源磁盘不同的可用区或区域。可能的情况包括:

  • 在删除来源磁盘之前,保留即时快照上的数据,因为删除磁盘会删除其即时快照。
  • 将即时快照存储在其他位置,以保护该快照不受可用区或区域服务中断的影响。
  • 将含有事件或项目里程碑数据的即时快照移到长期存储。
  • 使用一个位置的即时快照在另一个位置创建新磁盘。

在这些情况下,您必须根据即时快照创建标准或归档快照,并使用该新创建的快照。

本页面介绍如何根据即时快照创建标准或归档快照。

准备工作

  • 如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以选择以下任一选项向 Compute Engine 进行身份验证:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证

所需的角色和权限

如需获取从即时快照创建标准快照所需的权限,请让管理员向您授予项目的以下 IAM 角色:

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

这些预定义角色包含从即时快照创建标准快照所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需从即时快照创建标准快照,您需要具备以下权限:

  • 如需创建标准快照,请执行以下操作:
    • 针对新标准快照的目标项目的 compute.snapshots.create 权限
    • 针对来源即时快照的 compute.instantSnapshots.useReadOnly 权限

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

限制

如果即时快照的来源磁盘使用客户提供的加密密钥 (CSEK) 进行加密,则该即时快照也会使用同一密钥加密。

因此,如需通过 CSEK 加密的即时快照创建标准快照,您必须提供用于加密来源磁盘的密钥。

根据即时快照创建标准或归档快照

您可以使用 gcloud CLI、Google Cloud 控制台或 REST 从即时快照创建标准快照或归档快照。

控制台

  1. 找到要恢复的即时快照:

    1. 在 Google Cloud 控制台中,转到快照页面。

      转到“快照”

    2. 点击即时快照标签页。

    3. 名称列中,记下您要恢复的快照的名称。

  2. 点击创建快照

  3. 名称字段中,输入用于标识快照的唯一名称。

  4. 可选。在说明字段中添加有关快照的更多详细信息。

  5. 快照源类型下,选择即时快照

  6. 来源即时快照列表中,选择您要使用的即时快照。

  7. 类型字段中,选择快照归档快照

  8. 位置部分,选择快照存储位置。系统会自动选择快照设置中定义的预定义或自定义默认位置。(可选)您可以通过执行以下操作来替换快照设置并将快照存储在自定义存储位置:

    1. 选择快照的存储位置类型。

      • 选择多区域,该选项以更高的费用实现更高的可用性。
      • 选择区域级快照,该选项使您能够更好地控制数据的实际位置,并且费用也会更低。
    2. 选择位置字段中,选择要使用的具体区域或多区域。如需使用最靠近源磁盘的区域或多区域,请选择基于磁盘的位置

  9. 如果即时快照使用 CSEK 加密,请提供加密密钥:

    1. 解密部分的加密密钥字段中输入加密密钥。
    2. 如果密钥使用 RSA 公钥封装,请选择已封装的密钥
  10. 点击创建以创建快照。

gcloud

使用 gcloud compute snapshots create 命令根据可用区或区域即时快照创建标准快照。您可以使用不同的标志,具体取决于即时快照属于可用区级磁盘还是区域级磁盘。

可用区级即时快照

使用快照设置定义的存储位置政策,或使用您选择的备用存储位置,根据可用区即时快照创建标准或归档快照。如需了解详情,请参阅选择快照存储位置

  • 如需在快照设置中配置的预定义或自定义默认位置创建标准或归档快照,请使用以下命令:
gcloud compute snapshots create NEW_STANDARD_SNAPSHOT_NAME \
  --source-instant-snapshot=SRC_INSTANT_SNAPSHOT_NAME \
  --source-instant-snapshot-zone=SOURCE_ZONE \
  --snapshot-type=SNAPSHOT_TYPE

将以下变量替换为相应值:

  • NEW_STANDARD_SNAPSHOT_NAME:新的标准快照的唯一名称。
  • SRC_INSTANT_SNAPSHOT_NAME:来源即时快照的名称。
  • SOURCE_ZONE:即时快照所在的可用区。
  • SNAPSHOT_TYPE:要创建的快照的类型,即 STANDARDARCHIVE。如果省略此标志,则将创建标准快照。

  • 如需替换快照设置并在自定义存储位置创建标准或归档快照,请添加 --storage-location 标志以指定快照的存储位置:

gcloud compute snapshots create NEW_STANDARD_SNAPSHOT_NAME \
  --source-instant-snapshot=SRC_INSTANT_SNAPSHOT_NAME \
  --source-instant-snapshot-zone=SOURCE_ZONE \
  --storage-location=STORAGE_LOCATION \
  --snapshot-type=SNAPSHOT_TYPE

将以下变量替换为相应值:

  • NEW_STANDARD_SNAPSHOT_NAME:新快照的唯一名称。
  • SRC_INSTANT_SNAPSHOT_NAME:来源即时快照的名称。
  • SOURCE_ZONE:即时快照所在的可用区。
  • STORAGE_LOCATION:对于自定义存储位置,这是您要存储快照的 Cloud Storage 多区域Cloud Storage 区域。请注意,您只能指定一个存储位置。

    只有在您想要替换在快照设置中配置的预定义或自定义默认存储位置时,才应使用 --storage-location 标志。

  • SNAPSHOT_TYPE:要创建的快照的类型,即 STANDARDARCHIVE。如果省略此标志,则将创建标准快照。

区域级即时快照

使用快照设置定义的存储位置政策,或使用您选择的备用存储位置,根据区域即时快照创建标准或归档快照。如需了解详情,请参阅选择快照存储位置

  • 如需在快照设置中配置的预定义或自定义默认位置创建标准或归档快照,请使用以下命令:
gcloud compute snapshots create NEW_STANDARD_SNAPSHOT_NAME \
  --source-instant-snapshot=SRC_INSTANT_SNAPSHOT_NAME \
  --source-instant-snapshot-region=SOURCE_REGION \
  --snapshot-type=SNAPSHOT_TYPE

将以下变量替换为相应值:

  • NEW_STANDARD_SNAPSHOT_NAME:新的标准快照的唯一名称。
  • SRC_INSTANT_SNAPSHOT_NAME:来源即时快照的名称。
  • SOURCE_REGION:即时快照所在的区域。
  • SNAPSHOT_TYPE:要创建的快照的类型,即 STANDARDARCHIVE。如果省略此标志,则将创建标准快照。

  • 如需替换快照设置并在自定义存储位置创建标准或归档快照,请添加 --storage-location 标志以指定快照的存储位置:

gcloud compute snapshots create NEW_STANDARD_SNAPSHOT_NAME \
  --source-instant-snapshot=SRC_INSTANT_SNAPSHOT_NAME \
  --source-instant-snapshot-region=SOURCE_REGION \
  --storage-location=STORAGE_LOCATION \
  --snapshot-type=SNAPSHOT_TYPE

将以下变量替换为相应值:

  • NEW_STANDARD_SNAPSHOT_NAME:新快照的唯一名称。
  • SRC_INSTANT_SNAPSHOT_NAME:来源即时快照的名称。
  • SOURCE_REGION:即时快照所在的区域。
  • STORAGE_LOCATION:对于自定义存储位置,这是您要存储快照的 Cloud Storage 多区域Cloud Storage 区域。请注意,您只能指定一个存储位置。

    只有在您想要替换在快照设置中配置的预定义或自定义默认存储位置时,才应使用 --storage-location 标志。

  • SNAPSHOT_TYPE:要创建的快照的类型,即 STANDARDARCHIVE。如果省略此标志,则将创建标准快照。

REST

如需根据可用区级或区域级即时快照创建标准快照,请向 snapshots.insert 方法发出 POST 请求。

API 请求属性取决于即时快照是可用区磁盘还是区域磁盘。

可用区级即时快照

使用快照设置定义的存储位置政策,或使用您选择的备用存储位置,根据可用区即时快照创建标准或归档快照。如需了解详情,请参阅选择快照存储位置

  • 如需在快照设置中配置的预定义或自定义默认位置创建标准或归档快照,请向 snapshots.insert 方法发出 POST 请求。

  • 如需替换快照设置并在自定义存储位置创建快照,请在请求中添加 storageLocations 属性。

POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT/global/snapshots
{
  "name": "NEW_STANDARD_SNAPSHOT_NAME",
  "snapshotType": "NEW_SNAPSHOT_TYPE",
  "sourceInstantSnapshot": "projects/SOURCE_PROJECT/zones/SOURCE_ZONE/instantSnapshots/SOURCE_INSTANT_SNAPSHOT_NAME",
  "sourceInstantSnapshotEncryptionKey": "SOURCE_ENCRYPTION_KEY"
}

将以下变量替换为相应值:

  • DESTINATION_PROJECT:要在其中创建新快照的项目。
  • NEW_STANDARD_SNAPSHOT_NAME:新快照的唯一名称。
  • NEW_SNAPSHOT_TYPE:要创建的快照的类型,即 STANDARDARCHIVE
  • SOURCE_PROJECT:包含来源即时快照的项目。
  • SOURCE_ZONE:即时快照所在的可用区。
  • SOURCE_INSTANT_SNAPSHOT_NAME:来源即时快照的名称。
  • SOURCE_ENCRYPTION_KEY:如果即时快照是使用客户提供的密钥或客户管理的密钥加密的,请将此值替换为密钥信息。否则,您可以省略此属性。
  • STORAGE_LOCATION:可选。要存储快照的 Cloud Storage 多区域Cloud Storage 区域。请注意,您只能指定一个存储位置。

仅当您想要替换快照设置中配置的预定义或自定义默认存储位置时,才应使用 storageLocations 参数。

区域级即时快照

使用快照设置定义的存储位置政策,或使用您选择的备用存储位置,根据区域即时快照创建区域标准或归档快照。如需了解详情,请参阅选择快照存储位置

如需在快照设置中配置的预定义或自定义默认位置创建标准或归档快照卷,请向 snapshots.insert 方法发出 POST 请求。

POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT/global/snapshots
{
"name": "NEW_STANDARD_SNAPSHOT_NAME",
"snapshotType": "NEW_SNAPSHOT_TYPE",
"sourceInstantSnapshot": "projects/SOURCE_PROJECT/regions/SOURCE_REGION/instantSnapshots/SOURCE_INSTANT_SNAPSHOT_NAME",
"sourceInstantSnapshotEncryptionKey": "SOURCE_ENCRYPTION_KEY"
}

将以下变量替换为相应值:

  • DESTINATION_PROJECT:要在其中创建新快照的项目。
  • NEW_STANDARD_SNAPSHOT_NAME:新快照的唯一名称。
  • NEW_SNAPSHOT_TYPE:要创建的快照的类型,即 STANDARDARCHIVE
  • SOURCE_PROJECT:包含来源即时快照的项目。
  • SOURCE_REGION:即时快照所在的区域。
  • SOURCE_INSTANT_SNAPSHOT_NAME:来源即时快照的名称。
  • SOURCE_ENCRYPTION_KEY:如果即时快照是使用客户提供的密钥或客户管理的密钥加密的,请将此值替换为密钥信息。否则,您可以省略此属性。

API 请求响应

如果 POST 请求成功,则响应正文将是一个对象,您可以轮询该对象以获取快照的创建状态。如需了解详情,请参阅处理 API 响应

后续步骤