管理永久性磁盘异步复制


本文档介绍如何启动和停止永久性磁盘异步复制。

PD 异步复制非常适合实现低 RPO 和低 RTO 的灾难恢复。如需详细了解异步复制,请参阅永久性磁盘异步复制简介

限制

  • 主磁盘一次只能复制到一个辅助磁盘。
  • 复制停止后,您无法恢复到同一磁盘的复制操作。您必须创建新的辅助磁盘并重新开始复制。
  • 辅助磁盘在复制过程中无法挂接、删除或截取快照。
  • 如果您使用区域磁盘作为辅助磁盘,并且辅助磁盘的其中一个可用区发生服务中断故障,则从主磁盘复制到辅助磁盘的操作将失败。

准备工作

  • 如果需要跨多个磁盘校准复制,请创建一致性组
  • 创建主磁盘
  • 创建辅助磁盘
  • 如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 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. Install the Google Cloud CLI, then initialize it by running the following command:

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

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

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

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

开始复制

使用 Google Cloud 控制台、Google Cloud CLI 或 REST 开始复制。

控制台

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

    前往“异步复制”

  2. 点击您要开始向其复制数据的辅助磁盘的名称。

  3. 点击开始复制。此时会打开开始复制窗口。

  4. 点击开始复制

gcloud

使用 gcloud compute disks start-async-replication 命令启动复制:

gcloud compute disks start-async-replication PRIMARY_DISK_NAME \
    --PRIMARY_LOCATION_FLAG=PRIMARY_LOCATION \
    --secondary-disk=SECONDARY_DISK_NAME \
    --SECONDARY_LOCATION_FLAG=SECONDARY_LOCATION \
    --secondary-disk-project=SECONDARY_PROJECT

请替换以下内容:

  • PRIMARY_DISK_NAME:主磁盘的名称。
  • PRIMARY_LOCATION_FLAG:主磁盘的位置标志。对于区域级磁盘,请使用 --region。对于可用区级磁盘,请使用 --zone
  • PRIMARY_LOCATION:主磁盘的区域或可用区。对于区域级磁盘,请使用区域。对于可用区磁盘,请使用可用区。
  • SECONDARY_DISK_NAME:辅助磁盘的名称。
  • SECONDARY_LOCATION_FLAG:辅助磁盘的位置标志。对于区域级磁盘,请使用 --secondary-disk-region。对于可用区级磁盘,请使用 --secondary-disk-zone
  • SECONDARY_LOCATION:辅助磁盘的区域或可用区。对于区域级磁盘,请使用区域。对于可用区磁盘,请使用可用区。
  • SECONDARY_PROJECT:包含辅助磁盘的项目。

REST

使用以下方法之一开始复制:

  • 使用 disks.startAsyncReplication 方法开始复制可用区磁盘:

    POST https://compute.googleapis.com/compute/v1/projects/PRIMARY_DISK_PROJECT/zones/PRIMARY_LOCATION/disks/PRIMARY_DISK_NAME/startAsyncReplication
    
    {
    "asyncSecondaryDisk": "projects/SECONDARY_DISK_PROJECT/SECONDARY_LOCATION_PARAMETER/SECONDARY_LOCATION/disks/SECONDARY_DISK_NAME"
    }
    
  • 使用 regionDisks.startAsyncReplication 方法开始复制区域级磁盘:

    POST https://compute.googleapis.com/compute/v1/projects/PRIMARY_DISK_PROJECT/regions/PRIMARY_LOCATION/regionDisks/PRIMARY_DISK_NAME/startAsyncReplication
    
    {
    "asyncSecondaryDisk": "projects/SECONDARY_DISK_PROJECT/SECONDARY_LOCATION_PARAMETER/SECONDARY_LOCATION/disks/SECONDARY_DISK_NAME"
    }
    

请替换以下内容:

  • PRIMARY_DISK_PROJECT:包含主磁盘的项目。
  • PRIMARY_LOCATION:主磁盘的区域或可用区。对于区域级磁盘,请使用区域。对于可用区磁盘,请使用可用区。
  • PRIMARY_DISK_NAME:主磁盘的名称。
  • SECONDARY_DISK_PROJECT:包含辅助磁盘的项目。
  • SECONDARY_LOCATION_PARAMETER:辅助磁盘的位置参数。对于区域级磁盘,请使用 regions。对于可用区级磁盘,请使用 zones
  • SECONDARY_LOCATION:辅助磁盘的区域或可用区。对于区域级磁盘,请使用区域。对于可用区磁盘,请使用可用区。
  • SECONDARY_DISK_NAME:辅助磁盘的名称。

