Windows Server 2025 / Hyper-V 标准检查点与生产检查点的区别
标准检查点会保留虚拟机(VM)的内存状态;生产检查点则在来宾支持的条件下捕获一致的数据状态,不保留运行中的内存。两者都能帮助回到先前状态,但位于同一存储上的检查点不能代替独立备份。
比较内存、一致性与捕获失败后的行为
| 比较项 | 标准检查点 | 生产检查点 |
|---|---|---|
| 运行中的内存 | 包含在捕获状态中。 | 不包含。 |
| 一致性 | 分布式应用需要特别谨慎。 | 利用 Windows VSS 或受支持的 Linux 文件系统冻结。 |
| 应用之后 | 可以恢复捕获时的运行状态。 | 来宾从恢复的数据状态启动。 |
| 本课用途 | 比较独立虚拟机的临时运行状态。 | 在更改前捕获受支持的来宾数据。 |
Hyper-V 检查点文档说明了两者的区别。Windows 生产检查点利用卷影复制服务(Volume Shadow Copy Service,VSS),Linux 则需要受支持的文件系统冻结功能。这不等于保证所有分布式应用都一致。根据 Set-VM 的 CheckpointType 参数,Production 允许生产捕获失败时改建标准检查点;ProductionOnly 则直接失败,不采用此替代方式。用户为检查点起的名称并不能证明实际捕获类型。
准备内存与文件的对照实验
只使用为实验创建并安装完成的独立 HVTEST01,保持工作组状态,不存放重要数据;不要使用 DC1、DC2 或 FS1。以管理员身份在 HV1 操作,并准备好来宾控制台访问方式。开始前在设置 → 管理 → 检查点记录原始类型、启用状态及其他选项。查看现有检查点、VHDX/AVHDX 所在卷的剩余空间和备份任务;如有并行操作或不足以支持增长与合并的空间,应推迟实验。还要在首次捕获前检查编辑器:如果有会话恢复或自动保存功能,为本次比较关闭它,并记录原值以便恢复。编辑器从文件恢复会话,并不能证明 Hyper-V 恢复了内存。
- 在来宾桌面创建 checkpoint-lab.txt,写入 A 并保存。如果已有同名文件,应停止并另选自己的新文件,不覆盖其他数据。之后保持同一路径。
- 使用记事本打开该文件,添加一句测试文字但不保存,保持窗口打开。区分磁盘中的 A 与编辑器中尚未保存的文字。
- 在 HV1 选择 HVTEST01 → 设置 → 管理 → 检查点 → 标准检查点。应用更改前记录原始选项。
- 通过虚拟机的“检查点”操作创建检查点,等待完成后重命名为 Lab-Standard-Before。如果该名称已经存在,应先核对标识,不要混用。记录虚拟机与时间。
- 创建成功之后,将文件内容改为 B,保存并关闭记事本。重新打开确认 B,再次关闭。这是之后应用检查点时会丢失的后续状态。
将虚拟机、文件路径、检查点标识与名称、时间和用途记录在来宾之外。应用检查点也可能回退保存在来宾中的实验笔记。只使用可以丢弃的测试文本,在整个比较中保持同一个文件路径。
应用前确认哪些后续更改会丢失
- 确认当前来宾为 HVTEST01,且 checkpoint-lab.txt 已保存 B。把需要保留的后续数据另存到虚拟机之外。
- 在检查点列表准确选择 Lab-Standard-Before 并选择“应用”。核对名称和时间,不只凭树中的位置判断。
- 阅读对话框:“创建检查点并应用”会在回退前新增恢复位置;“应用”不会自动保留当前状态;“取消”可以返回检查。必要数据尚未保护时不要继续。
- 应用后观察恢复的编辑器窗口与之前未保存的句子。记录观察结果之前,不要把这些内容保存并覆盖文件。
- 区分窗口中的待保存文本与磁盘上已保存的 A。关闭而不保存,再重新打开文件验证 A。这个额外文件检查与捕获的内存状态不是同一个观察对象。
直接应用检查点会丢弃其后的更改,包括后来已经保存的工作。对话框提供先创建当前状态的检查点再应用、直接应用和取消等选择。选择前先把必要数据保存在虚拟机之外。新增检查点只是在同一依赖链中保留另一个位置,并非独立备份。回到过去的本地状态,也不保证身份验证令牌或外部系统连接仍然有效。
使用仅限生产检查点的方式重复比较
开始第二次比较前,必要时关闭编辑器且不保存待处理句子,再将 checkpoint-lab.txt 的已保存内容设回 A。打开文件,在相同编辑器条件下添加一句话而不保存。在 HV1 逐行运行以下命令;先确认目标为 HVTEST01,并且尚不存在 Lab-Production-Before。Checkpoint-VM 会按指定名称创建检查点。如果某一行失败,应停止;后续查询不能自动证明前面的操作全部成功:
Set-VM -Name 'HVTEST01' -CheckpointType ProductionOnly
Checkpoint-VM -Name 'HVTEST01' -SnapshotName 'Lab-Production-Before'
Get-VMCheckpoint -VMName 'HVTEST01' | Select-Object Name,CreationTime,SnapshotType
查询显示 Name、CreationTime 和 SnapshotType。与 Get-VMCheckpoint 对应的 Get-VMSnapshot 使用 Standard、Recovery 等值;这一列本身不能证明成功完成了一致的生产捕获。应核实 ProductionOnly 实际已生效、Checkpoint-VM 无错误完成,并核对新检查点的标识和时间。查询为空或查询失败都不能证明创建成功。
如果 ProductionOnly 失败,记录错误消息与时间,检查来宾备份集成、VSS、存储及 Application/System、Hyper-V-VMMS/Admin 中相关事件。检查点与差分磁盘故障排查指南可用于缩小原因范围。不要切换成 Standard 掩盖失败,也不要随意重启服务。只有确认创建成功后,才保存 B 并关闭编辑器,准确选择 Lab-Production-Before,阅读应用对话框后继续。应用后应观察到虚拟机处于关闭状态;启动并打开文件,预期是已保存的 A,而不是恢复旧的编辑器内存。
分别记录虚拟机状态、已保存文件内容与编辑器行为。如果应用自行重开窗口或恢复文本,仅凭外观不足以判断检查点类型。单台实验虚拟机的结果不能保证数据库、Active Directory 或外部服务的一致性。其他工作负载需要单独核实应用支持并制定恢复方案。
让 Hyper-V 删除并合并检查点
删除检查点会移除该恢复位置,由 Hyper-V 管理差分数据的合并,不会应用旧状态。不要通过文件资源管理器删除 .avhdx,也不要为了腾出空间修改父磁盘。检查点从列表消失不等于合并已经结束,不应因此中断操作。如果空间不足或出现错误,应保留完整依赖链并收集上下文,再考虑修复。
- 识别 HVTEST01、自己创建的 Lab-Standard-Before 和 Lab-Production-Before,以及应用对话框中额外创建的检查点,决定哪些还需要保留。
- 只在 Hyper-V 管理器删除计划清理的测试检查点。“删除检查点子树”还会包含后代检查点,使用前必须完整检查范围。
- 等待合并完成,观察状态、错误与可用空间。不要手动删文件,也不要启动会中断合并的其他操作。
- 确认虚拟机能够启动,当前文件仍可读取。单独删除检查点不应自动恢复 A,应与删除之前的实际内容比较。
长期保留检查点会增加空间增长与恢复复杂度。为检查点指定用途、负责人和清理时间,并维护已验证可恢复的独立备份。实验结束后恢复之前记录的检查点与编辑器选项,不删除他人的检查点。自己的文本文件不再需要时才清理;清理文本并不意味着可以删除虚拟机磁盘。




