将增量快照复制到新区域

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

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

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

Diagram of Azure orchestrated cross-region copy of incremental snapshots via the clone option.

限制

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

托管的复制

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

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

subscriptionId=<yourSubscriptionID>
resourceGroupName=<yourResourceGroupName>
targetSnapshotName=<name>
sourceSnapshotResourceId=<sourceSnapshotResourceId>
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 上的快照还原磁盘。

Diagram depicting incremental snapshots copied across regions. Snapshots make various API calls until eventually forming page blobs per each snapshot.

后续步骤

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

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