本文档介绍如何创建和管理即时快照。即时快照可捕获磁盘的内容,并可用于在几分钟内创建新磁盘。
即时快照与其来源磁盘存储在同一可用区或区域中,并且不可用于替代标准快照,后者提供用于灾难恢复的异地备份。了解 Compute Engine 中提供的其他数据保护选项。
如需访问即时快照中的数据,请使用即时快照创建新磁盘。
如果要将即时快照复制到其他位置,请根据即时快照创建标准快照。
准备工作
-
设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 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.
在 Google Cloud 控制台中,转到虚拟机实例页面。
选择要使用的项目。
在名称列中,点击要备份的磁盘挂接到的虚拟机的名称。
在存储部分,通过以下方式之一选择磁盘:
- 如需备份虚拟机的启动磁盘,请在启动磁盘部分中点击所需启动磁盘的名称。
- 如需备份挂接的永久性磁盘卷,请在额外磁盘部分中点击所需的挂接永久性磁盘卷的名称。
如需完成即时快照的创建,请在创建快照页面上执行以下操作:
- 在名称字段中,输入用于标识即时快照的唯一名称。
- 可选:在说明字段中添加有关快照的更多详细信息。
- 在类型字段中,选择即时快照。位置字段会自动设置为与磁盘相同的可用区或区域。
- 在快照来源类型字段中,确认已选中磁盘。
- 可选:如需整理项目,请添加一个或多个标签。
- 点击创建。
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
如需创建即时快照,请使用
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
:来源磁盘的区域。即时快照将在同一区域中创建。
创建可用区级磁盘的即时快照:
在
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
:来源磁盘的名称。
在 Google Cloud 控制台中,转到快照页面。
点击即时快照标签页。此时会显示即时快照的列表。
可选:使用过滤条件字段缩小结果的范围。在过滤条件字段中输入属性名称或值,或从可用属性中选择。
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
列出某个项目中的所有快照,或某个可用区或区域中的快照:
列出特定项目中的所有即时快照:
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
替换为目标区域的名称。
列出某个项目中的快照:
向 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
。
在 Google Cloud 控制台中,转到快照页面。
点击即时快照标签页。此时将显示项目中所有即时快照的列表。
按来源磁盘缩小结果范围:
在 filter_list 过滤条件字段中输入
Source disk:
。此时会显示具有即时快照的磁盘列表。
从值列表中选择磁盘名称。即时快照列表会显示该磁盘的所有即时快照。
如果您在 filter_list 过滤条件字段中没有看到磁盘的名称,请输入磁盘名称的前几个字母以更改您看到的过滤选项列表。
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
使用
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
。
列出可用区级永久性磁盘卷的即时快照:
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
。
在 Google Cloud 控制台中,转到快照页面。
点击即时快照标签页。此时会显示即时快照的列表。
在名称列中,点击即时快照的名称。此时会显示所选快照的即时快照详情页面,其中显示即时快照的属性。
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
如需查看即时快照的相关信息,请使用
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
。
PROJECT_ID
:包含即时快照的项目的名称。ZONE
:创建即时快照的可用区。INSTANT_SNAPSHOT_NAME
:即时快照的名称。PROJECT_ID
:包含即时快照的项目的名称。REGION
:创建即时快照的区域。INSTANT_SNAPSHOT_NAME
:即时快照的名称。在 Google Cloud 控制台中,转到快照页面。
点击即时快照标签页。
选择一个或多个要删除的快照。
点击快照页面顶部的删除。
删除可用区级磁盘的即时快照:
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
:即时快照的名称。
删除可用区级磁盘的即时快照:
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
:即时快照的名称。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
限制
为确保即时快照适合您的应用场景,请查看与即时快照相关的限制。
创建永久性磁盘卷的即时快照
可用区级磁盘的即时快照存储在与来源磁盘相同的可用区中。同样,区域级磁盘的即时快照存储在与磁盘相同的区域中。
您可以使用 gcloud CLI、Google Cloud 控制台或 REST 创建可用区级或区域级 Persistent Disk 卷的即时快照。
控制台
gcloud
REST
如需创建即时快照,请向 instantSnapshots.insert 方法发出
POST
请求。请求响应
如果
POST
请求成功,则响应正文将是一个对象,您可以轮询该对象以获取即时快照的创建状态。如需了解详情,请参阅处理 API 响应。将即时快照恢复到新的永久性磁盘卷
如需恢复使用即时快照备份的数据,请根据即时快照创建新磁盘。
查看某个项目或位置中的即时快照
您可以使用 gcloud CLI、Google Cloud 控制台或 REST 查看项目或位置中的所有即时快照的列表。
控制台
gcloud
您可以使用
gcloud beta compute instant-snapshots list
命令列出特定项目或位置中的即时快照。REST
您可以检索特定项目或位置中的即时快照列表。
查看磁盘的即时快照
您可以使用 gcloud CLI、Google Cloud 控制台或 REST 查看磁盘的即时快照列表。
控制台
gcloud
REST
向 instantSnapshots.list 方法发出
GET
请求,以列出某个可用区级磁盘或区域级磁盘的即时快照。使用
filter=sourceDisk
查询参数指定磁盘的名称。查看即时快照的相关信息
使用 gcloud CLI、Google Cloud 控制台或 REST 检索即时快照的详细信息,例如位置、来源磁盘和大小。
控制台
gcloud
REST
您使用的 API 方法请求取决于您使用的是区域级还是可用区级即时快照。
可用区级即时快照
通过在请求中指定可用区,向 instantSnapshots.get 方法发出
GET
请求:GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instantSnapshots/INSTANT_SNAPSHOT_NAME
将以下变量替换为相应值:
区域级即时快照
通过在请求中指定区域,向 instantSnapshots.get 方法发出
GET
请求:GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instantSnapshots/INSTANT_SNAPSHOT_NAME
将以下变量替换为相应值:
删除即时快照
您可以使用 gcloud CLI、Google Cloud 控制台或 REST 删除即时快照。
控制台
gcloud
使用
gcloud beta compute instant-snapshots delete
命令删除即时快照,并指定来源可用区或来源区域。REST
向 instantSnapshots.delete 方法发出的
DELETE
请求,以删除即时快照:更改即时快照的存储位置
即时快照始终存储在与来源磁盘相同的位置。您无法从其他可用区或区域访问即时快照。但是,您可以根据即时快照创建标准快照,并使用标准快照。
了解如何根据即时快照创建标准快照。
问题排查
如需解决使用即时快照时遇到的问题,请参阅排查即时快照问题。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-10-04。
-