概要
Hyper-V 检查点(快照)是 Windows Server 虚拟化中的关键功能。 它们使管理员能够捕获备份、复制和灾难恢复的虚拟机 VM 状态。 但是,与第三方备份解决方案的交互、存储限制、错误配置或系统级故障可能导致检查点和快照管理变得复杂。 检查点作中发生的问题可能会导致备份失败、VM 中断、数据丢失、存储耗尽、VM 链中断以及灾难恢复受阻。 本文提供了一种系统的方法,用于诊断和解决 Hyper-V 中的检查点和快照相关问题,包括独立环境和群集环境。
故障排除清单
使用此清单进行系统故障排除:
-
验证备份和还原状态
- 检查最近第三方备份是否已成功完成。
- 验证备份应用程序是否报告其检查点的合并或清理。
-
查看存储利用率
- 检查存储 .vhdx、.avhdx、.mrt 或 .rct 文件的卷上的存储耗尽情况。
- 确保合并存在足够的可用空间(理想情况下,空间等于磁盘大小)。
-
检查 VM 状态
- 验证 VM 是否未处于“已保存”、“创建检查点”或“正在停止”状态。
- 验证所有预期的磁盘文件的可用性。
-
检查现有检查点
-
在 Hyper-V 管理器或通过 PowerShell 中,枚举检查点:
Get-VMSnapshot -VMName <VMName>
-
-
检查权限和安全性
- 验证 NT VIRTUAL MACHINE\Virtual Machines 组是否具有“作为服务登录”权限和 NTFS 文件夹权限。
- 查看 Hyper-V 相关文件和文件夹的防病毒排除项。
-
检查无关联的差异文件
- 查找 Hyper-V 管理器中未反映的 .avhd、.avhdx、.mrt 和 .rct 文件。
-
评估集群/故障转移健康状况(如果适用)
- 验证群集磁盘和 CSV(群集共享卷)状态。
-
收集错误信息
- 收集确切的错误消息、事件日志条目以及屏幕截图或关键事件时间。
-
记录所有更改
- 请注意任何最近的配置、OS 或存储更改。
常见问题和解决方案
以下部分详细介绍了最常见的故障模式,并提供分步解决方案。
无法创建、合并或删除检查点
原因
- 孤立或过时的检查点(通常来自备份软件)
- 检查点链损坏或父/子磁盘关系损坏
- 通过备份或防病毒进程锁定文件
- 磁盘空间不足
- 不支持的场景(例如直通或共享 VHDX 或合成光纤通道)
决议
检查点可见,但无法删除或合并
-
右键单击检查点,然后在 Hyper-V 管理器中选择“ 删除 ”或按 Del。 如果此作失败,请运行以下 PowerShell 命令:
Get-VMSnapshot -VMName <VMName> | Remove-VMSnapshot -
关闭 VMm 并重试删除(如果可能,关闭会触发自动合并)。
-
如果合并失败,请使用 Hyper-V 管理器:选择**“编辑**>>合并>到父虚拟磁盘”(对链重复)。
检查点不可见(孤立快照或老化快照)
-
关闭 VM。
-
使用 PowerShell 检查 VHD 链:
Get-VMHardDiskDrive -VMName <VMName> | ForEach-Object { Get-VHD -Path $_.Path | Select-Object Path, ParentPath, VHDType } -
标识和合并管理器中不可见的任何 .avhdx 文件。
Merge-VHD -Path <path-to-avhdx> -DestinationPath <parent-vhdx> -
如果需要,请更新 VM 配置,使其指向 Hyper-V Manager 中合并后的 .vhdx 文件。
孤立、损坏或缺少检查点或磁盘 diles
如果缺少基本磁盘或差异磁盘:请从备份中还原(如果可能)。 否则,请创建新的 VM,并附加剩余正常的 .vhdx 文件。
检查点过多(超过 50 个)
- 安排停机时间。
- 按顺序合并检查点(从最年轻到最老)。
有关详细信息,请参阅 如何合并具有多个差异磁盘的检查点
直通、共享 VHD 或合成光纤通道
- 不支持检查点。
- 删除或将直通磁盘或共享磁盘转换为 .vhdx,或使用第三方备份来处理这些工作负载。
清理失败的检查点或与备份相关的性能
原因
- 第三方备份集成失败
- 防病毒排除项配置错误
- 磁盘锁或服务或权限配置错误
决议
不完整的检查点合并(备份后)
- 确保备份软件配置为在完成后清理。
- 从防病毒扫描中排除 Hyper-V 文件、文件夹和进程。
- 如果检查点仍未合并,请重启 VM 或主机。
文件锁定或共享冲突
- 使用资源监视器或 ProcMon 标识锁定文件的进程。
- 重启备份、Hyper-V 和 VSS 服务。
权限问题
-
将 NT VIRTUAL MACHINE\Virtual Machines 添加到“作为服务登录”策略。
- GPMC:计算机配置 > Windows 设置 > 安全设置 > 本地策略 > 用户权限分配
-
应用权限:
icacls <PathToVMFolder> /grant "NT VIRTUAL MACHINE\<VMGuid>:F" /T -
更改后运行
gpupdate /force。
集群和高可用性场景
磁盘集成或群集节点问题
-
检查 CSV 和群集资源状态。
-
分析存储、群集或节点故障的日志。
-
运行相关的 PowerShell 命令:
get-clusterstoragespacesdirect get-storagepool get-physicaldisk get-virtualdisk get-storagetier mountvol
群集配置版本问题
- 确保 VM 使用当前配置版本进行实时迁移。
- 通过 Hyper-V Manager>VM>升级配置版本进行更新。
检查点链损坏
原因
- 手动删除或失败的合并
- 存储或主机在合并中途失败
决议
- 在尝试任何修复之前备份所有文件。
- 若要逐个将所有差异磁盘从子磁盘合并到父磁盘,请使用 Hyper-V Manager 中的 VM“编辑磁盘”工具。
- 如果 VM 仍然未启动,请创建新的 VM,并附加最终合并磁盘。
常见问题快速参考表
| 症状 | 根源 | 决议 |
|---|---|---|
| 无法删除或合并检查点 | 孤立、不可见或备份创建的检查点 | 关闭,使用 PowerShell“编辑磁盘”进行手动合并 |
| 没有可以合并的空间,虚拟机无法启动 | 存储耗尽、未合并的检查点 | 释放存储、附加 USB/NAS、执行合并和导出 |
| 错误0x80070032或磁盘链损坏 | 链中断,合并中断,磁盘不匹配 | 确定正确的合并顺序、修复链或创建新 VM |
文件锁定或共享冲突 (0x80070020) |
备份、AV 或其他进程已打开磁盘 | 使用 ProcMon 识别锁定状态,重启 VSS/Hyper-V/备份,配置防病毒排除项 |
| VM 卡在“创建检查点”/ 无响应 | SnapshotTask / VMDeltaSync 卡住,HVMM 服务被阻止 |
重启主机,终止停滞的进程,分析转储文件 |
| 无法扩展磁盘(选项灰显) | 活动差异磁盘或子磁盘存在 | 合并所有检查点,确保已在设置中选择父项 |
| 删除检查点的“灾难性故障” | 权限无效,配置损坏,备份锁定 | 修复权限,如有必要,请通过新 VM 删除检查点 |
| 透传/共享VHD/光纤通道=失败 | 不支持检查点设计 | 转换磁盘类型或采用备份供应商的方法 |
数据收集
在联系Microsoft支持人员之前,可以收集有关你的问题的以下信息。
-
事件查看器日志:
- 应用程序、系统、Microsoft-Windows-Hyper-V-VMMS/Admin
-
群集日志:
cluster log /g -
VM 和磁盘链:
Get-VM -ComputerName <host> -Name <VMName> Get-VMSnapshot -VMName <VMName> Get-VHD -Path <full-path> -
手动磁盘/VM 检查:
- VM 文件夹的资源管理器列表(文件大小、上次修改日期)
-
Procmon 或资源监视器跟踪:
- 过滤 .avhdx、.vhdx 文件,vmwp.exe 程序,以及备份进程
-
VSS 和卷影复制:
- vssadmin list writers(列出VSS写入器)
- DevNodeClean 日志(如果怀疑卷影复制或幽灵 VSS 设备)
-
屏幕截图:
- Hyper-V 管理器、错误消息、属性对话框