本文档介绍如何配置永久性磁盘异步复制。永久性磁盘异步复制对于实现低 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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- 选择区域对以及主要区域和次要区域。
- 可选:如果您需要跨一组磁盘协调复制,请在主要区域中创建一致性组。您必须先将主磁盘添加到一致性组,然后才能开始复制。
- 创建或选择主磁盘。您可以视需要将这些磁盘添加到一致性组。
- 创建新的空白辅助磁盘。
- 磁盘类型:平衡永久性磁盘 (
pd-balanced
) 或性能 (SSD) 永久性磁盘 (pd-ssd
)。 - 大小:小于或等于 32 TiB。
- 加密类型:Google 拥有且 Google 管理的密钥或客户管理的加密密钥 (CMEK)。
- 读写模式:必须处于读写模式,并且不能启用多写入者模式(预览版)。
- 位置:位于受支持的区域(或受支持区域内的可用区)。
在创建虚拟机时创建主启动磁盘。(可选)使用 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 控制台中,转到磁盘页面。
点击主磁盘的名称。系统随即会打开管理磁盘页面。
点击创建辅助磁盘。
在名称字段中,输入磁盘的名称。
在位置部分中,执行以下操作之一:
如需创建区域级磁盘,请执行以下操作:
- 选择区域级。
- 在区域字段中,选择与主磁盘的区域相对应的区域。
- 在可用区字段中,选择主可用区。
- 在副本可用区字段中,选择副本可用区。
如需创建可用区磁盘,请执行以下操作:
- 选择单个可用区。
- 在区域字段中,选择与主磁盘的区域相对应的区域。
- 在可用区字段中,选择一个可用区。
点击创建。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_LOCATION/zones/SECONDARY_DISK_ZONE/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
:辅助磁盘的大小。必须与主磁盘的大小相同。SECONDARY_DISK_TYPE
:磁盘类型。必须是pd-ssd
或pd-balanced
中的一个。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" }, ]
- 了解如何管理使用永久性磁盘异步复制功能的磁盘。
- 了解如何管理复制。
- 了解如何管理一致性组。
- 了解如何监控永久性磁盘异步复制性能。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
设置磁盘复制对
在磁盘之间复制数据之前,您需要完成以下任务来配置复制:
磁盘要求
磁盘必须满足以下要求,才能用作永久性磁盘异步复制的主磁盘或辅助磁盘:
创建或选择主磁盘
主磁盘是挂接到工作负载在其中运行的虚拟机的启动磁盘或数据磁盘。您可以使用满足磁盘要求的任何已有磁盘作为主磁盘,也可以创建新磁盘。如果您想将现有磁盘用作主磁盘,则无需对该磁盘执行任何其他配置。继续创建辅助磁盘以完成永久性磁盘异步复制配置。
创建主磁盘
使用以下文档之一中介绍的方法创建主磁盘。
创建辅助磁盘
辅助磁盘是与主磁盘位于不同区域的数据磁盘,它从主磁盘接收复制的数据并向主磁盘写入复制的数据。配置永久性磁盘异步复制时,您必须创建一个引用主磁盘的新空白辅助磁盘。
如需创建具有与主磁盘相同属性的辅助磁盘,请按照创建与主磁盘相同的辅助磁盘中的步骤操作。辅助磁盘会继承主磁盘的属性,例如启动配置和标签。
如需创建与主磁盘不同的辅助磁盘,请参阅创建自定义辅助磁盘。
创建与主磁盘相同的辅助磁盘
本部分介绍了如何创建与主磁盘相同的辅助磁盘。
您可以使用 Google Cloud 控制台、gcloud CLI 或 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
替换以下内容:
REST
使用以下方法之一创建可用区或区域辅助磁盘:
替换以下内容:
创建自定义辅助磁盘
本部分介绍了如何创建自定义辅助磁盘,即其属性与主磁盘不同的辅助磁盘。
如果主磁盘是启动磁盘,您无法更改或移除主磁盘的任何客机操作系统功能。您只能添加更多客机操作系统功能。如需了解详情,请参阅辅助磁盘自定义。
您可以使用 gcloud CLI 或 REST 创建自定义辅助磁盘。您无法通过 Google Cloud 控制台自定义辅助磁盘。
gcloud
如需创建自定义辅助磁盘,请使用创建与主磁盘相同的辅助磁盘中所述的
gcloud compute disks create
命令。使用其他标志自定义辅助磁盘的属性。以下示例展示了如何自定义辅助磁盘:
REST
如需创建自定义辅助磁盘,请使用创建与主磁盘相同的辅助磁盘中所述的方法。指定其他字段以自定义辅助磁盘的属性。
以下示例展示了如何自定义辅助磁盘:
开始复制
创建主磁盘和辅助磁盘后,您必须开始复制,以开始将数据从主磁盘复制到辅助磁盘。
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-12-24。
-