本文档介绍如何启动和停止永久性磁盘异步复制。
永久性磁盘异步复制功能可用于低 RPO、低 RTO 灾难恢复。如需详细了解异步复制,请参阅永久性磁盘异步复制简介。
限制
- 主磁盘一次只能复制到一个辅助磁盘。
- 复制停止后,您将无法继续复制到同一磁盘。您必须创建新的辅助磁盘并重新开始复制。
- 辅助磁盘在复制过程中无法挂接、删除或截取快照。
- 如果您使用区域磁盘作为辅助磁盘,并且辅助磁盘的其中一个可用区发生服务中断故障,则从主磁盘复制到辅助磁盘的操作将失败。
准备工作
- 如果您需要跨多个磁盘校准复制,请创建一致性组。
- 创建主磁盘。
- 创建辅助磁盘。
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。
选择标签页以了解您打算如何使用本页面上的示例:
控制台
当您使用 Google Cloud 控制台访问 Google Cloud 服务和 API 时,无需设置身份验证。
gcloud
-
安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:
gcloud init
- 设置默认区域和可用区。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
-
开始复制
使用 Google Cloud 控制台、Google Cloud CLI 或 REST 开始复制。
控制台
在 Google Cloud 控制台中,转到异步复制页面。
点击要开始复制到的辅助磁盘的名称。
点击开始复制。此时会打开开始复制窗口。
点击开始复制。
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 停止单个磁盘的复制。
控制台
执行以下操作,停止复制:
在 Google Cloud 控制台中,转到异步复制页面。
点击要停止复制的主磁盘或辅助磁盘的名称。管理磁盘页面会打开。
点击终止复制。此时会打开终止复制窗口。
点击终止复制。
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 停止一致性组中所有磁盘的复制。
控制台
通过执行以下操作,停止对一致性组中的所有磁盘进行复制:
在 Google Cloud 控制台中,转到异步复制页面。
点击一致性组标签页。
点击您要停止复制的一致性组的名称。管理一致性组页面会打开。
点击终止复制。此时会打开终止复制窗口。
点击终止复制。
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
。
后续步骤
- 了解如何进行故障切换和故障恢复。
- 了解如何监控永久性磁盘异步复制性能。