停止复制

您可以停止复制单个主磁盘或辅助磁盘,也可以停止复制一致性组中的所有磁盘。如果您停止复制一致性组中的单个磁盘,则该磁盘的复制时间将与一致性组中的其他磁盘不同步。

故障切换和故障恢复场景中执行停止复制。如果您停止复制,则无法重新开始复制到同一辅助磁盘。如果想要重新开始复制,您必须创建一个新的辅助磁盘并重新开始复制。

停止复制磁盘时,磁盘的复制状态会更改为 STOPPED。磁盘的复制对中另一个磁盘(相应的主磁盘或辅助磁盘)的复制状态稍后会更新为 STOPPED。如果要避免时间间隔并将另一个磁盘的复制状态立即更新为 STOPPED,则还必须手动停止另一个磁盘的复制。在两个磁盘上停止复制不会影响复制停止的时间,而只会影响磁盘的复制状态。

停止单个磁盘的复制

使用 Google Cloud 控制台、Google Cloud CLI 或 REST 停止单个磁盘的复制。

控制台

通过执行以下操作停止复制:

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

    前往“异步复制”

  2. 点击要停止复制的主磁盘或辅助磁盘的名称。系统随即会打开管理磁盘页面。

  3. 点击终止复制。系统会打开终止复制窗口。

  4. 点击终止复制

gcloud

使用 gcloud compute disks stop-async-replication 命令停止复制:

gcloud compute disks stop-async-replication DISK_NAME \
    --LOCATION_FLAG=LOCATION

请替换以下内容:

  • DISK_NAME:磁盘的名称。
  • LOCATION_FLAG:磁盘的位置标志。对于区域级磁盘,请使用 --region。对于可用区级磁盘,请使用 --zone
  • LOCATION:磁盘的区域或可用区。对于区域级磁盘,请使用区域。对于可用区磁盘,请使用可用区。

REST

使用以下方法之一停止复制:

  • 使用 disks.stopAsyncReplication 方法停止复制可用区级磁盘:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/LOCATION/disks/DISK_NAME/stopAsyncReplication
    {
    }
    
  • 使用 regionDisks.stopAsyncReplication 方法停止复制区域级磁盘:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/LOCATION/regionDisks/DISK_NAME/stopAsyncReplication
    {
    }
    

请替换以下内容:

  • PROJECT:包含磁盘的项目。
  • DISK_NAME:磁盘的名称。
  • LOCATION:磁盘的可用区或区域。对于可用区磁盘,请使用可用区。对于区域级磁盘,请使用区域。

停止一致性组复制

使用 Google Cloud 控制台、Google Cloud CLI 或 REST 停止一致性组中所有磁盘的复制。

控制台

如需停止一致性组中所有磁盘的复制操作,请执行以下操作:

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

    前往“异步复制”

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

  3. 点击您要停止复制的一致性组的名称。系统随即会打开管理一致性组页面。

  4. 点击终止复制。系统会打开终止复制窗口。

  5. 点击终止复制

gcloud

使用 gcloud compute disks stop-group-async-replication 命令停止一致性组中所有磁盘的复制操作:

gcloud compute disks stop-group-async-replication CONSISTENCY_GROUP \
--LOCATION_FLAG=LOCATION

请替换以下内容:

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

REST

使用以下方法之一停止一致性组中的所有磁盘的复制:

  • 使用 disks.stopGroupAsyncReplication 方法停止复制可用区级磁盘:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/LOCATION/disks/stopGroupAsyncReplication
    {
    "resourcePolicy": "CONSISTENCY_GROUP"
    }
    
  • 使用 regionDisks.stopGroupAsyncReplication 方法停止复制区域级磁盘:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/LOCATION/regionDisks/DISK_NAME/stopAsyncReplication
    {
    "resourcePolicy": "CONSISTENCY_GROUP"
    }
    

请替换以下内容:

  • DISK_NAME:磁盘的名称
  • LOCATION:磁盘的可用区或区域。对于可用区磁盘,请使用可用区。对于区域级磁盘,请使用区域。
  • CONSISTENCY_GROUP:一致性组的网址。例如 projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME

后续步骤