标准磁盘快照可帮助您定期备份永久性磁盘和 Google Cloud Hyperdisk 中的数据。
您可以查看、列出和删除磁盘快照。您还可以跨项目共享快照。
准备工作
-
设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 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.list
权限 -
如需查看快照的相关信息:针对快照的
compute.snapshots.get
权限 -
如需删除快照:针对快照的
compute.snapshots.delete
权限 -
如需根据过滤条件删除快照,需要以下权限:
-
针对快照的
compute.snapshots.delete
权限 - 针对项目的
compute.snapshots.list
权限
-
针对快照的
-
如需跨项目共享快照数据,需要以下权限:
-
针对项目的
compute.storageAdmin
权限(用于访问所有标准快照) -
针对要共享的项目的
compute.disks.create
权限 -
针对源项目的
compute.snapshots.create
权限。 -
针对来源磁盘的
compute.disks.createSnapshot
权限
-
针对项目的
在 Google Cloud 控制台中,转到快照页面。
在快照标签页上,您可以查看当前项目的标准快照。
可选。使用 filter_list 过滤条件字段缩小结果范围。在过滤条件字段中输入属性名称或值,或从可用属性中选择。
在 Google Cloud 控制台中,转到快照页面。
快照标签页上会显示项目中所有标准快照的列表。
按来源磁盘缩小结果范围:
在 filter_list 过滤条件字段中输入
Source disk:
,或点击过滤条件字段,然后从属性列表选择值Source disk
。从过滤条件字段中
Source disk:
旁边显示的值列表中选择磁盘名称。现在,控制台中显示的快照会显示指定磁盘的所有标准快照。
如果您在值列表中没有看到磁盘名称,请在
Source disk:
旁边的过滤条件字段中输入以来源磁盘名称的前几个字母,以更改您看到的值列表。
列出某个可用区级磁盘的标准快照:
gcloud compute snapshots list --filter="sourceDisk:projects/PROJECT_ID/zones/SOURCE_ZONE/disks/DISK_NAME
列出某个区域级磁盘的标准快照:
gcloud compute snapshots list --filter=sourceDisk:projects/PROJECT_ID/regions/SOURCE_REGION/disks/DISK_NAME
PROJECT_ID
:项目的 ID。SOURCE_ZONE
:(仅限可用区级磁盘)磁盘所在可用区的名称,例如us-west1-a
。SOURCE_REGION
:(仅限区域级磁盘)磁盘所在区域的名称,例如us-west1
。DISK_NAME
:磁盘的名称,例如disk-1
。列出某个可用区级磁盘的标准快照:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots?filter=sourceDisk:'https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/SOURCE_ZONE/disks/DISK_NAME'
列出某个区域级磁盘的标准快照:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots?filter=sourceDisk:'https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/SOURCE_REGION/disks/DISK_NAME'
PROJECT_ID
:项目的 ID。SOURCE_ZONE
:(仅限可用区级磁盘)磁盘所在可用区的名称,例如us-west1-a
。SOURCE_REGION
:(仅限区域级磁盘)磁盘所在区域的名称,例如us-west1
。DISK_NAME
:来源磁盘的名称,例如disk-1
。在 Google Cloud 控制台中,转到快照页面。
在快照标签页上,查看项目中的快照的列表。
在名称列中,点击标准快照的名称。此时会显示所选快照的快照详情页面,其中显示快照的属性。
PROJECT_ID
:包含标准快照的项目的名称。SNAPSHOT_NAME
:标准快照的名称。在 Google Cloud 控制台中,转到快照页面。
选择要删除的一个或多个快照。
点击快照页面顶部的删除。
- PROJECT_ID:您的项目的名称
- SNAPSHOT_NAME:要删除的快照的名称。
使用
gcloud compute snapshots create
命令在目标项目中创建标准快照。例如,如需创建可用区级永久性磁盘或 Hyperdisk 的快照,请使用以下命令:gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk https://www.googleapis.com/compute/v1/projects/SOURCE_PROJECT_ID/zones/ZONE/disks/SOURCE_DISK_NAME \ --project DESTINATION_PROJECT_ID
替换以下内容:
- SNAPSHOT_NAME:新快照的名称。
- SOURCE_PROJECT_ID:来源磁盘的项目的 ID。
- ZONE:来源磁盘的可用区。
- SOURCE_DISK_NAME:来源磁盘的名称。
- DESTINATION_PROJECT_ID:新快照的目标项目的 ID。
在目标项目中,使用
gcloud compute disks create
命令创建基于快照的可用区级磁盘或区域级磁盘:gcloud compute disks create DISK_NAME \ --source-snapshot SNAPSHOT_NAME \ --project DESTINATION_PROJECT_ID
替换以下内容:
- DISK_NAME:新磁盘的名称。
- SNAPSHOT_NAME:快照的名称。
- DESTINATION_PROJECT_ID:新磁盘的目标项目的 ID。
通过调用
snapshots.insert
方法,在目标项目中创建标准快照。例如,如需截取可用区级永久性磁盘或 Hyperdisk 的快照,请发出以下请求:POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots { "name": SNAPSHOT_NAME "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME }
替换以下内容:
- DESTINATION_PROJECT_ID:新快照的目标项目的 ID。
- SNAPSHOT_NAME:快照的名称。
- SOURCE_PROJECT_ID:来源磁盘项目的 ID。
- SOURCE_ZONE:来源磁盘的可用区。
- SOURCE_DISK_NAME:来源磁盘的名称。
在目标项目中,使用可用区级
disks.insert
方法或区域级regionDisks.insert
方法创建基于快照的可用区级或区域级磁盘。例如,如需创建可用区级磁盘,请发出以下请求:
POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/zones/DESTINATION_ZONE/disks { "name": DISK_NAME "sourceSnapshot": SNAPSHOT_NAME }
替换以下内容:
- DESTINATION_PROJECT_ID:新磁盘的目标项目的 ID。
- DESTINATION_ZONE:新磁盘的目标项目中的可用区。
- DISK_NAME:新磁盘的名称。
- SNAPSHOT_NAME:快照的名称。
在来源项目中,使用
gcloud compute disks create
命令创建基于快照的磁盘。gcloud compute disks create DISK_NAME \ --source-snapshot SNAPSHOT_NAME \ --project SOURCE_PROJECT_ID \ --zone ZONE
替换以下内容:
- DISK_NAME:新磁盘的名称。
- SNAPSHOT_NAME:快照的名称。
- SOURCE_PROJECT_ID:源项目的 ID。
- ZONE:创建新磁盘的可用区。
此磁盘是临时磁盘,仅创建用于跨组织复制快照。
在目标项目中,使用
gcloud compute snapshots create
命令创建快照。例如,如需使用第一步中创建的可用区级磁盘创建快照,请使用以下命令:
gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk https://www.googleapis.com/compute/v1/projects/SOURCE_PROJECT_ID/zones/ZONE/disks/DISK_NAME \ --project DESTINATION_PROJECT_ID
替换以下内容:
- SNAPSHOT_NAME:快照的名称。
- SOURCE_PROJECT_ID:包含来源磁盘的项目的 ID。
- ZONE:来源磁盘的可用区。
- DISK_NAME:步骤 1 中创建的磁盘的名称。
- DESTINATION_PROJECT_ID:新快照的目标项目的 ID。
如需获取可用快照的列表,请参阅查看某个项目或位置中的标准快照。
使用
gcloud compute disks delete
命令删除在第一步中创建的临时磁盘。gcloud compute disks delete DISK_NAME \ --project SOURCE_PROJECT_ID --zone ZONE
替换以下内容:
- DISK_NAME:步骤 1 中创建的磁盘的名称。
- SOURCE_PROJECT_ID:包含来源磁盘的项目的 ID。
- ZONE:磁盘的可用区。
在来源项目中,使用可用区
disks.insert
方法创建基于快照的可用区级或区域级磁盘。例如,如需创建可用区级磁盘,请发出以下请求:
POST https://compute.googleapis.com/compute/v1/projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks { "name": DISK_NAME "sourceSnapshot": SNAPSHOT_NAME }
替换以下内容:
- SOURCE_PROJECT_ID:新磁盘的来源项目的 ID。
- SOURCE_ZONE:新磁盘的可用区。
- DISK_NAME:新磁盘的名称。
- SNAPSHOT_NAME:快照的名称。
此磁盘是临时磁盘,仅创建用于跨组织复制快照。
通过调用
snapshots.insert
方法,在目标项目中创建快照。例如,如需使用第一步中创建的可用区级磁盘创建快照,请使用以下命令:
POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots { "name": SNAPSHOT_NAME "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/DISK_NAME }
替换以下内容:
- DESTINATION_PROJECT_ID:新快照的目标项目的 ID。
- SNAPSHOT_NAME:快照的名称。
- SOURCE_PROJECT_ID:包含来源磁盘的项目的 ID。
- SOURCE_ZONE:来源磁盘的可用区。
- DISK_NAME:来源磁盘的名称。
使用
disks.delete
方法删除在第一步中创建的临时磁盘。DELETE https://compute.googleapis.com/compute/v1/projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/DISK_NAME
替换以下内容:
- SOURCE_PROJECT_ID:包含临时磁盘的项目的 ID。
- SOURCE_ZONE:磁盘的可用区。
- DISK_NAME:步骤 1 中创建的临时磁盘的名称。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
所需的角色和权限
如需获得管理标准快照所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色可提供管理标准快照所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
您需要具备以下权限才能管理标准快照:
查看某个项目或位置中的标准快照
您可以使用 gcloud CLI、Google Cloud 控制台或 REST 查看或列出某个项目或位置中的标准快照。
控制台
gcloud
如需查看特定项目中可供您使用的快照的列表,请使用
gcloud compute snapshots list
命令。gcloud compute snapshots list --project=PROJECT_ID
可选。将
PROJECT_ID
替换为项目 ID。 如果省略此标志,则使用当前项目。您可以使用 gcloud CLI 命令gcloud config set project PROJECT_ID
为会话设置默认项目。REST
如需查看特定项目中可供您使用的快照的列表,请向
snapshots.list
方法发出GET
请求。GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots
将
PROJECT_ID
替换为项目 ID。查看磁盘的标准快照
您可以使用 Google Cloud 控制台、gcloud CLI 或 REST 查看磁盘的标准快照列表。
控制台
gcloud
使用
gcloud compute snapshots list
命令和--filter
参数列出磁盘的标准快照。替换以下内容:
REST
向
snapshots.list
方法发出GET
请求,以列出某个可用区级或区域级磁盘的标准快照。使用
filter=sourceDisk
查询参数指定磁盘的名称。替换以下内容:
查看有关标准快照的信息
使用 Google Cloud 控制台、Google Cloud CLI 或 REST 检索标准快照的详细信息,例如创建时间、来源磁盘和大小。
控制台
gcloud
如需查看标准快照的相关信息,请使用
gcloud compute snapshots describe
命令。gcloud compute snapshots describe SNAPSHOT_NAME
将
SNAPSHOT_NAME
替换为标准快照的名称。REST
向
snapshots.get
方法发出GET
请求。GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots/SNAPSHOT_NAME
替换以下内容:
删除快照
Compute Engine 使用差分快照,以使每个快照仅包含自上一个快照创建以来发生了更改的数据。由于后续快照可能需要之前的快照中存储的信息,因此请注意,删除快照未必会删除该快照上的所有数据。
如需详细了解快照删除,请参阅快照删除。
控制台
gcloud
如需删除某个快照,请使用
gcloud compute snapshots delete
命令。gcloud compute snapshots delete SNAPSHOT_NAME
将 SNAPSHOT_NAME 替换为要删除的快照的名称。
Go
Java
Node.js
Python
REST
向
snapshots.delete
方法发出DELETE
请求以删除快照。DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots/SNAPSHOT_NAME
替换以下内容:
根据过滤条件删除多个快照
Compute Engine 使用差分快照,以使每个快照仅包含自上一个快照创建以来发生了更改的数据。由于后续快照可能需要之前的快照中存储的信息,因此删除快照未必会删除该快照上的所有数据。
如需详细了解快照删除,请参阅快照删除。
您可以根据给定的过滤条件删除大量快照。如需详细了解如何将过滤条件与 gcloud CLI 搭配使用,请参阅 gcloud CLI 主题过滤条件。
如需删除快照,请结合使用
gcloud compute snapshots list
命令和给定过滤条件,并结合使用gcloud compute snapshots delete
命令和xargs
。gcloud compute snapshots list --filter="EXPRESSION" --uri | xargs gcloud compute snapshots delete
将
EXPRESSION
替换为 gcloud CLI 主题过滤条件。例如,
--filter="creationTimestamp<'2023-12-31'"
会删除 2023 年 12 月 31 日之前创建的所有快照。在同一组织中的多个项目之间共享快照数据
您可以按照此过程将数据从一个项目中的磁盘移动到同一组织内其他项目中的磁盘。
gcloud
REST
如需获取可用快照的列表,请参阅查看某个项目或位置中的标准快照。
在不同组织的多个项目之间共享快照
您可以按照此过程将一个组织的项目中的标准快照与另一个组织中的不同项目共享。
gcloud
REST
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-12-03。
-