为托管磁盘创建增量快照

适用于:✔️ Linux 虚拟机 ✔️ Windows 虚拟机 ✔️ 灵活规模集 ✔️ 统一规模集

增量快照是用于托管磁盘的时间点备份,在创建时只包含自上次快照以来的更改。 第一个增量快照是磁盘的完整副本。 后续增量快照仅记录自上一快照以来磁盘的增量更改。 从增量快照还原磁盘时,系统会重新构建完整的磁盘,呈现出创建增量快照时的时点备份。 托管磁盘快照的这种功能可能使它们更具成本效益,因为你不必在创建单个快照时存储整个磁盘,除非你选择这么做。 与完整快照一样,增量快照可用于创建完整的托管磁盘,也可用于制作完整快照。 高级 SSD、标准 SSD 和标准 HDD 磁盘的快照可在创建后立即使用。 除非在创建快照时 启用即时访问 ,否则无法在后台数据复制完成之前使用超级磁盘和高级 SSD v2 磁盘的增量快照。

增量快照和完整快照之间存在一些差异。 增量快照使用标准 HDD 存储,而不考虑源磁盘的存储类型,而完整快照可以使用高级 SSD 存储。 如果您使用高级 SSD 存储上的完整快照来扩展 VM 部署规模,请在 Azure Compute Gallery 中使用 Standard HDD 存储上的自定义映像。 它可帮助你以更低的成本实现更大规模的扩展。 此外,增量快照在区域冗余存储(ZRS)中可能提供更好的可靠性。 如果所选区域中提供了 ZRS,增量快照会自动使用 ZRS。 如果区域中没有 ZRS,则快照默认为 本地冗余存储 (LRS)。 您可以更改系统设置并手动选择选项,但我们不建议这样做。

增量快照仅按已用大小计费。 可以通过查看 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 之后创建的快照之间的差异。
  • 从快照创建托管磁盘时,会启动后台复制过程。 可以在此过程中将磁盘附加到 VM,但可能会影响性能。 可以使用 CompletionPercent 属性来检查背景副本的状态,仅适用于高级 SSD v2 和超磁盘。 不能使用 CompletionPercent 该属性来测量从高级 SSD、标准 SSD 和标准 HDD 创建的快照的后台数据复制进度,或者快照中的磁盘冻结过程。

高级 SSD v2 和超级磁盘的增量快照

高级 SSD v2 和 Ultra 磁盘的增量快照存在以下额外限制:

  • 逻辑扇区大小为 512 的快照将存储为 VHD,可用于创建任何磁盘类型。 逻辑扇区大小为 4096 的快照存储为 VHDX,只能用于创建超级磁盘和高级 SSD v2 磁盘,而不可用于创建其他磁盘类型。 若要确定快照的扇区大小,请参阅检查扇区大小
  • 最多可以同时从高级 SSD v2 或超级磁盘的快照创建五个磁盘。
  • 创建高级 SSD v2 或超级磁盘的增量快照时,将启动该磁盘的后台复制进程。 当后台复制正在进行时,最多可以有三个快照处于挂起状态。 必须先完成该进程,然后才能创建该磁盘的更多快照。
  • 创建高级 SSD v2 和超级磁盘后,不能立即使用增量快照,除非在创建快照时启用即时访问。 否则,后台数据复制必须完成,然后才能从快照创建磁盘。 有关详细信息,请参阅检查快照状态Azure 托管磁盘的即时访问快照
  • 增加高级 SSD v2 或超级磁盘的大小时,后台复制下的任何增量快照都将失败。
  • 当后台数据复制正在进行时,无法更新 Premium SSD v2 和 Ultra Disk 快照的加密设置。
  • 当你在 CompletionPercent 属性尚未达到 100 的情况下,将从快照创建的高级 SSD v2 或超级磁盘附加到正在运行的虚拟机时,磁盘的性能将会受到影响。 具体来说,如果磁盘的扇区大小为 4k,则读取速度可能会减慢。 如果磁盘的扇区大小为 512e,则读取和写入速度可能会减慢。 若要跟踪此后台复制过程的进度,请参阅 Azure PowerShell 示例Azure CLI 的“检查磁盘状态”部分。
  • 每个订阅最多可有 50 个当前处于活动状态的后台副本。 以下活动会计入活动后台副本的总数中:
    • 使用快照创建高级 SSD v2 和超级磁盘
    • 使用还原点创建高级 SSD v2 和超级磁盘
    • 将 VHDX 文件上传到高级 SSD v2 和超级磁盘
    • 将现有高级 SSD 转换为高级 SSD v2 磁盘。

