本文可帮助解决在 Windows Server 2016 上 DPM 或 ReFS 卷无响应的问题。
适用于:Windows Server 2016
原始 KB 数: 4035951
症状
请注意,使用数据保护管理(DPM)的弹性文件系统(ReFS)卷在执行备份时变得无响应或冻结,特别是当 DPM 发出大型块克隆作时。
原因
DPM 使用环回装载的虚拟硬盘 (VHD)。 系统将它们视为普通磁盘。 因此,这些磁盘显示在 Windows 资源管理器、Diskmgt 和其他 GUI 工具中。 这些工具会定期轮询磁盘,以确保其正常运行。 这会导致 IO 将环回堆栈发送到 ReFS 卷。 如果 ReFS 卷繁忙,则这些 IO 必须等待。 因此,当 ReFS 执行长时间的作(例如刷新或大型块克隆调用)时,这些 IO 必须等待更长时间。 当这些 IO 卡住时,不会刷新资源管理器或 Diskmgt 的 UI。 因此,磁盘似乎已挂起或卸载。
此外,如果任何 IO 在 30 秒内未完成,环回装载微型端口驱动程序(vhdmp)将开始生成警告事件。
注释
在此过程中,输入/输出或文件系统操作不会失败。 所有操作都将成功,并且会花费更长的时间。 此外,不会卸载任何卷。 此问题只是文件系统操作延迟的问题,导致 UI 停滞,并使端口驱动记录错误。
决议
此问题已在 2017 年 7 月 18 日累积更新中解决。 修复内容有:
- 三个可调整注册表参数
- 避免进行不必要的卷刷新的策略更改,这可以防止 ReFS 向正在进行的 ReFS IO 添加大量延迟。
详细信息
如何设置可调整参数
重要
在执行这些步骤之前,请确保已读取并实现三个注册表参数,如 知识库文章4016173中所述。 如果这些参数无法充分解决遇到的任何问题,请不要禁用这些注册表参数。 这些参数和本节中所述的参数在功能上不会重叠,因此它们可以一起使用。
此更新介绍了其他注册表参数,这些参数有助于解决“症状”部分中所述的延迟问题。 这些参数可用于任意组合。
警告
如果使用注册表编辑器或使用其他方法错误地更改注册表,则可能会出现严重问题。 这些问题可能需要你重新安装操作系统。 Microsoft 无法保证可以解决这些问题。 更改注册表的风险由你承担。
重要
- 这些参数更改必须重启才能生效。
- 必须在故障转移群集的每个节点上一致地设置这些参数。
可调整参数
选项 1
此选项禁用缓存的固定项,这是造成大型活动工作集的主要原因。
在以下子键中指定所指示的值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
- 值名称:RefsDisableCachedPins
- 设置 RefsDisableCachedPins = 1
- 值类型:REG_DWORD
选项 2
此选项为 ReFS 检查点逻辑添加了一种启发式方法,当删除队列达到特定大小时,ReFS 会执行检查点操作。 IOs 在 ReFS 上卡住了,因为检查点逻辑在处理大量删除队列时会卡住。
在以下子键中指定所指示的值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
- 值名称:RefsProcessedDeleteQueueEntryCountThreshold
- 设置 RefsProcessedDeleteQueueEntryCountThreshold 为 2048
- 值类型:REG_DWORD
注释
将 RefsProcessedDeleteQueueEntryThreshold 设置为较低值会使 ReFS 更频繁地进行检查点操作。 将值设置为 2048,然后将该值减小到 1024,然后将该值设置为 512。
选项 3
大量重复的扩展调用会将延迟引入系统,因为其他操作必须等到这些长时间运行的操作完成。 此选项可减小对重复卷区调用的大小。
注释
DPM 会将此注册表项更改设置为 UR4 的默认值,该默认值将在 2017 年 8 月内发布。
在以下子键中指定所指示的值:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Data Protection Manager\Configuration\DiskStorage
- 值名称:DuplicateExtentBatchSize in MB
- 设置 DuplicateExtentBatchSizeinMB = 100。 (默认值为 2000 [2GB]。接受 1 到 4095 的任何值。
- 值类型:REG_DWORD
选项 4
此选项扩展 TimeOutValue。
在以下子键中指定所指示的值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Disk
- 值名称:TimeOutValue
- 设置 TimeOutValue (以秒为单位) = 0x78
- 值类型:REG_DWORD
注释
TimeOutValue 的默认值为 0x41 (65 十进制)。 0x78转换为 120 个小数。