快照技术是虚拟化的关键特性之一。无论精通还是刚了解虚拟化,您都应利用 Hyper-V 快照。下面为大家介绍有关 Hyper-V 快照的 12 项须知。
Hyper-V 快照不再是快照
事实上,将 Hyper-V 快照称为“快照”已不再正确。尽管该术语仍适用于 Windows Server 2008、Windows 2008 R2 和 Windows Server 2012 等老旧系统,但这一技术在 Windows Server 2012 R2 中已进行了完善,并重命名为“Hyper-V 检查点”。这样做是为了防止混淆 Hyper-V 快照和 VSS (NTFS) 快照,并确保一致性。例如,Microsoft System Center Virtual Machine Manager (SCVMM) 以前称为检查点,而非快照。
重命名后可能仍会令人困惑,但正式命名更易于使用。从现在开始,大家应正式称呼这一技术,即 Hyper-V 检查点(假设您使用 Windows Server 2012 R2 或更高版本)。
Hyper-V 检查点是什么?
实际上,Hyper-V 检查点是一种差分虚拟硬盘,具有特殊的名称和 avhd(x) 扩展以及带有 GUID 名称的 xml 配置文件。此外,如果虚拟机 (VM) 在创建检查点时开启,它还可能具有两种文件,对于 VM 内存为 .bin,对于 VM 设备状态为 vsv。使用检查点时,差分 (.avhd(x)) 磁盘用于存储 VM 原始磁盘的临时更改,而原始磁盘仍为只读。
逻辑上,Hyper-V 检查点更适合看作特定时间点 VM 的一致状态。这意味着您可暂时维持这一状态,并在 VM 的当前状态发生变化时恢复至该状态。听上去像是备份,对吧?但其实不然!
检查点并非备份
将检查点视为备份非常不合适。检查点不是防止数据丢失的补救方法,也不是备份的替代选项。由于性质原因,检查点与 VM 硬盘一起存储在生产数据存储上。也就是说,数据存储仍然是系统中的单点故障。数据存储发生任何问题都会让您失去 VM。如果您还不信,请看备份与检查点的比较:
- 保留的检查点可能会拖慢整个主机的速度。
- VM 的虚拟磁盘受损时,检查点会丢失。
- 备份在其他位置使用备份存储
- 备份使用重复数据删除和数据压缩功能,因此占用较少空间
- 已备份内容不会影响 VM 性能
- 已备份内容可恢复为复制 VM,并与原件并排运行
基于上述几点,希望您能明白检查点并非数据保护软件的可行替代选项。那我们为何需要检查点?
何时使用 Hyper-V 检查点
简而言之,检查点可用于开发、测试或验收环境,但不用于生产周期。没人会建议将检查点用于生产 VM,尤其是提供 Microsoft SQL Server 或 Microsoft Exchange Server 等时间敏感性服务的生产 VM。此外,检查点也不适用于性能或存储空间可用性至关重要的业务进程。
Hyper-V 检查点适用于快速测试,数分钟内就可产生明确的结果。您可维持稳定的 VM 状态,观察测试是否进展顺利或是否会损坏环境,需要时将 VM 恢复至稳定状态。
短期测试项目包括新操作系统补丁的行为、幕后团队为企业站点开发的代码片段等。
检查点树
在使用检查点操作前,先来了解它们的组织方式,即检查点树。在树中,每个后续的检查点仅来自前一个检查点。因此,检查点硬盘上存储的实际 delta 数据造成了实际状态和检查点上次创建时状态之间的差异。
检查点树一般只可包含 50 个检查点。但在 Windows Server 2012 R2 中使用 Virtual Machine Manager,该数量可扩展至 64。请注意,将检查点恢复至上一状态或在多状态之间切换会导致树出现偏差。
图 1。Hyper-V 检查点树
检查点树越大,磁盘 I/O 开销及 VM 和存储子系统的性能下降的可能性越高。此外,树的增长会推高存储消耗。例如,我使用树中的多个检查点在 VM 上进行测试时,几天内存储消耗几乎增加了一倍。
如何创建 Hyper-V 检查点
打开您的 Hyper-V Manager,右击 VM 或一组选定的 VM,并点击检查点 (checkpoint)。就是这么简单。如果您更喜欢使用 PowerShell cmdlet 进行管理,请阅读下文。
使用创建的 Hyper-V 检查点,您可以实施多项操作:应用、导出、重命名和删除。下面逐一介绍。
图 2.Hyper-V Manager。带有检查点树的 VM
如何重命名 Hyper-V 检查点
默认情况下,检查点名称包含其所属的 VM 名称以及时间戳。改进命名系统或重新创建或许是个好建议。根据个人经验,了解为何使用检查点以及检查点名称中的时间戳总是很有帮助。相关信息可能显而易见或未受重视,但具有重要作用。忘记删除检查点并因此拖慢数据存储性能,但您又没时间查看其包含什么信息时该怎么办?
如何应用 Hyper-V 检查点
这一最重要。假设您创建了检查点,在 VM 上进行了测试且发现存在问题。这时您可以恢复更改,并恢复至稳定的 VM 状态。您只需右击检查点树并选择“应用 (apply)”。然后,您须决定要将该 VM 状态保存在另一个检查点中,并开始应用该流程。Hyper-V 将保存 VM,从检查点恢复所需状态并重启它。该流程不会即时实施,而且 VM 短时间内不会响应,这取决于系统性能和 VM 大小。制定相应计划。
图 3。应用 Hyper-V 检查点
如何删除 Hyper-V 检查点
您可以删除检查点,但不表示其包含的数据也将删除。更确切地说,删除是一种合并操作,会释放检查点文件,将其数据传输至父磁盘 (parent disk),然后删除该文件。删除检查点树意味着什么?删除检查点树意味着删除所需检查点及所有后续检查点。
注:请勿删除存储上的检查点磁盘,应使用 Hyper-V Manager,否则会损坏树,并使其无用。
图 4。Hyper-V 检查点子树删除
PowerShell 中与检查点相关的 cmdlet
下面介绍较为复杂的内容。如前所述,自 Windows Server 2012 R2 开始,Microsoft 将 Hyper-V 快照重命名为 Hyper-V 检查点。然而,如果您正使用 PowerShell 进行管理操作,您可能对新名称有点困惑。与检查点相关的所有操作已列出,且均补充有相应的 PowerShell cmdlet,因此您可实施下列操作:
- 使用 Checkpoint-VM 创建检查点
- 使用 Get-VMSnapshot 显示 VM 检查点列表
- 使用 Export-VMSnapshot 导出 VM 检查点
- 使用 Rename-VMSnapshot 更改检查点名称
- 使用 Restore-VMSnapshot 应用检查点(恢复至相应时间)
- 使用 Remove-VMSnapshot 删除检查点(合并所有数据)
图 5.与 Hyper-V 检查点管理相关的 PowerShell cmdlet
其他
下面的一些信息也很有用:
- 请勿扩展在使用检查点的虚拟磁盘,这会损坏整个检查点树。
- Windows server 2008 (R2) 中的快照删除操作只可在 VM 关闭或进入保存状态时全部完成。因此,存有快照数据的 .avhd 文件会保持在存储位置,直到 VM 进入上述任意状态。
Windows Server 2016 会有什么特性?
尽管讨论尚未发布的系统可能为时尚早,但有关新特性和增强特性的零星信息已在流传,如 Hyper-V 检查点。这些信息基于 Windows 10 版本和 Windows Server 2016 Technical Preview 版本。
有一点确切无疑,它将包含两种检查点:标准和生产,其中本文已讨论了标准检查点。顾名思义,生产检查点指用于生产环境的高级检查点。它们将在 Windows 上利用 VSS(在 Linux 上利用文件系统冻结),以确保数据一致性,并确保 VM 状态恢复流程完美无瑕,以及具有分布式架构的来宾账户操作系统应用程序能够正确处理该流程。
图 6.Windows Server 2016 Technical Preview 4 中的 Hyper-V 检查点
有关生产检查点的更多详情请访问:https://msdn.microsoft.com/virtualization/hyperv_on_windows/user_guide/checkpoints
任何有关 Windows Server 2016 版新功能的最新信息,我将及时告知大家,敬请关注博文。
您使用 Hyper-V 检查点的体验如何?请在下方发表您的想法,期待倾听您的心声。