管理永久性磁盘异步复制


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

永久性磁盘异步复制功能可用于低 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. 安装 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. 点击开始复制

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

后续步骤