本文档介绍了如何配置异步复制。异步复制对于实现低 RPO 和低 RTO 的灾难恢复非常有用。
如需启用异步磁盘复制,请完成以下步骤:
限制
- 辅助磁盘在创建时必须为空白磁盘。您不能通过映像、快照或其他磁盘创建辅助磁盘。
- Hyperdisk ML 或 Hyperdisk Throughput 不支持异步复制。
- 您无法在 Google Cloud 控制台中为 Hyperdisk 配置异步复制。您必须使用 Google Cloud CLI、Terraform 或 REST。
准备工作
- 选择区域对。
- (可选)创建一致性组。
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 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.
- 选择区域对以及主要区域和次要区域。
- 可选:如果您需要跨一组磁盘协调复制,请在主要区域中创建一致性组。您必须先将主磁盘添加到一致性组,然后才能开始复制。
- 创建或选择主磁盘。您可以视需要将这些磁盘添加到一致性组。
- 创建新的空白辅助磁盘。
- 磁盘类型:您必须使用以下磁盘类型之一:
- 平衡永久性磁盘
- 高性能 (SSD) 永久性磁盘
- 平衡 Hyperdisk
- Hyperdisk Balanced 高可用性
- Hyperdisk Extreme
- 大小:小于或等于 64 TiB。
- 加密类型: Google-owned and Google-managed encryption keys 或客户管理的加密密钥 (CMEK)。
- 多写入者模式:您可以为处于多写入者模式的 Hyperdisk Balanced 和 Hyperdisk Balanced 高可用性磁盘启用异步复制。对于所有其他磁盘类型,磁盘必须处于读写模式。
- 位置:位于受支持的区域(或受支持区域内的可用区)。
在创建虚拟机时创建主启动磁盘。(可选)使用 gcloud CLI 或 REST 创建虚拟机并指定以下其中一项,以将磁盘添加到一致性组:
如果您使用 gcloud CLI 创建虚拟机,请指定
--create-disk
标志:--create-disk=disk-resource-policy=projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
如果您使用 REST 创建虚拟机,请指定
resourcePolicies
属性:"disks": { … "resourcePolicies": "projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME" }
在创建虚拟机时创建主数据磁盘。(可选)使用 gcloud CLI 或 REST 创建虚拟机并指定以下其中一项,以将磁盘添加到一致性组:
如果您使用 gcloud CLI 创建虚拟机,请指定
--create-disk
标志:--create-disk=disk-resource-policy=projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
如果您使用 REST 创建虚拟机,请指定
resourcePolicies
属性:"disks": { … "resourcePolicies": "projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME" }
在不创建虚拟机的情况下创建主数据磁盘。(可选)使用Google Cloud 控制台、gcloud CLI 或 REST 创建虚拟机并指定以下其中一项,以将磁盘添加到一致性组:
如果您使用 Google Cloud 控制台创建磁盘,请从一致性组下拉菜单中选择一致性组。
如果您使用 gcloud CLI 创建磁盘,请指定
--resource-policies
标志:--resource-policies=projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
如果您使用 REST 创建磁盘,请指定
resourcePolicies
属性:"disks": { … "resourcePolicies": "projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME" }
替换以下内容:
PROJECT
:包含一致性组的项目REGION
:一致性组所在的区域CONSISTENCY_GROUP_NAME
:要将磁盘添加到的一致性组的名称
- 对于永久性磁盘异步复制,您可以使用Google Cloud 控制台、gcloud CLI 或 REST 创建辅助磁盘。
对于 Hyperdisk 异步复制,您可以使用 gcloud CLI、Terraform 或 REST。
在 Google Cloud 控制台中,前往磁盘页面。
点击主磁盘的名称。系统随即会打开管理磁盘页面。
点击创建辅助磁盘。
在名称字段中,输入磁盘的名称。
在位置部分中,执行以下操作之一:
如需创建区域级磁盘,请执行以下操作:
- 选择区域级。
- 在区域字段中,选择与主磁盘的区域相对应的区域。
- 在可用区字段中,选择主可用区。
- 在副本可用区字段中,选择副本可用区。
如需创建可用区磁盘,请执行以下操作:
- 选择单个可用区。
- 在区域字段中,选择与主磁盘的区域相对应的区域。
- 在可用区字段中,选择一个可用区。
点击创建。Compute Engine 会创建磁盘并开始复制。
SECONDARY_DISK_NAME
:辅助磁盘的名称。SECONDARY_LOCATION_FLAG
:辅助磁盘的位置标志。如需创建区域级辅助磁盘,请使用--region
。如需创建可用区级辅助磁盘,请使用--zone
。SECONDARY_LOCATION
:辅助磁盘的区域或可用区。- 如需创建区域级磁盘,请使用与主磁盘的区域相对应的区域。
- 如需创建可用区级磁盘,请使用与主磁盘的区域相对应的区域内的可用区。
SIZE
:新磁盘的大小(以 GB 为单位)。 该大小必须与主磁盘的大小相同。可接受的大小范围介于 10 GB 到 2,000 GB 之间(以 1 GB 为增量)。PRIMARY_DISK_NAME
:辅助磁盘从中接收数据的主磁盘的名称。PRIMARY_LOCATION_FLAG
:主磁盘的位置标志。- 对于区域级主磁盘,请使用
--primary-disk-region
。 - 对于可用区级主磁盘,请使用
--primary-disk-zone
。
- 对于区域级主磁盘,请使用
PRIMARY_LOCATION
:主磁盘的区域或可用区。- 对于区域级磁盘,请使用区域。
- 对于可用区级磁盘,请使用可用区。
PRIMARY_PROJECT
:包含主磁盘的项目。ZONE_1
:区域级磁盘复制到的可用区之一。必须是指定区域内的可用区,并且必须与ZONE_2
不同。ZONE_2
:区域级磁盘复制到的可用区之一。必须是指定区域内的可用区,并且必须与ZONE_1
不同。如需创建可用区级辅助磁盘,请使用
disks.insert
方法:POST https://compute.googleapis.com/compute/v1/projects/SECONDARY_DISK_PROJECT/zones/SECONDARY_DISK_LOCATION/disks { "name": "SECONDARY_DISK_NAME", "sizeGb": "DISK_SIZE", "type": "DISK_TYPE" "asyncPrimaryDisk": { "disk": "projects/PRIMARY_DISK_PROJECT/PRIMARY_DISK_LOCATION_PARAMETER/PRIMARY_DISK_LOCATION/disks/PRIMARY_DISK_NAME" } }
如需创建区域级辅助磁盘,请使用
regionDisks.insert
方法:POST https://compute.googleapis.com/compute/v1/projects/SECONDARY_DISK_PROJECT/regions/SECONDARY_DISK_LOCATION/disks { "name": "SECONDARY_DISK_NAME", "sizeGb": "DISK_SIZE", "type": "DISK_TYPE" "asyncPrimaryDisk": { "disk": "projects/PRIMARY_DISK_PROJECT/PRIMARY_DISK_LOCATION_PARAMETER/PRIMARY_DISK_LOCATION/disks/PRIMARY_DISK_NAME" } }
SECONDARY_DISK_PROJECT
:辅助磁盘的项目。SECONDARY_DISK_LOCATION
:辅助磁盘的区域或可用区。- 对于区域级磁盘,请使用区域。
- 对于可用区级磁盘,请使用可用区。
SECONDARY_DISK_NAME
:辅助磁盘的名称。DISK_SIZE
:辅助磁盘的大小。必须与主磁盘的大小相同。PRIMARY_DISK_PROJECT
:包含主磁盘的项目。PRIMARY_DISK_LOCATION_PARAMETER
:主磁盘的位置参数。- 对于区域级主磁盘,请使用
regions
。 - 对于可用区级主磁盘,请使用
zones
。
- 对于区域级主磁盘,请使用
PRIMARY_DISK_LOCATION
:主磁盘的区域或可用区。对于区域级磁盘,请使用区域。对于可用区级磁盘,请使用可用区。PRIMARY_DISK_NAME
:辅助磁盘从中接收数据的主磁盘的名称。- 如需指定其他客机操作系统功能,请使用
--guest-os-features
参数。--guest-os-features=UEFI_COMPATIBLE,GVNIC,MULTI_IP_SUBNET
- 如需为辅助磁盘分配其他标签,请使用
--labels
参数。--labels=secondary-disk-for-replication=yes
- 如需指定其他客机操作系统功能,请使用
guestOsFeatures
字段。您只能指定其他客机操作系统功能;您无法更改或移除从主磁盘复制的任何客机操作系统功能。"guestOsFeatures": [ { "type": "NEW_FEATURE_ID_1" }, { "type": "NEW_FEATURE_ID_1" } ]
- 如需为辅助磁盘分配其他标签,请使用
labels
字段。"labels": [ { "key": "value" }, ]
- 如需指定其他客机操作系统功能,请使用
guest_os_features
字段。您只能指定其他客机操作系统功能;您无法更改或移除从主磁盘复制的任何客机操作系统功能。guest_os_features { type = "SECURE_BOOT" } guest_os_features { type = "MULTI_IP_SUBNET" } guest_os_features { type = "WINDOWS" }
- 如需为辅助磁盘分配其他标签,请使用
labels
字段。labels = { environment = "dev" }
- 了解如何管理使用异步复制的磁盘。
- 了解如何管理复制。
- 了解如何管理一致性组。
- 了解如何监控异步复制性能。
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 时进行身份验证。
设置磁盘复制对
在磁盘之间复制数据之前,您需要完成以下任务来配置复制:
磁盘要求
磁盘必须满足以下要求,才能用作异步复制的主磁盘或辅助磁盘:
创建或选择主磁盘
主磁盘是挂接到工作负载在其中运行的虚拟机的启动磁盘或数据磁盘。您可以使用满足磁盘要求的任何已有磁盘作为主磁盘,也可以创建新磁盘。如果您想将现有磁盘用作主磁盘,则无需对该磁盘执行任何其他配置。继续创建辅助磁盘,以完成异步复制配置。
创建主磁盘
使用以下文档之一中介绍的方法创建主磁盘。
创建辅助磁盘
辅助磁盘是与主磁盘位于不同区域的数据磁盘,它从主磁盘接收复制的数据并向主磁盘写入复制的数据。配置异步复制时,您必须创建一个引用主磁盘的新空白辅助磁盘。
如需创建与主磁盘具有相同属性的辅助磁盘,请按照创建与主磁盘相同的辅助磁盘中的步骤操作。
如需创建与主磁盘不同的辅助磁盘,请参阅创建自定义辅助磁盘。
创建与主磁盘相同的辅助磁盘
本部分介绍了如何创建与主磁盘相同的辅助磁盘。
控制台
通过执行以下操作,创建辅助磁盘并开始复制:
gcloud
使用
gcloud compute disks create
命令创建辅助磁盘:gcloud compute disks create SECONDARY_DISK_NAME \ --SECONDARY_LOCATION_FLAG=SECONDARY_LOCATION \ --size=SIZE \ --primary-disk=PRIMARY_DISK_NAME \ --PRIMARY_DISK_LOCATION_FLAG=PRIMARY_LOCATION \ --primary-disk-project=PRIMARY_DISK_PROJECT
如需创建区域级辅助磁盘,请另外指定
--replica-zones
标志:--replica-zones=ZONE_1,ZONE_2
替换以下内容:
Go
使用以下代码示例之一创建可用区级或区域级辅助磁盘:
创建可用区级辅助磁盘
创建区域级辅助磁盘
Java
使用以下代码示例之一创建可用区级或区域级辅助磁盘:
创建可用区级辅助磁盘
创建区域级辅助磁盘
Node.js
使用以下代码示例之一创建可用区级或区域级辅助磁盘:
创建可用区级辅助磁盘
创建区域级辅助磁盘
Python
使用以下代码示例之一创建可用区级或区域级辅助磁盘:
创建可用区级辅助磁盘
创建区域级辅助磁盘
REST
使用以下方法之一创建可用区或区域辅助磁盘:
替换以下内容:
Terraform
如需创建与主磁盘相同的辅助磁盘,请使用
compute_disk
资源。如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
创建自定义辅助磁盘
本部分介绍了如何创建自定义辅助磁盘,即其属性与主磁盘不同的辅助磁盘。
如果主磁盘是启动磁盘,您无法更改或移除主磁盘的任何客机操作系统功能。您只能添加更多客机操作系统功能。如需了解详情,请参阅辅助磁盘自定义。
您可以使用 gcloud CLI、REST 或 Terraform 创建自定义辅助磁盘。您无法通过 Google Cloud 控制台自定义辅助磁盘。
gcloud
如需创建自定义辅助磁盘,请使用创建与主磁盘相同的辅助磁盘中所述的
gcloud compute disks create
命令。使用其他标志自定义辅助磁盘的属性。以下示例展示了如何自定义辅助磁盘:
Go
Java
Node.js
Python
REST
如需创建自定义辅助磁盘,请使用创建与主磁盘相同的辅助磁盘中所述的方法。指定其他字段以自定义辅助磁盘的属性。
以下示例展示了如何自定义辅助磁盘:
Terraform
如需创建自定义辅助磁盘,请使用创建与主磁盘相同的辅助磁盘中所述的方法。您可以指定其他字段来自定义辅助磁盘的属性。
以下示例展示了如何自定义辅助磁盘:
开始复制
创建主磁盘和辅助磁盘后,您必须开始复制,以开始将数据从主磁盘复制到辅助磁盘。
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-08。
-