将增量快照复制到新区域

可通过两种方法跨区域复制增量快照。 第一种方法是使用一个托管流程(推荐使用),它将为你执行复制。 该流程由 Azure 管理,它在目标区域中暂存存储帐户,从而避免了对复制流程进行管理带来的维护开销。 Azure 确保仅将目标区域中最新快照后的更改复制到目标区域,以减少数据占用,从而降低恢复点目标。 你可以检查复制进度,以便了解目标快照何时准备就绪,可用来还原磁盘。 对于此托管流程,你只需为跨区域传输数据的带宽成本和源快照上的读取事务付费。 复制目标快照时,请勿删除源快照。

第二种方法是手动复制,你可获取两个增量快照之间的更改(细化到块级别),并手动将其从一个区域复制到另一个区域。 大多数用户应当使用托管流程,但如果你希望提高复制速度,第二种方法允许你使用计算资源来加快复制速度。

本文介绍如何将增量快照从一个区域复制到另一个区域。 有关增量快照的概念详细信息,请参阅为托管磁盘创建增量快照

Azure 通过“克隆”选项编排的增量快照跨区域复制的示意图。

限制

  • 你可以在每个区域的每个订阅中同时并行复制 100 个增量快照。
  • 如果使用 REST API,必须使用 2020-12-01 版或更新版本的 Azure 计算 REST API。
  • 一次只能复制特定磁盘的一个增量快照。
  • 必须按创建快照的顺序复制快照。
  • 只有增量快照才可以跨区域复制。 完整快照无法跨区域复制。

托管的复制

可以使用 Azure CLI 复制增量快照。 你需要最新版本的 Azure CLI。 请参阅以下文章,了解如何安装更新 Azure CLI。

以下脚本会将增量快照从一个区域复制到另一个区域:

subscriptionId=<yourSubscriptionID>
resourceGroupName=<yourResourceGroupName>
targetSnapshotName=<name>
sourceSnapshotName=<name>
targetRegion=<validRegion>

sourceSnapshotId=$(az snapshot show -n $sourceSnapshotName -g $resourceGroupName --query [id] -o tsv)

az snapshot create -g $resourceGroupName -n $targetSnapshotName -l $targetRegion --source $sourceSnapshotId --incremental --copy-start

检查复制状态

可以通过检查 CompletionPercent 属性来检查单个快照的状态。 将 $sourceSnapshotName 替换为你的快照名称,然后运行以下命令。 属性值必须为 100,才能使用快照还原磁盘或生成 SAS URI 来下载基础数据。

az snapshot show -n $sourceSnapshotName -g $resourceGroupName --query [completionPercent] -o tsv

手动复制

增量快照提供差异功能。 它们用于获取同一托管磁盘的两个增量快照之间的差异,可适用至块级别。 在跨区域复制快照时,可以使用此功能来减少数据占用空间。 例如,可以将第一个增量快照下载为另一个区域中的基本 Blob。 对于后续增量快照,只需要将自上次快照以来的更改复制到基本 Blob 中。 复制更改后,可以在基本 Blob 上拍摄表示另一个区域中磁盘的时间点备份的快照。 可以从基本 Blob 或从其他区域中的基本 Blob 上的快照还原磁盘。

描述跨区域复制的增量快照的图表。快照会执行各种 API 调用,直到最终形成每个快照的页 blob。

后续步骤

要查看演示使用 .NET 的增量快照的差异功能的示例代码,请参阅通过增量快照差异功能将 Azure 托管磁盘备份复制到另一区域

如果对快照有其他疑问,请参阅常见问题解答的快照部分。