本文档介绍如何启动和停止异步复制。
异步复制对于实现低 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
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
在 Google Cloud 控制台中,前往异步复制页面。
点击您要开始向其复制数据的辅助磁盘的名称。
点击开始复制。此时会打开开始复制窗口。
点击开始复制。
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
:包含辅助磁盘的项目。使用
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
:辅助磁盘的名称。在 Google Cloud 控制台中,前往异步复制页面。
点击要停止复制的主磁盘或辅助磁盘的名称。系统随即会打开管理磁盘页面。
点击终止复制。系统会打开终止复制窗口。
点击终止复制。
DISK_NAME
:磁盘的名称。LOCATION_FLAG
:磁盘的位置标志。对于区域级磁盘,请使用--region
。对于可用区级磁盘,请使用--zone
。LOCATION
:磁盘的区域或可用区。对于区域级磁盘,请使用区域。对于可用区磁盘,请使用可用区。使用
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 控制台中,前往异步复制页面。
点击一致性组标签页。
点击您要停止复制的一致性组的名称。系统随即会打开管理一致性组页面。
点击终止复制。系统会打开终止复制窗口。
点击终止复制。
CONSISTENCY_GROUP
:一致性组的网址。例如projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
。LOCATION_FLAG
:一致性组中的磁盘位置标志。对于区域级磁盘,请使用--region
。对于可用区级磁盘,请使用--zone
。LOCATION
:磁盘的区域或可用区。对于区域级磁盘,请使用区域。对于可用区磁盘,请使用可用区。使用
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
。
Terraform
如需在本地开发环境中使用本页面上的 Terraform 示例,请安装并初始化 gcloud CLI,然后使用您的用户凭证设置应用默认凭证。
如需了解详情,请参阅 Set up authentication for a local development environment。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
开始复制
使用 Google Cloud 控制台、Google Cloud CLI、REST 或 Terraform 开始复制。
控制台
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
请替换以下内容:
Go
Java
Node.js
Python
REST
使用以下方法之一开始复制:
请替换以下内容:
Terraform
如需开始在主磁盘与辅助磁盘之间进行复制,请使用
compute_disk_async_replication
资源。如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
停止复制
您可以停止复制单个主磁盘或辅助磁盘,也可以停止复制一致性组中的所有磁盘。如果您停止复制一致性组中的单个磁盘,则该磁盘的复制时间将与一致性组中的其他磁盘不同步。
在故障切换和故障恢复场景中执行停止复制。如果您停止复制,则无法重新开始复制到同一辅助磁盘。如果想要重新开始复制,您必须创建一个新的辅助磁盘并重新开始复制。
停止复制磁盘时,磁盘的复制状态会更改为
STOPPED
。磁盘的复制对中另一个磁盘(相应的主磁盘或辅助磁盘)的复制状态稍后会更新为STOPPED
。如果要避免时间间隔并将另一个磁盘的复制状态立即更新为STOPPED
,则还必须手动停止另一个磁盘的复制。在两个磁盘上停止复制不会影响复制停止的时间,而只会影响磁盘的复制状态。停止单个磁盘的复制
使用 Google Cloud 控制台、Google Cloud CLI 或 REST 停止单个磁盘的复制。
控制台
通过执行以下操作停止复制:
gcloud
使用
gcloud compute disks stop-async-replication
命令停止复制:gcloud compute disks stop-async-replication DISK_NAME \ --LOCATION_FLAG=LOCATION
请替换以下内容:
Go
Java
Node.js
Python
REST
使用以下方法之一停止复制:
请替换以下内容:
Terraform
如需停止在主磁盘和辅助磁盘上进行复制,请移除
compute_disk_async_replication
资源。停止一致性组复制
使用Google Cloud 控制台、Google Cloud CLI 或 REST 停止一致性组中所有磁盘的复制。
控制台
如需停止一致性组中所有磁盘的复制操作,请执行以下操作:
gcloud
使用
gcloud compute disks stop-group-async-replication
命令停止一致性组中所有磁盘的复制操作:gcloud compute disks stop-group-async-replication CONSISTENCY_GROUP \ --LOCATION_FLAG=LOCATION
请替换以下内容:
Go
Java
Node.js
Python
REST
使用以下方法之一停止一致性组中的所有磁盘的复制:
请替换以下内容:
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-09。
-