使用增量快照备份Azure非托管虚拟机磁盘

不再支持非托管磁盘。 如果使用非托管磁盘,请迁移到托管磁盘。 有关详细信息,请参阅 将非托管磁盘迁移到托管磁盘

概述

Azure Storage提供拍摄 blob 快照的功能。 快照将捕获该时间点的 Blob 状态。 本文介绍有关如何使用快照维护虚拟机磁盘备份的方案。 如果选择不使用 Azure Backup 和恢复服务,并且希望为虚拟机磁盘创建自定义备份策略,则可以使用此方法。 对于运行业务或任务关键型工作负荷的虚拟机,建议在备份策略中使用 Azure Backup

Azure 虚拟机磁盘作为页 Blob 存储在 Azure Storage 中。 本文介绍的是虚拟机磁盘的备份策略,因此,我们指的是页 Blob 上下文中的快照。 如需了解有关快照的更多信息,请参阅 创建 Blob 快照

什么是快照?

Blob 快照是在某个时间点捕获的 Blob 的只读版本。 在创建快照后,可以读取、复制或删除该快照,但无法对其进行修改。 快照提供了一种方法,可以在某个时间点备份 Blob 的状态。 在 REST 2015-04-05 版之前,可以复制完整快照。 使用 REST 2015-07-08 版或更高版本,还可以复制增量快照。

完整快照复制

可以将快照作为 Blob 复制到另一个存储帐户中,以保留源 Blob 的备份。 你还可以复制快照以覆盖基础 Blob,这类似于将 Blob 恢复到之前的版本。 将快照从某个存储帐户复制到另一个存储帐户时,将占用与基本页 Blob 相同的空间。 因此,将整个快照从某个存储帐户复制到另一个存储帐户时速度较慢,并且会消耗目标存储帐户中的大量空间。

注意

如果将基本 Blob 复制到另一个目标位置,则不会同时复制基本 Blob 的快照。 同样,如果使用副本覆盖基本 Blob,与基本 Blob 关联的快照不会受到影响,并保持完整,仍以基本 Blob 名称存在。

使用快照备份磁盘

作为虚拟机磁盘的备份策略,可以定期拍摄磁盘或页 blob 的快照,并使用 Copy Blob 操作或 AzCopy 等工具将它们复制到另一个存储帐户。 可将快照复制到名称不同的目标页 Blob 存储。 生成的目标页 Blob 是可编写的页 Blob,而不是快照。 本文稍后介绍使用快照创建虚拟机磁盘备份的步骤。

使用快照还原磁盘

当您需要将磁盘还原到之前在某个备份快照中捕获的稳定版本时,可以将快照复制到基础页 Blob 上。 将快照升级到基本页 Blob 之后,快照会保留,但会使用可读写的副本覆盖其源。 本文稍后介绍从快照还原旧版磁盘的步骤。

实现完整快照复制

可以通过执行以下操作实现完整快照复制:

  • 首先,使用 快照 Blob 操作创建基本 Blob 的快照。
  • 然后,使用复制 Blob 将快照复制到目标存储帐户。
  • 重复此过程以保留基本 Blob 的备份副本。

增量快照复制

GetPageRanges API 中的新功能提供更好的方式来备份页 Blob 或磁盘的快照。 此 API 返回基础 blob 与快照之间变化的列表,从而减少备份帐户上所用的存储空间。 该 API 支持高级存储和标准存储上的页 blob。 使用此 API,可以为 Azure VM 生成更快、更高效的备份解决方案。 此 API 适用于 REST 2015-07-08 和更高版本。

增量快照复制可让你将以下两者之间的差异从一个存储帐户复制到另一个存储帐户:

  • 基本 Blob 及其快照,或
  • 基本 Blob 的任意两个快照

在满足以下条件时,

  • Blob 是在 2016 年 1 月 1 日或之后创建。
  • 在两个快照之间没有用 PutPageCopy Blob 覆盖 Blob。

注意

此功能适用于 Azure 高级和标准页 Blob。

如果存在使用快照的自定义备份策略,则将快照从一个存储帐户复制到另一个存储帐户可能会慢,并且将消耗大量的存储空间。 可以将连续快照之间的差异写入备份页 Blob,而不是将整个快照复制到备份存储帐户。 这样,便可以大量减少复制的时间和存储备份的空间。

实现增量快照复制

