本文档介绍了如何管理一致性组。一致性组是一种资源政策,用于在同一区域或可用区的多个磁盘之间协调复制。
如需详细了解一致性组,请参阅异步复制简介。
限制
- 单租户节点中的磁盘不支持一致性组。
- 一致性组最多可包含 128 个磁盘。
- 一致性组中的所有磁盘必须与一致性组资源政策位于同一项目中。
- 一致性组中的所有磁盘必须位于同一可用区(对于可用区级磁盘)或同一可用区对(对于区域级磁盘)。
- 一致性组可以包含主磁盘或辅助磁盘,但不能同时包含两者。
- 当磁盘正在复制时,您不能在一致性组中添加主磁盘或从中移除主磁盘。如果您要将主磁盘添加到一致性组或从一致性组中移除主磁盘,则必须先停止复制。您可以随时在一致性组中添加辅助磁盘或从中移除辅助磁盘。
- 您最多可以将属于不同一致性组的 16 个磁盘或不属于一致性组的 16 个磁盘挂接到一个虚拟机。同一个一致性组中的磁盘计为 16 个磁盘上限的一个磁盘。
准备工作
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 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
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
在 Google Cloud 控制台中,前往异步复制页面。
点击一致性组标签页。
点击创建一致性组。
在名称字段中,输入一致性组的名称。
在区域字段中,选择磁盘所在的区域。如果您要将主磁盘添加到一致性组,请选择主区域。如果您要将辅助磁盘添加到一致性组,请选择辅助区域。
点击创建。
CONSISTENCY_GROUP_NAME
:一致性组的名称。REGION
:一致性组所在的区域。如果您要将主磁盘添加到一致性组,请使用主区域。如果要将辅助磁盘添加到一致性组,请使用辅助区域。PROJECT
:包含一致性组的项目。REGION
:一致性组所在的区域。如果要将主磁盘添加到一致性组,请使用主磁盘所在的区域。如果您要将辅助磁盘添加到一致性组,请使用辅助磁盘所在的区域。CONSISTENCY_GROUP_NAME
:一致性组的名称。在 Google Cloud 控制台中,前往异步复制页面。
点击一致性组标签页。
点击您要查看其磁盘的一致性组的名称。系统随即会打开管理一致性组页面。
查看一致性组成员部分,以查看一致性组中包含的所有磁盘。
LOCATION_FLAG
:一致性组中的磁盘位置标志。如果一致性组中的磁盘是区域级磁盘,请使用--region
。如果一致性组中的磁盘是可用区级磁盘,请使用--zone
。LOCATION
:一致性组中的磁盘所在的区域或可用区。对于区域级磁盘,请使用区域。对于可用区磁盘,请使用可用区。CONSISTENCY_GROUP_NAME
:一致性组的名称。使用
disks.get
方法查看一致性组中的可用区级磁盘:GET https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/disks?filter=resourcePolicies%3DCONSISTENCY_GROUP_NAME
使用
regionDisks.get
方法查看一致性组中的区域级磁盘:GET https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/disks?filter=resourcePolicies%3DCONSISTENCY_GROUP_NAME
PROJECT
:包含一致性组的项目ZONE
:一致性组中的磁盘所在的可用区REGION
:一致性组中的磁盘所在的区域CONSISTENCY_GROUP_NAME
:一致性组的名称在 Google Cloud 控制台中,前往异步复制页面。
点击一致性组标签页。
点击您要将磁盘添加到的一致性组的名称。系统随即会打开管理一致性组页面。
点击分配磁盘。系统会打开分配磁盘页面。
选择您要添加到一致性组的磁盘。
点击分配磁盘。出现提示时,点击添加。
DISK_NAME
:要添加到一致性组的磁盘的名称。LOCATION_FLAG
:磁盘的位置标志。对于区域级磁盘,请使用--region
。对于可用区级磁盘,请使用--zone
。LOCATION
:磁盘所在的区域或可用区。对于区域级磁盘,请使用区域。对于可用区磁盘,请使用可用区。CONSISTENCY_GROUP
:一致性组的网址。例如projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
。使用
disks.addResourcePolicies
方法将可用区级磁盘添加到一致性组:POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/LOCATION/disks/DISK_NAME/addResourcePolicies { "resourcePolicies": "CONSISTENCY_GROUP" }
使用
regionDisks.addResourcePolicies
方法将区域级磁盘添加到一致性组:POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/LOCATION/disks/DISK_NAME/addResourcePolicies { "resourcePolicies": "CONSISTENCY_GROUP" }
PROJECT
:包含磁盘的项目。LOCATION
:磁盘的可用区或区域。对于可用区磁盘,请使用可用区。对于区域级磁盘,请使用区域。DISK_NAME
:要添加到一致性组的磁盘的名称。CONSISTENCY_GROUP
:一致性组的网址。例如projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
。对于区域级磁盘,请指定区域,而非可用区。
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
在 Google Cloud 控制台中,前往异步复制页面。
点击一致性组标签页。
点击您要将磁盘添加到的一致性组的名称。系统随即会打开管理一致性组页面。
选择您要从一致性组中移除的磁盘。
点击移除磁盘。出现提示时,点击移除。
DISK_NAME
:要从一致性组中移除的磁盘的名称。LOCATION_FLAG
:磁盘的位置标志。对于区域级磁盘,请使用--region
。对于可用区级磁盘,请使用--zone
。LOCATION
:磁盘所在的区域或可用区。对于区域级磁盘,请使用区域。对于可用区磁盘,请使用可用区。CONSISTENCY_GROUP
:一致性组的网址。例如projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
。从一致性组中移除可用区级磁盘:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/LOCATION/disks/DISK_NAME/removeResourcePolicies { "resourcePolicies": "CONSISTENCY_GROUP" }
从一致性组中移除区域级磁盘:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/LOCATION/disks/DISK_NAME/removeResourcePolicies { "resourcePolicies": "CONSISTENCY_GROUP" }
PROJECT
:包含磁盘的项目。LOCATION
:磁盘的可用区或区域。对于可用区磁盘,请使用可用区。对于区域级磁盘,请使用区域。DISK_NAME
:要从一致性组中移除的磁盘的名称。CONSISTENCY_GROUP
:一致性组的网址。例如projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
。在 Google Cloud 控制台中,前往异步复制页面。
点击一致性组标签页。
选择您要删除的一致性组。
点击删除。系统会打开删除一致性组窗口。
点击删除。
CONSISTENCY_GROUP
:一致性组的名称REGION
:一致性组的区域PROJECT
:包含一致性组的项目REGION
:一致性组的区域CONSISTENCY_GROUP
:一致性组的名称- 了解如何管理使用异步复制的磁盘。
- 了解如何进行故障切换和故障恢复。
- 了解如何监控异步复制性能。
Terraform
如需在本地开发环境中使用本页面上的 Terraform 示例,请安装并初始化 gcloud CLI,然后使用您的用户凭证设置应用默认凭证。
如需了解详情,请参阅 Set up authentication for a local development environment。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
创建一致性组
如果需要跨多个磁盘校准复制,请在主磁盘所在的区域中创建一个一致性组。如果您需要校准磁盘克隆,请在辅助磁盘所在的区域中创建一个一致性组。
使用 Google Cloud 控制台、Google Cloud CLI、REST 或 Terraform 创建一致性组。
控制台
通过执行以下操作创建一致性组:
gcloud
使用
gcloud compute resource-policies create disk-consistency-group
命令创建一致性组:gcloud compute resource-policies create disk-consistency-group CONSISTENCY_GROUP_NAME \ --region=REGION
请替换以下内容:
Go
Java
Node.js
Python
REST
使用
resourcePolicies.insert
方法创建一致性组:POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies { "name": "CONSISTENCY_GROUP_NAME", "diskConsistencyGroupPolicy": { } }
请替换以下内容:
Terraform
如需创建一致性组,请使用
compute_resource_policy
资源。如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
查看一致性组中的磁盘
使用 Google Cloud 控制台、Google Cloud CLI 或 REST 查看一致性组中的磁盘。
控制台
通过执行以下操作查看一致性组中包含的磁盘:
gcloud
使用
gcloud compute disks list
命令查看一致性组中包含的磁盘:gcloud compute disks list \ --LOCATION_FLAG=LOCATION \ --filter=resourcePolicies=CONSISTENCY_GROUP_NAME
请替换以下内容:
Go
Java
列出一致性组中的可用区级磁盘
列出一致性组中的区域级磁盘
Node.js
Python
REST
使用以下方法之一通过查询过滤条件查看一致性组中的磁盘:
请替换以下内容:
向一致性组添加磁盘
如果您要将主磁盘添加到一致性组,则必须先将磁盘添加到一致性组,然后才能开始复制。您可以随时将辅助磁盘添加到一致性组。一致性组中的所有磁盘必须位于同一可用区(对于可用区级磁盘)或同一可用区对(对于区域级磁盘)。
使用 Google Cloud 控制台、Google Cloud CLI、REST 或 Terraform 将磁盘添加到一致性组。
控制台
通过执行以下操作将磁盘添加到一致性组:
gcloud
使用
gcloud compute disks add-resource-policies
命令将磁盘添加到一致性组:gcloud compute disks add-resource-policies DISK_NAME \ --LOCATION_FLAG=LOCATION \ --resource-policies=CONSISTENCY_GROUP
请替换以下内容:
Go
Java
Node.js
Python
REST
使用以下方法之一将磁盘添加到一致性组:
请替换以下内容:
Terraform
如需将磁盘添加到一致性组,请使用
compute_disk_resource_policy_attachment
资源。从一致性组中移除磁盘
在从一致性组中移除磁盘之前,必须停止磁盘复制。
使用 Google Cloud 控制台、Google Cloud CLI 或 REST 从一致性组中移除磁盘。
控制台
通过执行以下操作从一致性组中移除主磁盘:
gcloud
使用
gcloud compute disks remove-resource-policies
命令从一致性组中移除磁盘:gcloud compute disks remove-resource-policies DISK_NAME \ --LOCATION_FLAG=LOCATION \ --resource-policies=CONSISTENCY_GROUP
请替换以下内容:
Go
Java
Node.js
Python
REST
使用
disks.removeResourcePolicies
方法(对于可用区磁盘)或regionDisks.removeResourcePolicies
方法(对于区域)从一致性组中移除磁盘。请替换以下内容:
删除一致性组
使用 Google Cloud 控制台、Google Cloud CLI 或 REST 删除一致性组。
控制台
通过执行以下操作删除一致性:
gcloud
使用
gcloud compute resource-policies delete
命令删除资源政策:gcloud compute resource-policies delete CONSISTENCY_GROUP \ --region=REGION
请替换以下内容:
Go
Java
Node.js
Python
REST
使用
resourcePolicies.delete
方法删除一致性:DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
请替换以下内容:
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-09。
-