"检查点"是 Windows Server 2012 R2 中对 Windows Server 2012 及以前版本的 Hyper-V"快照"功能的新称呼。之所以改成这个名称,其实和私有云有一定的关系。在私有云组件 System Center 2012 SP1 Virtual Machine Manager 中,它的"检查点"功能即是其对应的 Windows Server 2012 中的"快照"功能。为了便于在虚拟化平台和私有云平台上统一说法,便于用户理解,在 System Center 2012 R2 Virtual Machine Manager 和 Windows Server 2012 R2 中,"快照"也就升级成了"检查点"
检查点可以保持虚拟机在某一个时间点的状态,这种状态包括磁盘、网络、内存等。和同类产品相比,Hyper-V Server 2012 R2(免费版)下的检查点默认即可保存内存状态,而在思杰的 XenServer(免费版)中,检查点只保存硬盘状态,也就是说还原到 Hyper-V Server 2012 R2(免费版)中某个检查点时,还原之后用户看到的是虚拟机依然在运行;而思杰的 XenServer (免费版)还原到某个检查点时,用户看到的是虚拟机是重新启动。只有在 XenServer 的较高版本中,才支持检查点保存内存的特性。
免费的 Hyper-V Server 2012 R2 的这个特性可以帮助用户更好的进行测试:如在某个软件安装的环节,不确定配置方法是否有误,而接下来的安装过程时间又很长,此时可以为虚拟机创建一个检查点,当发现结果不是预期的时候,可以快速的还原到上一个检查点,而不需要等待重启虚拟机和继续前面的操作步骤,从而大量节省时间。
6.1 概述
6.1.1 检查点的工作原理
当创建"检查点"后,系统会锁定当前的 vhd 或 vhdx 文件,然后创建一个新的 avhd 或 avhdx 文件,在这个"检查点"之后的硬盘操作都会保存在新的文件中,并且此时还会单独保存一份当前状态的内存拷贝。每次点击创建检查点,即会运行这两个操作:
- 锁定 vhd 或 vhdx 文件,创建 avhd 或 avhdx 文件。
- 保存当前状态的内存拷贝。
6.1.2 创建多个检查点
当多次对虚拟机创建"检查点"后,可以看到系统会产生一条检查点树。默认情况下检查点的命名会采用"虚拟机名称-(时间)"的方式。以时间顺序从上往下,依次缩进。如图
6-1 所示。
图 6-1 创建多个检查点示意图
右键点击任意一条"检查点",选择"设置",此时弹出的窗口和虚拟机设置窗口一致,如图 6-2 所示。唯一区别在于默认的硬盘驱动器所显示的磁盘名称不同。点击"检查",可以看到此时调用的虚拟硬盘是"差异虚拟磁盘"。
图 6-2 检查点设置依次点击差异磁盘的"检查父级"按钮,可以看到每一个检查点所关联的虚拟磁盘(avhd 或 avhdx 格式),直至查看到最顶级的父磁盘,如图 6-3 所示。
图 6-3 检查点关联的差异虚拟机磁盘和父磁盘
6.1.3 检查点的适用环境
在很多文档和书籍中,都不建议用户在生产环境中使用检查点,其原因就是检查点本质上是差异虚拟磁盘的形式,而差异虚拟磁盘与固定、动态扩展、直通磁盘相比,是效率最差的一种。当一台虚拟机被创建多个检查点后,该虚拟机的运行效率会有一定程度下降。
适合检查点的环境主要是以测试环境和线下非重要业务为主,检查点可以帮助用户快速的验证某些想法。这在进行某些破坏性工作的时候,具有非常显著的意义,如:
- 病毒工程师测试病毒样本。
- 测试工程师测试程序功能性、兼容性或 bug。
- 教学环境快速恢复基础架构。
- 软件 sysprep 阶段的准备验证。
事实上生产环境中在特定条件下也可以使用检查点。在本书后续章节将要介绍的
"Hyper-V 复制"功能,即利用到了检查点的一些特性。
6.1.4 检查点创建对生产的影响
无论虚拟机是开启还是关闭状态,均可以创建检查点。一般创建检查点的时间都非常短,这是因为创建检查点其只需完成保存内存拷贝和创建新的差异虚拟机磁盘这两个操作,而真正消耗时间的只是前者,除非 Hyper-V 主机的负载非常大或虚拟机的内存非常大,否则创建检查点的时间都是以秒计的。
- 在检查点的创建过程中,系统依然可以被访问,期间服务不会中断。
- 当检查点被删除时,系统会在删除差异虚拟磁盘的同时对父亲磁盘进行合并,该操作的持续时间与 Hyper-V 主机的负载和虚拟机的内存大小有关,合并期间业务同样不会中断。
- 当检查点被应用时,用户可以选择是删除下级的差异虚拟机磁盘进行合并,还是创建当前状态的检查点之后,再返回到目标检查点。应用检查点的期间,虚拟机会中断业务。
6.1.5 检查点的风险
由于检查点的本质是差异虚拟磁盘,所以当创建多个检查点后,会产生同样数量的差异虚拟磁盘文件。而这些文件中有一个丢失,即会影响整个检查点上的内容。使用多个检查点后,数据丢失后的恢复难度会更大一些。
6.2 检查点的使用
检查点的使用方法主要包括导出、导入、重命名、删除检查点/检查点树、应用、还原这七种。
6.2.1 检查点的导出
当虚拟机创建检查点后,即可以不同时间节点对虚拟机进行导出,根据所选的检查点不同,虚拟机所导出的状态也不同。此特性可以方便用户,如创建不同软件部署需求的操作系统模板、快速将虚拟环境某个正确的验证阶段导出为独立的业务虚拟机。
第 1 步,在需要操作的虚拟机的"检查点"对话框中,右键单击需要导出的虚拟机检查点,选择"导出",如图 6-4 所示。
图 6-4 检查点导出 1
第 2 步,在"导出虚拟机"对话框中,手动输入虚拟机的保存位置,或使用"浏览",按钮,选择虚拟机的保存位置,如图 6-5 所示,点击"导出"按钮完成操作。
图 6-5 检查点导出 2
第 3 步,检查点导出完成后,可以在第 2 步设定的位置中找到导出的虚拟机文件,如图6-6 所示。
图 6-5 检查点导出 3
6.2.2 检查点的导入
当完成检查点的导出并在物理硬盘上保存某个检查点的虚拟硬盘文件后,即可进行检查点的导入操作。
第 1 步,在"Hyper-V 管理器"上选择需要操作的 Hyper-V 主机,右键点击,选择"导入虚拟机",如图 6-6 所示。
图 6-6 检查点导入 1
第 2 步,在"导入虚拟机向导中",点击下一步以进行导入的后续操作,如图 6-7 所示。
图 6-6 检查点导入 2
第 3 步,在"定位文件夹"对话框中,手动输入之前虚拟机的保存位置,或使用"浏览",按钮,选择虚拟机的保存位置,如图 6-7 所示,点击"下一步"继续。
图 6-6 检查点导入 3
第 4 步,在"选择虚拟机"对话框中,可以看到目录中包含的虚拟机信息,如图 6-7 所示,点击"下一步"继续。上一步如目录选择错误,此处将不会出现可选虚拟机的列表。 图 6-7 检查点导入 4
第 5 步,在"选择导入类型"对话框中,如未删除原虚拟机,则此处只能选择"复制虚拟机(创建新的唯一 ID)";如图 6-8 所示。
如已经删除原虚拟机或导入操作在其他 Hyper-V 主机上操作,则可以选择"就地注册虚拟机"或"还原虚拟机"。这是因为使用前两个选项不会生成新的唯一 ID,而 Hyper-V 主机上不允许有两个相同唯一 ID 的虚拟机存在,选择后点击"下一步"继续。
图 6-8 检查点导入 5
第 6 步,在"选择目标"对话框中,可以勾选"将虚拟机存储在其他位置",然后自定义"虚拟机配置文件夹"、"检查点存储"、"智能分页文件夹",如图 6-9 所示。设置完成后点击"下一步"继续。
图 6-9 检查点导入 6
第 7 步,在"选择存储文件夹"对话框中,可以通过"浏览"按钮设置虚拟机硬盘存储的保存位置,如图 6-10 所示。设置完成后点击"下一步"进入最后一个阶段。
图 6-10 检查点导入 7
第 8 步,在"摘要"对话框可以检查之前的各项配置,在配置无误的情况下可以点击"完成",进入导入虚拟机的阶段,如图 6-11 所示。
图 6-11 检查点导入 8
第 9 步,完成虚拟机的导入后,可以在"Hyper-V 管理器"中查看到新导入的虚拟机,该虚拟机的名称采用的是之前创建检查点时的检查点名称,如图 6-12 所示。
图 6-12 检查点导入 9
6.2.3 检查点的重命名
对检查点重命名可以方便是检查点识别,使得管理员一眼发现不同的检查点对应了何种软件配置,在管理较多的虚拟机和检查点时,添加详细描述能够节省运维时间。
检查点的的设置和重命名操作与虚拟机一致。在需要操作的检查点上右键点击,选择"重命名"即可为检查点重命名,如图 6-13 所示。
图 6-13 快速为检查点重命名除了这种方式之外,还有两种方式可以快速为检查点重命名:
- 选中需要操作的检查点,按下键盘的"F2"即可进行修改。
- 鼠标单击选中需要操作的检查点,在至少 0.5 秒的延迟后再次点击该"检查点",也可以对其进行重命名
每一个检查点亦可和操作虚拟机一样,定义不同的"名称"和"说明"。在检查点上右键点击,选择"设置",在弹出的对话框中左侧选中"名称",于右侧进行相应修改即可,如图 6-14 所示。
图 6-14 修改检查点的名称和说明修改后可以更直观的对快照进行管理,在名称部分可以对节点信息进行简单介绍,在"说明部分"可以详细描述,如图 6-15 所示。
图 6-15 检查点名称和说明修改演示
6.2.4 删除检查点/检查点树
当虚拟机存在多余或误添加的检查点时,即可将其删除,如图 6-15 所示中。例如,虚拟机中的软件部署成功后,"准备安装操作系统"和"完成系统安装"两个检查点已经不需要了,可以手动将其删除。
第 1 步,在需要删除的检查点上右键点击,选择"删除检查点",如图 6-16 所示。
图 6-16 删除检查点 1
第 2 步,此时弹出删除对话框,如为了操作方便,可以勾选"不要再询问我"复选框。但由于删除操作都是具有风险的,如果误操作将无法找回删除的数据,因此不建议用户勾选"不重要再询问我",保持默认的每次提醒即可,图 6-17 所示。
图 6-17 删除检查点 2
第 3 步,如果确认虚拟机的所有部署都没有问题,需要删除所有快照,合并虚拟硬盘文件,将该虚拟机转变为正式成产虚拟机,则可以删除整个检查点子树,如图 6-18 所示。
删除检查点子树表示将删除所操作的检查点下所有的检查点。如在第一个检查点下操作,则表示删除所有检查点;如在第二个检查点下操作,则表示删除除了第一个检查点以外的所有检查点。
删除检查点意味着将所涉及的检查点的 avhd 或 avhdx 文件与虚拟磁盘的 vhd 或 vhdx 文件进行合并,删除检查点所需的时间长短与检查点的文件大小有直接关系。创建检查点后的操作越多,带来的数据越多,则合并过程中的时间越长。
图 6-17 删除检查点子树。
6.2.5 检查点的应用
检查点最大的便利性在于可以随时使用"应用"来会退到某一个时间点。通过在不同时间创建检查点,可以获得虚拟机在不同时间段的不同状态。
第 1 步,在需要操作的检查点上右键点击,选择"应用",如图 6-18 所示。
图 6-18 应用检查点
第 2 步,在弹出的"应用检查点"对话框中,有两个应用选项,分别是:
- 创建检查点并应用:此选项会先创建当前时间点的检查点,之后再将系统应用到已选的时间点上。如图 6-19 所示。
- 应用:此选项会直接将系统应用到已选的时间点上,当前状态丢失,如图 6-20 所示。
图 6-19 创建检查点并应用
图 6-20 直接应用检查点
6.2.6 检查点的还原
检查点的还原仅在"虚拟机连接"视图可用,它是"虚拟机连接"工具栏的倒数第二个按钮,功能与检查点的"应用"一致,但在虚拟机存在多个检查点时,其只能还原至距当前时间最近的一个检查点。该按钮无任何可选项。如图 6-21 所示。
图 6-21 检查点的"还原"按钮
6.3 检查点的注意事项
6.3.1 检查点的局限性
尽管检查点可以非常快速的还原虚拟机到某一个时间节点,但这种"还原"与备份软件的"恢复"是两种不同的概念。虚拟机的检查点还原无法做到像备份软件一样的细颗粒度。它无法实现只还原某个文件或某种类型的文件,而只能一次性回退到某个时间点。至于这期间可能有些操作是正确的,有些操作是错误的,类似这种情况检查点是无法区别对待的。检查点可以提供功能的多样性,但是其多样性并不是数据备份这种"高可用"技术,检查点一旦文件丢失,将会带来很大的损失。如果希望用检查点来做阶段性的备份,很明显是不现实的,同时这种"备份"反而加大了虚拟机的损坏风险。
6.3.2 检查点的性能
由于检查点是基于差异动态磁盘而产生的一套机制,因此其运行效率相比其他磁盘稍低,在对性能要求苛刻的环境,不建议用户使用快照,这会加大虚拟机对虚拟磁盘的访问时延和难度。特别是检查点数量较多时,这种时延相对来说更加严重。
6.3.3 检查点的删除与合并
在 Windows Server 2012/2012 R2 中,检查点在删除过程中会自动进行合并,这是一个很省事的特性。但经过实际测试,在检查点合并的同时,虚拟机的延时会比平时稍大,这也即意味着在检查点删除和合并的这段时间中,该虚拟机的服务质量有所下降。所以如果一定要做检查点的删除操作,则建议管理员最好选一个不是用户访问高峰期的时间来做这件事情。
6.4 小结
本章对检查点的作用与功能进行了分析介绍,一般来说,在测试环境中使用检查点还是非常方便的,它可以快速的帮助用户验证一些功能,或者在生产环境中,对某些重要业务的修改操作把握不大,可以先将所涉及的虚拟机创建快照,正式修改完成后,确认操作无误即可删除虚拟机快照。这种操作流程可以降低误操作所带来的复杂的回滚方案,同时在确认操作无误后删除快照,也可以保障生产业务系统的高效运行。