在某些情况下,您可能希望将即时快照复制到与其来源磁盘不同的可用区或区域。可能的情况包括:
- 在删除来源磁盘之前,保留即时快照上的数据,因为删除磁盘会删除其即时快照。
- 将即时快照存储在其他位置,以保护该快照不受可用区或区域服务中断的影响。
- 将含有事件或项目里程碑数据的即时快照移到长期存储。
- 使用一个位置的即时快照在另一个位置创建新磁盘。
在这些情况下,您必须根据即时快照创建标准或归档快照,并使用该新创建的快照。
本页面介绍如何根据即时快照创建标准或归档快照。
准备工作
-
设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) -
连接到可以作为服务账号运行的虚拟机:Service Account User (v1) (
roles/iam.serviceAccountUser
) -
如需创建标准快照,请执行以下操作:
-
针对新标准快照的目标项目的
compute.snapshots.create
权限 -
针对来源即时快照的
compute.instantSnapshots.useReadOnly
权限
-
针对新标准快照的目标项目的
找到即时快照:
在 Google Cloud 控制台中,转到快照页面。
点击即时快照标签页。
在名称列中,记下您要恢复的快照的名称。
点击创建快照。
在名称字段中,输入用于标识快照的唯一名称。
可选。在说明字段中添加有关快照的更多详细信息。
在快照源类型下,选择即时快照。
在来源即时快照列表中,选择您要使用的即时快照。
在类型字段中,选择快照或归档快照。
在位置部分,选择快照存储位置。系统会自动选择快照设置中定义的预定义或自定义默认位置。(可选)您可以通过执行以下操作来替换快照设置并将快照存储在自定义存储位置:
如果即时快照使用 CSEK 加密,请提供加密密钥:
- 在解密部分的加密密钥字段中输入加密密钥。
- 如果密钥使用 RSA 公钥封装,请选择已封装的密钥。
点击创建以创建快照。
- 如需在快照设置中配置的预定义或自定义默认位置创建标准或归档快照,请使用以下命令:
NEW_STANDARD_SNAPSHOT_NAME
:新的标准快照的唯一名称。SRC_INSTANT_SNAPSHOT_NAME
:来源即时快照的名称。SOURCE_ZONE
:即时快照所在的可用区。SNAPSHOT_TYPE
:要创建的快照的类型,即STANDARD
或ARCHIVE
。如果省略此标志,则将创建标准快照。如需替换快照设置并在自定义存储位置创建标准或归档快照,请添加
--storage-location
标志以指定快照的存储位置:NEW_STANDARD_SNAPSHOT_NAME
:新快照的唯一名称。SRC_INSTANT_SNAPSHOT_NAME
:来源即时快照的名称。SOURCE_ZONE
:即时快照所在的可用区。STORAGE_LOCATION
:对于自定义存储位置,这是您要存储快照的 Cloud Storage 多区域或 Cloud Storage 区域。请注意,您只能指定一个存储位置。只有在您想要替换在快照设置中配置的预定义或自定义默认存储位置时,才应使用
--storage-location
标志。SNAPSHOT_TYPE
:要创建的快照的类型,即STANDARD
或ARCHIVE
。如果省略此标志,则将创建标准快照。- 如需在快照设置中配置的预定义或自定义默认位置创建标准或归档快照,请使用以下命令:
NEW_STANDARD_SNAPSHOT_NAME
:新的标准快照的唯一名称。SRC_INSTANT_SNAPSHOT_NAME
:来源即时快照的名称。SOURCE_REGION
:即时快照所在的区域。SNAPSHOT_TYPE
:要创建的快照的类型,即STANDARD
或ARCHIVE
。如果省略此标志,则将创建标准快照。如需替换快照设置并在自定义存储位置创建标准或归档快照,请添加
--storage-location
标志以指定快照的存储位置:NEW_STANDARD_SNAPSHOT_NAME
:新快照的唯一名称。SRC_INSTANT_SNAPSHOT_NAME
:来源即时快照的名称。SOURCE_REGION
:即时快照所在的区域。STORAGE_LOCATION
:对于自定义存储位置,这是您要存储快照的 Cloud Storage 多区域或 Cloud Storage 区域。请注意,您只能指定一个存储位置。只有在您想要替换在快照设置中配置的预定义或自定义默认存储位置时,才应使用
--storage-location
标志。SNAPSHOT_TYPE
:要创建的快照的类型,即STANDARD
或ARCHIVE
。如果省略此标志,则将创建标准快照。如需在快照设置中配置的预定义或自定义默认位置创建标准或归档快照,请向
snapshots.insert
方法发出POST
请求。如需替换快照设置并在自定义存储位置创建快照,请在请求中添加
storageLocations
属性。DESTINATION_PROJECT
:要在其中创建新快照的项目。NEW_STANDARD_SNAPSHOT_NAME
:新快照的唯一名称。NEW_SNAPSHOT_TYPE
:要创建的快照的类型,即STANDARD
或ARCHIVE
。SOURCE_PROJECT
:包含来源即时快照的项目。SOURCE_ZONE
:即时快照所在的可用区。SOURCE_INSTANT_SNAPSHOT_NAME
:来源即时快照的名称。SOURCE_ENCRYPTION_KEY
:如果即时快照使用客户提供的密钥或客户管理的密钥进行加密,请将此值替换为密钥信息。否则,您可以省略此属性。STORAGE_LOCATION
:可选。要存储快照的 Cloud Storage 多区域或 Cloud Storage 区域。请注意,您只能指定一个存储位置。DESTINATION_PROJECT
:要在其中创建新快照的项目。NEW_STANDARD_SNAPSHOT_NAME
:新快照的唯一名称。NEW_SNAPSHOT_TYPE
:要创建的快照的类型,即STANDARD
或ARCHIVE
。SOURCE_PROJECT
:包含来源即时快照的项目。SOURCE_REGION
:即时快照所在的区域。SOURCE_INSTANT_SNAPSHOT_NAME
:来源即时快照的名称。SOURCE_ENCRYPTION_KEY
:如果即时快照使用客户提供的密钥或客户管理的密钥进行加密,请将此值替换为密钥信息。否则,您可以省略此属性。- 了解如何跨项目共享标准快照。
- 了解如何根据标准快照创建虚拟机。
- 获取有关创建标准快照时出现的错误和创建即时快照时出现的错误的问题排查帮助。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
所需的角色和权限
如需获取从即时快照创建标准快照所需的权限,请让管理员向您授予项目的以下 IAM 角色:
如需详细了解如何授予角色,请参阅管理访问权限。
这些预定义角色包含从即时快照创建标准快照所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需从即时快照创建标准快照,您需要具备以下权限:
限制
如果即时快照的来源磁盘使用客户提供的加密密钥 (CSEK) 进行加密,则该即时快照也会使用同一密钥加密。
因此,如需通过 CSEK 加密的即时快照创建标准快照,您必须提供用于加密来源磁盘的密钥。
根据即时快照创建标准或归档快照
您可以使用 gcloud CLI、Google Cloud 控制台或 REST 从即时快照创建标准快照或归档快照。
控制台
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
将以下变量替换为相应值:
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
将以下变量替换为相应值:
区域级即时快照
使用快照设置定义的存储位置政策,或使用您选择的备用存储位置,根据区域即时快照创建标准或归档快照。如需了解详情,请参阅选择快照存储位置。
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
将以下变量替换为相应值:
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
将以下变量替换为相应值:
REST
如需根据可用区级或区域级即时快照创建标准快照,请向 snapshots.insert 方法发出
POST
请求。API 请求属性取决于即时快照是可用区磁盘还是区域磁盘。
可用区级即时快照
使用快照设置定义的存储位置政策,或使用您选择的备用存储位置,根据可用区即时快照创建标准或归档快照。如需了解详情,请参阅选择快照存储位置。
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" }
将以下变量替换为相应值:
仅当您想要替换快照设置中配置的预定义或自定义默认存储位置时,才应使用
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" }
将以下变量替换为相应值:
API 请求响应
如果
POST
请求成功,则响应正文将是一个对象,您可以轮询该对象以获取快照的创建状态。如需了解详情,请参阅处理 API 响应。后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-10-04。
-