恢复和删除永久性磁盘快照

使用快照可以通过增量方式备份永久性磁盘中的数据。要了解如何创建快照,请参阅创建永久性磁盘快照

创建快照后,您可以将快照恢复到永久性磁盘。如果您不再需要特定快照,则可以删除该快照以节省存储费用。

如需查看可供项目使用的快照的列表,请使用 gcloud compute snapshots list 命令:

gcloud compute snapshots list

如需列出特定快照的相关信息,请使用 gcloud compute snapshots describe 命令:

gcloud compute snapshots describe [SNAPSHOT_NAME]

其中,[SNAPSHOT_NAME] 是您要描述的快照的名称。

开始之前

恢复快照

恢复启动磁盘快照

您可以使用永久性启动磁盘的快照来创建新的虚拟机实例。请参阅通过快照创建实例

恢复非启动磁盘快照

您可以将非永久性启动磁盘快照恢复到比原始快照更大的永久性磁盘,但必须在实例中额外运行一些命令才能识别额外的空间。

您可能需要使用其他文件系统大小调整工具,具体取决于您的操作系统和文件系统类型。如需了解详情,请参阅操作系统文档。

要恢复非永久性启动磁盘快照,请执行以下操作:

Console

  1. 转到 Google Cloud Platform Console 中的快照页面。

    转到“快照”页面

  2. 找到要恢复的快照的名称。
  3. 转到“虚拟机实例”页面。

    转到“虚拟机实例”页面

  4. 点击要在其中恢复非启动磁盘的实例的名称。
  5. 在实例详情页面顶部,点击修改
  6. 额外磁盘下,点击添加项目
  7. 名称下拉菜单中,点击创建磁盘
  8. 指定以下配置参数:
    • 磁盘的名称。
    • 磁盘的类型。所选类型应与用于快照的类型匹配。
  9. 来源类型下方,点击快照
  10. 选择要恢复的快照的名称。
  11. (可选)选择磁盘大小(以 GB 为单位)。此数字必须等于或大于快照大小。如果未指定,则系统会将大小设置为快照的大小。
  12. 点击创建以创建磁盘。
  13. 在实例详情页面底部,点击保存以将更改应用到实例并挂接新磁盘。

gcloud

  1. 使用 gcloud compute snapshots list 命令查找要恢复的快照的名称:

    gcloud compute snapshots list
    
  2. 使用 gcloud compute snapshots describe 命令查找要恢复的快照的大小:

    gcloud compute snapshots describe [SNAPSHOT_NAME]
    

    其中,[SNAPSHOT_NAME] 是要恢复的快照的名称。

  3. 使用 gcloud compute disks create 命令通过非启动快照创建新的区域地区永久性磁盘。如果您需要 SSD 永久性磁盘以实现更高的吞吐量或 IOPS,请添加 --type 标志并指定 pd-ssd

    gcloud compute disks create [DISK_NAME] \
        --size [DISK_SIZE] \
        --source-snapshot [SNAPSHOT_NAME] \
        --type [DISK_TYPE]
    

    其中:

    • [DISK_NAME] 是新磁盘的名称。
    • [DISK_SIZE] 是新磁盘的大小(以 GB 为单位)。此数值必须等于或大于快照大小。
    • [SNAPSHOT_NAME] 是要恢复的快照的名称。
    • [DISK_TYPE] 是永久性磁盘的类型,即 pd-standardpd-ssd
  4. 使用 gcloud compute instances attach-disk 命令将您的永久性磁盘挂接到一个实例:

    gcloud compute instances attach-disk [INSTANCE_NAME] \
        --disk [DISK_NAME]
    

    其中:

    • [INSTANCE_NAME] 是实例的名称。
    • [DISK_NAME] 是通过快照创建的磁盘的名称。

如果磁盘大于快照大小,则需要调整该永久性磁盘上的文件系统大小,以包含额外的磁盘空间。

现在,您可以使用该实例访问恢复的数据,并使用额外的永久性磁盘空间来存储新数据。

删除快照

Compute Engine 使用增量快照,以使每个快照仅包含自上一个快照创建以来发生了更改的数据。对于未更改的数据,快照会引用以前快照中的数据。 系统仅会根据快照的总大小收取永久性磁盘快照的存储费用

当您删除快照后,Compute Engine 会立即在系统中将该快照标记为 DELETED。如果该快照没有任何依赖于它的快照,则系统会将其彻底删除。但是,如果该快照有其他依赖于它的快照,则会发生以下情况:

  1. 恢复其他快照所需的任何数据都会被移到下一个快照中,从而增加了下一个快照的大小。
  2. 恢复其他快照时不需要用到的任何数据都会被删除。这会减少所有快照的总大小。
  3. 下一个快照将不再引用已标记为删除的快照,而是引用它的上一个快照。

由于后续快照可能需要之前快照中存储的信息,因此请注意,删除某一快照未必会删除该快照上的所有数据。如果在恢复后续快照时需要用到已标记为删除的快照上的任何数据,则这些数据将会转移到下一个相应的快照中。如需彻底删除快照中的数据,您应当删除所有快照。

如果您的磁盘具有快照时间表,您必须先从磁盘中分离快照时间表,然后才能删除该时间表。从磁盘中移除快照时间表可以避免进一步的快照活动。您无法删除已挂接到磁盘的时间表,但您可以随时手动删除快照。

下图演示了上述过程:

描述快照删除流程的图表

如需删除快照,请执行以下操作:

Console

  1. 转到 Google Cloud Platform Console 中的快照页面。

    转到“快照”页面

  2. 选择要删除的一个或多个快照。
  3. 点击快照页面的顶部的删除

gcloud

如需删除某个快照,请使用 gcloud compute snapshots delete 命令:

gcloud compute snapshots delete [SNAPSHOT_NAME]

其中,[SNAPSHOT_NAME] 是要删除的快照的名称。

API

如需删除快照,请对 compute.snapshots.delete 发出 DELETE 请求。

DELETE https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/snapshots/[SNAPSHOT_NAME]

其中:

  • [PROJECT_ID] 是您的项目的名称。
  • [SNAPSHOT_NAME] 是要删除的快照的名称。

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Compute Engine 文档