本文档介绍如何创建和管理即时快照。即时快照可捕获磁盘的内容,并可用于在几分钟内创建新磁盘。
即时快照与其来源磁盘存储在同一可用区或区域中,并且不可用于替代标准快照,后者提供用于灾难恢复的异地备份。了解 Compute Engine 中提供的其他数据保护选项。
如需访问即时快照中的数据,请使用即时快照创建新磁盘。
如果要将即时快照复制到其他位置,请根据即时快照创建标准快照。
准备工作
-
设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。
选择标签页以了解您打算如何使用本页面上的示例:
控制台
当您使用 Google Cloud 控制台访问 Google Cloud 服务和 API 时,无需设置身份验证。
gcloud
-
安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:
gcloud init
- 设置默认区域和可用区。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
-
限制
为确保即时快照适合您的应用场景,请查看与即时快照相关的限制。
创建永久性磁盘卷的即时快照
可用区级磁盘的即时快照存储在与来源磁盘相同的可用区中。同样,区域级磁盘的即时快照存储在与磁盘相同的区域中。
您可以使用 gcloud CLI、Google Cloud 控制台或 REST 创建可用区级或区域级 Persistent Disk 卷的即时快照。
控制台
在 Google Cloud 控制台中,转到虚拟机实例页面。
选择要使用的项目。
在名称列中,点击要备份的磁盘挂接到的虚拟机的名称。
在存储部分,通过以下方式之一选择磁盘:
- 如需备份虚拟机的启动磁盘,请在启动磁盘部分中点击所需启动磁盘的名称。
- 如需备份挂接的永久性磁盘卷,请在额外磁盘部分中点击所需的挂接永久性磁盘卷的名称。
如需完成即时快照的创建,请在创建快照页面上执行以下操作:
- 在名称字段中,输入用于标识即时快照的唯一名称。
- 可选:在说明字段中添加有关快照的更多详细信息。
- 在类型字段中,选择即时快照。位置字段会自动设置为与磁盘相同的可用区或区域。
- 在快照来源类型字段中,确认已选中磁盘。
- 可选:如需整理项目,请添加一个或多个标签。
- 点击创建。
gcloud
-
在 Google Cloud 控制台中,激活 Cloud Shell。
Cloud Shell 会话随即会在 Google Cloud 控制台的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟时间来完成初始化。
如需创建即时快照,请使用
gcloud beta compute instant-snapshots create
命令:可用区级磁盘
gcloud beta compute instant-snapshots create INSTANT_SNAPSHOT_NAME \ --source-disk=SOURCE_DISK_NAME \ --zone=SOURCE_DISK_ZONE
替换以下内容:
INSTANT_SNAPSHOT_NAME
:即时快照的唯一名称。SOURCE_DISK_NAME
:来源磁盘的名称。SOURCE_DISK_ZONE
:来源磁盘的可用区。即时快照将在同一可用区中创建。
区域级磁盘
gcloud beta compute instant-snapshots create INSTANT_SNAPSHOT_NAME \ --source-disk=SOURCE_DISK_NAME \ --region=SOURCE_DISK_REGION
替换以下内容:
INSTANT_SNAPSHOT_NAME
:即时快照的唯一名称。SOURCE_DISK_NAME
:来源磁盘的名称。SOURCE_DISK_REGION
:来源磁盘的区域。即时快照将在同一区域中创建。
REST
如需创建即时快照,请向 instantSnapshots.insert 方法发出 POST
请求。
创建可用区级磁盘的即时快照:
在
POST
请求的网址中指定可用区。在请求正文中,指定新快照的名称和来源磁盘的网址。POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/DISK_ZONE/instantSnapshots { "name": "INSTANT_SNAPSHOT_NAME", "sourceDisk": "projects/PROJECT_ID/zones/DISK_ZONE/disks/SOURCE_DISK_NAME" }
将以下变量替换为相应值:PROJECT_ID
:包含磁盘的项目的名称。DISK_ZONE
:磁盘所在的可用区。即时快照将在此可用区中创建。INSTANT_SNAPSHOT_NAME
:即时快照的唯一名称。SOURCE_DISK_NAME
:来源磁盘的名称。
创建区域级磁盘的即时快照:
在
POST
请求的网址中指定区域。在请求正文中包含新快照的名称和来源磁盘。POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/DISK_REGION/instantSnapshots { "name": "INSTANT_SNAPSHOT_NAME", "sourceDisk": "projects/PROJECT_ID/regions/DISK_REGION/disks/SOURCE_DISK_NAME" }
将请求正文中的以下变量替换为相应值:PROJECT_ID
:包含磁盘的项目的名称。DISK_REGION
:来源磁盘所在的区域。快照将在同一区域中创建。INSTANT_SNAPSHOT_NAME
:快照的唯一名称。SOURCE_DISK_NAME
:来源磁盘的名称。
请求响应
如果 POST
请求成功,则响应正文将是一个对象,您可以轮询该对象以获取即时快照的创建状态。如需了解详情,请参阅处理 API 响应。
将即时快照恢复到新的永久性磁盘卷
如需恢复使用即时快照备份的数据,请根据即时快照创建新磁盘。
查看某个项目或位置中的即时快照
您可以使用 gcloud CLI、Google Cloud 控制台或 REST 查看项目或位置中的所有即时快照的列表。
控制台
在 Google Cloud 控制台中,转到快照页面。
点击即时快照标签页。此时会显示即时快照的列表。
可选:使用过滤条件字段缩小结果的范围。在过滤条件字段中输入属性名称或值,或从可用属性中选择。
gcloud
您可以使用 gcloud beta compute instant-snapshots list
命令列出特定项目或位置中的即时快照。
-
在 Google Cloud 控制台中,激活 Cloud Shell。
Cloud Shell 会话随即会在 Google Cloud 控制台的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟时间来完成初始化。
列出某个项目中的所有快照,或某个可用区或区域中的快照:
列出特定项目中的所有即时快照:
gcloud beta compute instant-snapshots list --project=PROJECT_ID
将
PROJECT_ID
替换为相应项目的 ID。使用
--zones
参数列出某个可用区中的即时快照:gcloud beta compute instant-snapshots list --zones=ZONE
将
ZONE
替换为目标可用区的名称。使用
--regions
参数列出某个区域中的区域级即时快照:gcloud beta compute instant-snapshots list --regions=REGION
将
REGION
替换为目标区域的名称。
REST
您可以检索特定项目或位置中的即时快照列表。
列出某个项目中的快照:
向 instantSnapshots.aggregatedList 方法发出
GET
请求:GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/aggregated/instantSnapshots
将PROJECT_ID
替换为项目的 ID。列出某个可用区或区域中的即时快照:
向 instantSnapshots.list 方法发出
GET
请求。- 列出某个可用区中的即时快照:
GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/SOURCE_ZONE//instantSnapshots
替换以下变量: - `PROJECT_ID`:项目的 ID。 - `SOURCE_ZONE`:目标可用区,例如 `us-west1-a`。 + 列出某个区域中的区域级即时快照:GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/SOURCE_REGION/instantSnapshots
请替换以下内容:
PROJECT_ID
:项目的 ID。SOURCE_REGION
:目标区域,例如us-west1
。
查看磁盘的即时快照
您可以使用 gcloud CLI、Google Cloud 控制台或 REST 查看磁盘的即时快照列表。
控制台
在 Google Cloud 控制台中,转到快照页面。
点击即时快照标签页。此时将显示项目中所有即时快照的列表。
按来源磁盘缩小结果范围:
在 filter_list 过滤条件字段中输入
Source disk:
。此时会显示具有即时快照的磁盘列表。
从值列表中选择磁盘名称。即时快照列表会显示该磁盘的所有即时快照。
如果您在 filter_list 过滤条件字段中没有看到磁盘的名称,请输入磁盘名称的前几个字母以更改您看到的过滤选项列表。
gcloud
-
在 Google Cloud 控制台中,激活 Cloud Shell。
Cloud Shell 会话随即会在 Google Cloud 控制台的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟时间来完成初始化。
使用
gcloud beta compute instant-snapshots list
命令和--filter
参数列出磁盘的即时快照:列出某个可用区级磁盘的即时快照:
gcloud beta compute instant-snapshots list --filter="sourceDisk:projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME
替换以下内容:
PROJECT_ID
:项目的 ID。ZONE
:磁盘的可用区名称,例如us-west1-a
。DISK_NAME
:来源磁盘的名称,例如disk-1
。
列出某个区域级磁盘的即时快照:
gcloud beta compute instant-snapshots list --filter=sourceDisk:projects/PROJECT_ID/regions/SOURCE_REGION/disks/DISK_NAME
替换以下内容:
PROJECT_ID
:项目的 ID。SOURCE_REGION
:磁盘的区域名称,例如us-west1
。DISK_NAME
:磁盘的名称,例如disk-1
。
REST
向 instantSnapshots.list 方法发出 GET
请求,以列出某个可用区级磁盘或区域级磁盘的即时快照。
使用 filter=sourceDisk
查询参数指定磁盘的名称。
列出可用区级永久性磁盘卷的即时快照:
GET https://compute.googleapis.com/compute/beta/projects/<var>PROJECT_ID</var>/zones/<var>SOURCE_ZONE/</var>/instantSnapshots?filter=sourceDisk:'https://www.googleapis.com/compute/beta/projects/<var>PROJECT_ID</var>/zones/<var>SOURCE_ZONE</var>/disks/<var>DISK_NAME</var>'
替换以下内容:
PROJECT_ID
:项目的 ID。SOURCE_ZONE
:目标可用区,例如us-west1-a
。DISK_NAME
:来源磁盘的名称,例如disk-1
。
列出区域级永久性磁盘卷的即时快照:
GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/SOURCE_REGION//instantSnapshots?filter=sourceDisk:'https://www.googleapis.com/compute/beta/projects/PROJECT_ID/regions/SOURCE_REGION/disks/DISK_NAME'
替换以下内容:
PROJECT_ID
:项目的 ID。SOURCE_REGION
:目标区域,例如us-west1
。DISK_NAME
:来源磁盘的名称,例如disk-1
。
查看即时快照的相关信息
使用 gcloud CLI、Google Cloud 控制台或 REST 检索即时快照的详细信息,例如位置、来源磁盘和大小。
控制台
在 Google Cloud 控制台中,转到快照页面。
点击即时快照标签页。此时会显示即时快照的列表。
在名称列中,点击即时快照的名称。此时会显示所选快照的即时快照详情页面,其中显示即时快照的属性。
gcloud
-
在 Google Cloud 控制台中,激活 Cloud Shell。
Cloud Shell 会话随即会在 Google Cloud 控制台的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟时间来完成初始化。
如需查看即时快照的相关信息,请使用
gcloud beta compute instant-snapshots describe
命令。如果是可用区级磁盘的快照,请使用
--zone
标志指定可用区:gcloud beta compute instant-snapshots describe INSTANT_SNAPSHOT_NAME \ --zone=ZONE
将以下变量替换为相应值:
INSTANT_SNAPSHOT_NAME
:即时快照的名称。ZONE
:创建即时快照的可用区,例如us-west1-a
。
如果是区域级磁盘的快照,请使用
--region
标志指定区域:gcloud beta compute instant-snapshots describe INSTANT_SNAPSHOT_NAME \ --region=REGION
将以下变量替换为相应值:
INSTANT_SNAPSHOT_NAME
:即时快照的名称。REGION
:创建快照的区域,例如us-central1
。
REST
您使用的 API 方法请求取决于您使用的是区域级还是可用区级即时快照。
可用区级即时快照
通过在请求中指定可用区,向 instantSnapshots.get 方法发出 GET
请求:
GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instantSnapshots/INSTANT_SNAPSHOT_NAME
将以下变量替换为相应值:
PROJECT_ID
:包含即时快照的项目的名称。ZONE
:创建即时快照的可用区。INSTANT_SNAPSHOT_NAME
:即时快照的名称。
区域级即时快照
通过在请求中指定区域,向 instantSnapshots.get 方法发出 GET
请求:
GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instantSnapshots/INSTANT_SNAPSHOT_NAME
将以下变量替换为相应值:
PROJECT_ID
:包含即时快照的项目的名称。REGION
:创建即时快照的区域。INSTANT_SNAPSHOT_NAME
:即时快照的名称。
删除即时快照
您可以使用 gcloud CLI、Google Cloud 控制台或 REST 删除即时快照。
控制台
在 Google Cloud 控制台中,转到快照页面。
点击即时快照标签页。
选择一个或多个要删除的快照。
点击快照页面顶部的删除。
gcloud
使用 gcloud beta compute instant-snapshots delete
命令删除即时快照,并指定来源可用区或来源区域。
删除可用区级磁盘的即时快照:
gcloud beta compute instant-snapshots delete INSTANT_SNAPSHOT_NAME \ --zone=ZONE
将以下变量替换为相应值:
ZONE
:区域的名称。INSTANT_SNAPSHOT_NAME
:即时快照的名称。
删除区域级磁盘的即时快照:
gcloud beta compute instant-snapshots delete INSTANT_SNAPSHOT_NAME \ --region=REGION
替换以下内容:
REGION
:区域的名称。INSTANT_SNAPSHOT_NAME
:即时快照的名称。
REST
向 instantSnapshots.delete 方法发出的 DELETE
请求,以删除即时快照:
删除可用区级磁盘的即时快照:
DELETE https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instantSnapshots/INSTANT_SNAPSHOT_NAME
将以下变量替换为相应值:
PROJECT_ID
:项目的 ID。ZONE
:区域的名称。INSTANT_SNAPSHOT_NAME
:即时快照的名称。
删除区域级磁盘的即时快照:
DELETE https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instantSnapshots/INSTANT_SNAPSHOT_NAME
将以下变量替换为相应值:
PROJECT_ID
:项目的 ID。REGION
:区域的名称。INSTANT_SNAPSHOT_NAME
:即时快照的名称。
更改即时快照的存储位置
即时快照始终存储在与来源磁盘相同的位置。您无法从其他可用区或区域访问即时快照。但是,您可以根据即时快照创建标准快照,并使用标准快照。
了解如何根据即时快照创建标准快照。
问题排查
如需解决使用即时快照时遇到的问题,请参阅排查即时快照问题。