管理一致性组


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

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

限制

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

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

      gcloud init
    2. Set a default region and zone.
    3. REST

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

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

        gcloud init

      如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证

创建一致性组

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

使用 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:一致性组的名称

后续步骤