可以通过执行以下操作实现增量快照复制:

  • 使用 快照 Blob创建基本 Blob 的快照。
  • 使用 Copy Blob 将快照复制到同一区域或任何其他Azure区域中的目标备份存储帐户。 这是备份页 Blob。 创建备份页 Blob 的快照,并将其存储在备份帐户中。
  • 使用快照 Blob 创建基本 Blob 的另一个快照。
  • 使用 GetPageRanges 获取基础 Blob 的首个和第二个快照之间的差异。 使用新参数 prevsnapshot 指定要用于获取差异的快照的 DateTime 值。 如果提供此参数,则 REST 响应只包含在目标快照与先前快照之间更改的页面(包括清除页面)。
  • 使用 PutPage 将这些更改应用到备份页 Blob。
  • 最后,创建备份页 Blob 的快照,并将其存储在备份存储帐户中。

下一部分详细说明如何使用增量快照复制维护磁盘的备份

场景

在本部分中,我们介绍一种方案,它涉及到使用快照针对虚拟机磁盘实施自定义的备份策略。

请考虑附加高级存储 P30 磁盘的 DS 系列Azure VM。 名为 mypremiumdisk 的 P30 磁盘存储在名为 mypremiumaccount 的高级存储帐户中。 名为 mybackupstdaccount 的标准存储帐户用于存储 mypremiumdisk 的备份。 我们希望每隔 12 小时保留 mypremiumdisk 的一个快照。

要了解如何创建存储帐户,请参阅创建存储帐户

若要了解如何备份Azure VM,请参阅 Plan Azure VM 备份

使用增量快照维护磁盘备份的步骤

下述步骤介绍如何创建 mypremiumdisk 的快照,并在 mybackupstdaccount 中维护备份。 备份是一个名为 mybackupstdpageblob 的标准页 Blob。 备份页 Blob 始终反映出与mypremiumdisk的最新快照相同的状态。

  1. 为您的高级存储磁盘创建备份页 Blob,方法是对名为 mypremiumdisk 的磁盘拍摄快照,并命名为 mypremiumdisk_ss1。
  2. 将此快照复制到 mybackupstdaccount,作为名为 mybackupstdpageblob 的页 Blob。
  3. 使用Snapshot Blobmybackupstdpageblob创建名为mybackupstdpageblob_ss1的快照,并将其存储在mybackupstdaccount中。
  4. 在备份时段内,创建 mypremiumdisk 的另一个快照(即 mypremiumdisk_ss2),并将其存储在 mypremiumaccount 中。
  5. 使用 GetPageRanges 方法,在 mypremiumdisk_ss2 上并通过将 prevsnapshot 参数设置为 mypremiumdisk_ss1 的时间戳,获取两个快照(mypremiumdisk_ss2mypremiumdisk_ss1)之间的增量更改。 将这些增量更改写入到 mybackupstdaccount 中的备份页 Blob mybackupstdpageblob。 如果增量更改中有已删除的范围,则必须从备份页 Blob 中清除这些范围。 使用 PutPage 将增量更改写入备份页 Blob。
  6. 为备份页 blob mybackupstdpageblob 创建名为 mybackupstdpageblob_ss2 的快照。 从高级存储帐户删除以前的快照 mypremiumdisk_ss1
  7. 在每个备份时段内重复步骤 4-6。 这样,即可在标准存储帐户中维护 mypremiumdisk 的备份。

使用增量快照备份磁盘的屏幕截图。

从快照还原磁盘的步骤

下述步骤介绍如何将高级磁盘mypremiumdisk从备份存储帐户mybackupstdaccount还原到早期的快照。

  1. 选择要将高级磁盘还原到的时间点。 假设这是存储在备份存储帐户 mybackupstdaccount 中的快照 mybackupstdpageblob_ss2 。
  2. 在 mybackupstdaccount 中,将快照 mybackupstdpageblob_ss2 设为新的备份基准页 Blob mybackupstdpageblobrestored
  3. 为已还原的备份页 Blob 拍摄快照,命名为 mybackupstdpageblobrestored_ss1 的快照。
  4. 将已还原页 Blob mybackupstdpageblobrestoredmybackupstdaccount 复制到 mypremiumaccount,作为新的高级磁盘 mypremiumdiskrestored
  5. mypremiumdiskrestored 创建名为 mypremiumdiskrestored_ss1 的快照,以便将来执行增量备份。
  6. 将 DS 系列 VM 指向已还原的磁盘 mypremiumdiskrestored,并从 VM 分离旧的 mypremiumdisk
  7. 根据前一部分中所述,使用 mybackupstdpageblobrestored 作为备份页 Blob,开始针对已还原的磁盘 mypremiumdiskrestored 执行备份过程。

从快照中还原的磁盘的屏幕截图。

后续步骤

使用以下链接详细了解如何创建 Blob 的快照和规划 VM 备份基础结构。