你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

为托管磁盘创建增量快照

适用于:✔️ Linux VM ✔️ Windows VM ✔️ 灵活规模集 ✔️ 统一规模集

增量快照是托管磁盘的时间点备份;拍摄快照后,这些备份仅包含自上次快照以来的更改。 从增量快照还原磁盘时,系统将重新构造完整的磁盘,这是指在拍摄增量快照时磁盘的时间点备份。 托管磁盘快照的这种功能可能使它们更具成本效益,因为你不必在拍摄单个快照时存储整个磁盘,除非你选择这么做。 与完整快照一样,增量快照可用于创建完整的托管磁盘,也可用于制作完整快照。 完整快照和增量快照都可以在拍摄后立即使用。 换句话说,一旦拍摄了快照,你就可以立即读取基础 VHD 并使用它来还原磁盘。

增量快照和完整快照之间存在一些差异。 增量快照始终使用标准 HDD 存储,而不管磁盘的存储类型如何,而完整快照可使用高级 SSD。 若要在高级存储上使用完整快照来纵向扩展 VM 部署,建议在共享映像库中的标准存储上使用自定义映像。 它将帮助你以更低的成本实现更大的规模。 此外,增量快照可能会凭借区域冗余存储 (ZRS) 提供更高的可靠性。 如果 ZRS 在所选区域中可用,则增量快照将自动使用 ZRS。 如果 ZRS 在该区域不可用,则快照将默认为本地冗余存储 (LRS)。 此行为可以重写,并手动选择一项,但我们不建议这样做。

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

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

增量快照仅按已用大小计费。 可以通过查看 Azure 使用情况报告,了解快照的已使用大小。 例如,如果快照的已用数据大小为 10 GiB,则每日使用情况报告将显示 10 GiB/(31 天) = 0.3226 作为已使用数量。

限制

  • 增量快照当前无法在订阅之间转移。
  • 当前,在任何给定时间,只能为某个特定系列的最多 5 个快照生成 SAS URI。
  • 无法在某一特定磁盘的订阅之外为该磁盘创建增量快照。
  • 无法将增量快照移动到另一个资源组。 但可以将其复制到另一个资源组或区域。
  • 每五分钟最多可为每个磁盘创建 7 个增量快照。
  • 总共可以为单个磁盘创建 500 个增量快照。
  • 如果父磁盘的大小调整超过 4 TB 限额,则无法获取分别在磁盘大小调整之前和之后拍摄的快照之间的差异。 例如,你在磁盘大小为 2 TB 时拍摄了一张增量快照 snapshot-a。 现在,你已将磁盘大小增加到 6 TB,然后拍摄了另一张增量快照 snapshot-b。 无法获取 snapshot-asnapshot-b 之间的差异。 需要再次下载调整大小后创建的 snapshot-b 的完整副本。 随后,可获取 snapshot-bsnapshot-b 之后创建的快照之间的差异。
  • 目前不适用于超级磁盘或高级 SSD v2 托管磁盘。

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

以下脚本将创建特定磁盘的增量快照:

# Declare variables
diskName="yourDiskNameHere"
resourceGroupName="yourResourceGroupNameHere"
snapshotName="desiredSnapshotNameHere"

# Get the disk you need to backup
yourDiskID=$(az disk show -n $diskName -g $resourceGroupName --query "id" --output tsv)

# Create the snapshot
az snapshot create -g $resourceGroupName -n $snapshotName --source $yourDiskID --incremental true

可以使用快照的 SourceResourceId 属性识别同一磁盘中的增量快照。 SourceResourceId 是父磁盘的 Azure 资源管理器资源 ID。

可以使用 SourceResourceId 创建一个与特定磁盘关联的所有快照的列表。 将 yourResourceGroupNameHere 替换为你的值,然后可以使用以下示例列出现有增量快照:

# Declare variables and create snapshot list
subscriptionId="yourSubscriptionId"
resourceGroupName="yourResourceGroupNameHere"
diskName="yourDiskNameHere"

az account set --subscription $subscriptionId

diskId=$(az disk show -n $diskName -g $resourceGroupName --query [id] -o tsv)

az snapshot list --query "[?creationData.sourceResourceId=='$diskId' && incremental]" -g $resourceGroupName --output table

后续步骤

请参阅 将增量快照复制到新区域,了解如何跨区域复制增量快照。

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