管理一致性组


本文档介绍了如何管理一致性组。一致性组是在同一区域或可用区中跨多个磁盘校准复制的资源政策。

如需详细了解一致性组,请参阅永久性磁盘异步复制简介

限制

  • 单租户节点中的磁盘不支持一致性组。
  • 一致性组最多可以有 64 个磁盘。
  • 一致性组中的所有磁盘必须与一致性组资源政策位于同一项目中。
  • 一致性组中的所有磁盘必须位于同一可用区(对于可用区磁盘)或同一可用区对(对于区域磁盘)。
  • 一致性组可以包含主磁盘或辅助磁盘,但不能同时包含这两者。
  • 当磁盘正在复制时,您不能在一致性组中添加主磁盘或从中移除主磁盘。如果您要在一致性组中添加主磁盘或从中移除主磁盘,则必须先停止复制。您可以随时在一致性组中添加辅助磁盘或从中移除辅助磁盘。
  • 您最多可以将属于不同一致性组的 16 个磁盘或不在一致性组中的 16 个磁盘挂接到一个虚拟机。同一个一致性组中的磁盘将计为 16 个磁盘上限的一个磁盘。

准备工作

  • 设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。

    选择标签页以了解您打算如何使用本页面上的示例:

    控制台

    当您使用 Google Cloud 控制台访问 Google Cloud 服务和 API 时,无需设置身份验证。

    gcloud

    1. 安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:

      gcloud init
    2. 设置默认区域和可用区

    REST

    如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。

      安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:

      gcloud init

创建一致性组

如果需要跨多个磁盘校准复制,请在主磁盘所在的区域中创建一个一致性组。如果您需要校准磁盘克隆,请在辅助磁盘所在的区域中创建一个一致性组。

使用 Google Cloud 控制台、Google Cloud CLI 或 REST 创建一致性组。

控制台

通过执行以下操作来创建一致性组:

  1. 在 Google Cloud 控制台中,转到异步复制页面。

    转到“异步复制”

  2. 点击一致性组标签页。

  3. 点击创建一致性组

  4. 名称字段中,输入一致性组的名称。

  5. 区域字段中,选择磁盘所在的区域。如果要将主磁盘添加到一致性组,请选择主要区域。如果要将辅助磁盘添加到一致性组,请选择次要区域。

  6. 点击创建

gcloud

使用 gcloud compute resource-policies create disk-consistency-group 命令创建一致性组:

gcloud compute resource-policies create disk-consistency-group CONSISTENCY_GROUP_NAME \
    --region=REGION

请替换以下内容:

  • CONSISTENCY_GROUP_NAME:一致性组的名称。
  • REGION:一致性组的区域。如果要将主磁盘添加到一致性组,请使用主要区域。如果要将辅助磁盘添加到一致性组,请使用辅助区域。

REST

使用 resourcePolicies.insert 方法创建一致性组:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies
{
 "name": "CONSISTENCY_GROUP_NAME",
 "diskConsistencyGroupPolicy": {
  }
}

请替换以下内容:

  • PROJECT:包含一致性组的项目。
  • REGION:一致性组的区域。如果要将主磁盘添加到一致性组,请使用主磁盘所在的区域。如果要将辅助磁盘添加到一致性组,请使用辅助磁盘所在的区域。
  • CONSISTENCY_GROUP_NAME:一致性组的名称。

查看一致性组中的磁盘

使用 Google Cloud 控制台、Google Cloud CLI 或 REST 查看一致性组中的磁盘。

控制台

执行以下操作,查看一致性组中包含的磁盘:

  1. 在 Google Cloud 控制台中,转到异步复制页面。

    转到“异步复制”

  2. 点击一致性组标签页。

  3. 点击要查看其磁盘的一致性组的名称。管理一致性组页面会打开。

  4. 查看一致性组成员部分,了解一致性组中包含的所有磁盘。

gcloud

使用 gcloud compute disks list 命令查看一致性组中包含的磁盘:

gcloud compute disks list \
    --LOCATION_FLAG=LOCATION \
    --filter=resourcePolicies=CONSISTENCY_GROUP_NAME

