管理永久性磁盘异步复制


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

永久性磁盘异步复制功能可用于低 RPO、低 RTO 灾难恢复。如需详细了解异步复制,请参阅永久性磁盘异步复制简介

限制

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

准备工作

  • 如果您需要跨多个磁盘校准复制,请创建一致性组
  • 创建主磁盘
  • 创建辅助磁盘
  • 如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 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. 点击开始复制

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

后续步骤