本文档介绍了如何创建和管理即时快照。即时快照可捕获磁盘的内容,并可用于在几分钟内创建新磁盘。
即时快照与其来源磁盘存储在同一可用区或区域中,并且不可用于替代标准快照,后者提供用于灾难恢复的异地备份。了解 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.
-
Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) -
连接到可以作为服务账号运行的虚拟机:Service Account User (v1) (
roles/iam.serviceAccountUser
) -
创建即时快照:
compute.instantSnapshots.create
-
查看即时快照:
compute.instantSnapshots.list
-
查看即时快照详情:
compute.instantSnapshots.get
-
删除即时快照:
compute.instantSnapshots.delete
在 Google Cloud 控制台中,转到虚拟机实例页面。
选择要使用的项目。
在名称列中,点击要备份的磁盘挂接到的虚拟机的名称。
在存储部分,通过以下方式之一选择磁盘:
- 如需备份虚拟机的启动磁盘,请在启动磁盘部分中点击启动磁盘的名称。
- 如需备份挂接的 Persistent Disk 卷,请在额外磁盘部分中点击挂接的 Persistent Disk 卷的名称。
如需完成即时快照的创建,请在创建快照页面上执行以下操作:
- 在名称字段中,输入用于标识即时快照的唯一名称。
- 可选:在说明字段中添加有关快照的更多详细信息。
- 在类型字段中,选择即时快照。位置字段会自动设置为与磁盘相同的可用区或区域。
- 在快照来源类型字段中,确认已选中磁盘。
- 可选:如需整理项目,请添加一个或多个标签。
- 点击创建。
INSTANT_SNAPSHOT_NAME
:即时快照的唯一名称。SOURCE_DISK_NAME
:来源磁盘的名称。SOURCE_DISK_ZONE
:来源磁盘的可用区。即时快照将在同一可用区中创建。INSTANT_SNAPSHOT_NAME
:即时快照的唯一名称。SOURCE_DISK_NAME
:来源磁盘的名称。SOURCE_DISK_REGION
:来源磁盘的区域。即时快照将在同一区域中创建。创建可用区级磁盘的即时快照:
在
POST
请求的网址中指定可用区。在请求正文中,指定新快照的名称和来源磁盘的网址。POST https://compute.googleapis.com/compute/v1/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/v1/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 控制台中,转到快照页面。
点击即时快照标签页。此时会显示即时快照的列表。
可选:使用 filter_list 过滤条件字段缩小结果范围。在 filter_list 过滤条件字段中输入属性名称或值,或从可用属性中选择。
列出特定项目中的所有即时快照:
gcloud compute instant-snapshots list --project=PROJECT_ID
将
PROJECT_ID
替换为相应项目的 ID。使用
--zones
参数列出某个可用区中的即时快照:gcloud compute instant-snapshots list --zones=ZONE
将
ZONE
替换为目标可用区的名称。使用
--regions
参数列出某个区域中的区域级即时快照:gcloud compute instant-snapshots list --regions=REGION
将
REGION
替换为目标区域的名称。列出某个项目中的快照:
向 instantSnapshots.aggregatedList 方法发出
GET
请求:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/instantSnapshots
将
PROJECT_ID
替换为相应项目的 ID。列出某个可用区或区域中的即时快照:
向 instantSnapshots.list 方法发出
GET
请求。列出某个可用区中的即时快照:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/SOURCE_ZONE//instantSnapshots
替换以下内容:
PROJECT_ID
:项目的 ID。SOURCE_ZONE
:目标可用区,例如us-west1-a
。
列出某个区域中的区域级即时快照:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/SOURCE_REGION/instantSnapshots
替换以下内容:
PROJECT_ID
:项目的 ID。SOURCE_REGION
:目标区域,例如us-west1
。
在 Google Cloud 控制台中,转到快照页面。
点击即时快照标签页。此时将显示项目中所有即时快照的列表。
按来源磁盘缩小结果范围:
在 filter_list 过滤条件字段中输入
Source disk:
。此时会显示具有即时快照的磁盘列表。
从值列表中选择磁盘名称。即时快照列表会显示该磁盘的所有即时快照。
如果您在 filter_list 过滤条件字段中没有看到磁盘的名称,请输入磁盘名称的前几个字母以更改您看到的过滤选项列表。
使用
gcloud compute instant-snapshots list
命令和--filter
参数列出磁盘的即时快照:列出某个可用区级磁盘的即时快照:
gcloud 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 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/v1/projects/PROJECT_ID/zones/SOURCE_ZONE/instantSnapshots?filter=sourceDisk:'https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/SOURCE_ZONE/disks/DISK_NAME'
替换以下内容:
PROJECT_ID
:项目的 ID。SOURCE_ZONE
:目标可用区,例如us-west1-a
。DISK_NAME
:来源磁盘的名称,例如disk-1
。
列出区域级永久性磁盘卷的即时快照:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/SOURCE_REGION/instantSnapshots?filter=sourceDisk:'https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/SOURCE_REGION/disks/DISK_NAME'
替换以下内容:
PROJECT_ID
:项目的 ID。SOURCE_REGION
:目标区域,例如us-west1
。DISK_NAME
:来源磁盘的名称,例如disk-1
。
在 Google Cloud 控制台中,转到快照页面。
点击即时快照标签页。此时会显示即时快照的列表。
在名称列中,点击即时快照的名称。此时会显示所选快照的即时快照详情页面,其中显示即时快照的属性。
如需查看即时快照的相关信息,请使用
gcloud compute instant-snapshots describe
命令。如果是可用区级磁盘的快照,请使用
--zone
标志指定可用区:gcloud compute instant-snapshots describe INSTANT_SNAPSHOT_NAME \ --zone=ZONE
将以下变量替换为相应值:
INSTANT_SNAPSHOT_NAME
:即时快照的名称。ZONE
:在其中创建即时快照的可用区,例如us-west1-a
。
如果是区域级磁盘的快照,请使用
--region
标志指定区域:gcloud 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 compute instant-snapshots delete INSTANT_SNAPSHOT_NAME \ --zone=ZONE
将以下变量替换为相应值:
ZONE
:区域的名称。INSTANT_SNAPSHOT_NAME
:即时快照的名称。
删除区域级磁盘的即时快照:
gcloud compute instant-snapshots delete INSTANT_SNAPSHOT_NAME \ --region=REGION
替换以下内容:
REGION
:区域的名称。INSTANT_SNAPSHOT_NAME
:即时快照的名称。
删除可用区级磁盘的即时快照:
DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instantSnapshots/INSTANT_SNAPSHOT_NAME
将以下变量替换为相应值:
PROJECT_ID
:项目的 ID。ZONE
:区域的名称。INSTANT_SNAPSHOT_NAME
:即时快照的名称。
删除区域级磁盘的即时快照:
DELETE https://compute.googleapis.com/compute/v1/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 时进行身份验证。
所需的角色和权限
如需获得创建即时快照所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色可提供创建即时快照所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
创建即时快照需要以下权限:
创建永久性磁盘卷的即时快照
可用区级磁盘的即时快照存储在与来源磁盘相同的可用区中。同样,区域级磁盘的即时快照存储在与磁盘相同的区域中。
您可以使用 gcloud CLI、Google Cloud 控制台或 REST 创建可用区级或区域级 Persistent Disk 卷的即时快照。
控制台
gcloud
如需创建即时快照,请使用
gcloud compute instant-snapshots create
命令:可用区级磁盘
如需创建可用区级磁盘的即时快照,请运行以下命令:
gcloud compute instant-snapshots create INSTANT_SNAPSHOT_NAME \ --source-disk=SOURCE_DISK_NAME \ --zone=SOURCE_DISK_ZONE
替换以下内容:
区域级磁盘
如需创建区域级磁盘的即时快照,请运行以下命令:
gcloud compute instant-snapshots create INSTANT_SNAPSHOT_NAME \ --source-disk=SOURCE_DISK_NAME \ --region=SOURCE_DISK_REGION
替换以下内容:
REST
如需创建即时快照,请向 instantSnapshots.insert 方法发出
POST
请求。请求响应
如果
POST
请求成功,则响应正文将是一个对象,您可以轮询该对象以获取即时快照的创建状态。如需了解详情,请参阅处理 API 响应。将即时快照恢复到新的永久性磁盘卷
如需恢复使用即时快照备份的数据,请根据即时快照创建新磁盘。
查看某个项目或位置中的即时快照
您可以使用 gcloud CLI、Google Cloud 控制台或 REST 查看项目或位置中的所有即时快照的列表。
控制台
gcloud
您可以使用
gcloud 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/v1/projects/PROJECT_ID/zones/ZONE/instantSnapshots/INSTANT_SNAPSHOT_NAME
将以下变量替换为相应值:
区域级即时快照
通过在请求中指定区域,向 instantSnapshots.get 方法发出
GET
请求:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instantSnapshots/INSTANT_SNAPSHOT_NAME
将以下变量替换为相应值:
删除即时快照
您可以使用 gcloud CLI、Google Cloud 控制台或 REST 删除即时快照。
控制台
gcloud
使用
gcloud compute instant-snapshots delete
命令删除即时快照,并指定来源可用区或来源区域。REST
向 instantSnapshots.delete 方法发出的
DELETE
请求,以删除即时快照:更改即时快照的存储位置
即时快照始终存储在与来源磁盘相同的位置。您无法从其他可用区或区域访问即时快照。但是,您可以根据即时快照创建标准快照,并使用标准快照。
了解如何根据即时快照创建标准快照。
问题排查
如需解决使用即时快照时遇到的问题,请参阅排查即时快照问题。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-12-24。
-