注释

通常,拍摄增量快照并且没有任何更改时,该快照的大小为 0 MiB。 目前,逻辑扇区大小为 4096 的磁盘的空快照的大小为 6 MiB,而通常为 0 MiB。

创建增量快照

可以使用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 属性识别来自同一磁盘的增量快照。 此属性包含源磁盘的 Azure 资源管理器 资源 ID。

使用 SourceResourceId列出与特定磁盘关联的所有增量快照

检查快照状态

在后台进程完成将数据复制到快照之前,无法使用高级 SSD v2 或超级磁盘的增量快照来创建新磁盘。

你可以使用 CLIPowerShell 部分来检查从磁盘到快照的后台复制的状态。

重要

不能使用以下部分来获取除超级磁盘或高级 SSD v2 以外的磁盘类型的后台复制过程状态。 其他磁盘类型的快照始终报告 100%。

CLI

有两个选项可用于获取快照状态。 可以获取与特定磁盘关联的所有增量快照的列表及其各自的状态,或者可以获取单个快照的状态

CLI - 列出增量快照

以下脚本返回与特定磁盘关联的所有快照的列表。 若要使用任一快照,其 CompletionPercent 属性值必须为 100。 将 yourResourceGroupNameHereyourSubscriptionIdyourDiskNameHere 替换为你自己的值,然后运行脚本:

# 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

CLI - 单个快照

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

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

PowerShell

有两个选项可用于获取快照状态。 可以获取与特定磁盘关联的所有增量快照的列表及其各自的状态,或者可以获取单个快照的状态

PowerShell - 列出增量快照

以下脚本返回与特定磁盘关联的、尚未完成后台复制的所有增量快照的列表。 替换 yourResourceGroupNameHereyourDiskNameHere,然后运行脚本。

$resourceGroupName = "yourResourceGroupNameHere"
$snapshots = Get-AzSnapshot -ResourceGroupName $resourceGroupName
$diskName = "yourDiskNameHere"
$yourDisk = Get-AzDisk -DiskName $diskName -ResourceGroupName $resourceGroupName
$incrementalSnapshots = New-Object System.Collections.ArrayList
foreach ($snapshot in $snapshots)
{
    if($snapshot.Incremental -and $snapshot.CreationData.SourceResourceId -eq $yourDisk.Id -and $snapshot.CreationData.SourceUniqueId -eq $yourDisk.UniqueId)
    {
    $targetSnapshot=Get-AzSnapshot -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName
        {
        if($targetSnapshot.CompletionPercent -lt 100)
            {
            $incrementalSnapshots.Add($targetSnapshot)
            }
        }
    }
}
$incrementalSnapshots

PowerShell - 单个快照

可以检查单个快照的 CompletionPercent 属性以获取其状态。 替换 yourResourceGroupNameHereyourSnapshotName,然后运行脚本。 属性值必须为 100,才能使用快照还原磁盘或生成 SAS URI 来下载基础数据。

$resourceGroupName = "yourResourceGroupNameHere"
$snapshotName = "yourSnapshotName"
$targetSnapshot=Get-AzSnapshot -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName
$targetSnapshot.CompletionPercent

检查扇区大小

逻辑扇区大小为 4096 的快照只能用于创建高级 SSD v2 或超级磁盘。 它们不可用于创建其他磁盘类型。 逻辑扇区大小为 4096 的磁盘的快照存储为 VHDX,而逻辑扇区大小为 512 的磁盘的快照存储为 VHD。 快照继承父磁盘的逻辑扇区大小。

若要确定高级 SSD v2 或超级磁盘快照是 VHDX 还是 VHD,请获取 LogicalSectorSize 快照的属性。

以下命令显示快照的逻辑扇区大小:

az snapshot show -g resourcegroupname -n snapshotname --query [creationData.logicalSectorSize] -o tsv

后续步骤

请参阅以下文章,了解如何使用 Azure CLIAzure PowerShell 模块从快照创建磁盘。

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

如果存在更多问题,请参阅常见问题解答的 快照 部分。

如果您想查看使用 .NET 演示增量快照差异功能的示例代码,请参阅“将 Azure 托管磁盘备份复制到另一个具有增量快照差异功能的区域”。