请替换以下内容:

  • LOCATION_FLAG:一致性组中的磁盘位置标志。如果一致性组中的磁盘是区域性的,请使用 --region。如果一致性组中的磁盘是可用区级的,请使用 --zone
  • LOCATION:一致性组中磁盘的区域或可用区。对于区域磁盘,请使用区域。对于可用区磁盘,请使用可用区。
  • CONSISTENCY_GROUP_NAME:一致性组的名称。

REST

使用以下方法之一通过查询过滤条件查看一致性组中的磁盘:

  • 使用 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 控制台、Google Cloud CLI 或 REST 将磁盘添加到一致性组。

控制台

执行以下操作,将磁盘添加到一致性组:

  1. 在 Google Cloud 控制台中,转到异步复制页面。

    转到“异步复制”

  2. 点击一致性组标签页。

  3. 点击要向其添加磁盘的一致性组的名称。管理一致性组页面会打开。

  4. 点击分配磁盘。此时会打开分配磁盘页面。

  5. 选择要添加到一致性组的磁盘。

  6. 点击分配磁盘。出现提示时,点击添加

gcloud

使用 gcloud compute disks add-resource-policies 命令将磁盘添加到一致性组。

gcloud compute disks add-resource-policies DISK_NAME \
    --LOCATION_FLAG=LOCATION \
    --resource-policies=CONSISTENCY_GROUP

请替换以下内容:

  • DISK_NAME:要添加到一致性组的磁盘的名称。
  • LOCATION_FLAG:磁盘的位置标志。对于区域磁盘,请使用 --region。对于可用区磁盘,请使用 --zone
  • LOCATION:磁盘的区域或可用区。对于区域磁盘,请使用区域。对于可用区磁盘,请使用可用区。
  • CONSISTENCY_GROUP:一致性组的网址。例如 projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME

REST

使用以下方法之一将磁盘添加到一致性组:

  • 使用 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

从一致性组中移除磁盘

在从一致性组中移除磁盘之前,必须停止磁盘复制

使用 Google Cloud 控制台、Google Cloud CLI 或 REST 从一致性组中移除磁盘。

控制台

执行以下操作,从一致性组中移除主磁盘:

  1. 在 Google Cloud 控制台中,转到异步复制页面。

    转到“异步复制”

  2. 点击一致性组标签页。

  3. 点击要向其添加磁盘的一致性组的名称。管理一致性组页面会打开。

  4. 选择要从一致性组中移除的磁盘。

  5. 点击移除磁盘。出现提示时,点击移除

gcloud

使用 gcloud compute disks remove-resource-policies 命令从一致性组中移除磁盘:

gcloud compute disks remove-resource-policies DISK_NAME \
    --LOCATION_FLAG=LOCATION \
    --resource-policies=CONSISTENCY_GROUP

请替换以下内容:

  • DISK_NAME:要从一致性组中移除的磁盘的名称。
  • LOCATION_FLAG:磁盘的位置标志。对于区域磁盘,请使用 --region。对于可用区磁盘,请使用 --zone
  • LOCATION:磁盘的区域或可用区。对于区域磁盘,请使用区域。对于可用区磁盘,请使用可用区。
  • CONSISTENCY_GROUP:一致性组的网址。例如 projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME

REST

使用 disks.removeResourcePolicies 方法(对于可用区磁盘)或 regionDisks.removeResourcePolicies 方法(对于区域)从一致性组中移除磁盘。

  • 从一致性组中移除可用区磁盘:

    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 控制台、Google Cloud CLI 或 REST 删除一致性组。

控制台

通过执行以下操作删除一致性:

  1. 在 Google Cloud 控制台中,转到异步复制页面。

    转到“异步复制”

  2. 点击一致性组标签页。

  3. 选择要删除的一致性组。

  4. 点击删除。此时会打开删除一致性组窗口。

  5. 点击删除

gcloud

使用 gcloud compute resource-policies delete 命令删除资源政策:

gcloud compute resource-policies delete CONSISTENCY_GROUP \
    --region=REGION

请替换以下内容:

  • CONSISTENCY_GROUP:一致性组的名称
  • REGION:一致性组的区域

REST

使用 resourcePolicies.delete 方法删除一致性:

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME

请替换以下内容:

  • PROJECT:包含一致性组的项目
  • REGION:一致性组的区域
  • CONSISTENCY_GROUP:一致性组的名称

后续步骤