本文介绍 NTFRS 偶尔与文件系统通信时遇到致命错误的问题。
原始 KB 数: 2768745
症状
在各种 DC 上,你从文件复制服务(FRS)收到 13559 个事件,如下所示:
日志名称:文件复制服务
来源:NtFrs
事件 ID:13559
任务类别:无
级别: 错误
说明:
文件复制服务检测到副本根路径已从“c:\windows\sysvol\domain”更改为“c:\windows\sysvol\domain”。 如果这是有意移动,则需要在新根路径下创建名称NTFRS_CMD_FILE_MOVE_ROOT的文件。
已针对以下副本集检测到此情况:
“DOMAIN SYSTEM VOLUME (SYSVOL SHARE)”
更改副本根路径是由创建NTFRS_CMD_FILE_MOVE_ROOT文件触发的两个步骤。
[1] 在第一次轮询中,此计算机将在 5 分钟内从副本集中删除。
[2] 在删除之后的轮询中,此计算机将重新添加到具有新根路径的副本集。 此重新添加将触发副本集的完整树同步。 同步结束时,所有文件都将位于新位置。 这些文件可能会从旧位置中删除,具体取决于是否需要这些文件。
这是 ntfrs 详细记录级别 4 的示例,导致记录的事件 13559:
<RcsHasReplicaRootPathMoved: S4: > :S: 副本根目录的 Oid 为 00000000-0000-00000000000000000
<RcsHasReplicaRootPathMoved:S0: > ERROR - 副本集的副本根 GUID 不匹配(域系统卷(SYSVOL SHARE))
<RcsHasReplicaRootPathMoved: S0: > ERROR - Replica root guid (FS) (17358178-8dd7-47e5-8ec1642bbc6ba318) <RcsHasReplicaRootPathMoved: S0: > ERROR - Replica root guid (DB) (17358178-8dd7-47e5-8ec1642bbc6ba318) <RcsHasReplicaRootPathMoved: S0: > ERROR - Replica Set (DOMAIN SYSTEM VOLUME (SYSVOL SHARE)) 被标记为已删除
我们还在第二次调试打印中将文件系统 GUID 报告为 NULL 的情况:
<RcsHasReplicaRootPathMoved: S4: > :S: 副本根目录的 Oid 为 00000000-0000-00000000000000000
<RcsHasReplicaRootPathMoved:S0: > ERROR - 副本集的副本根 GUID 不匹配(域系统卷(SYSVOL SHARE))
<RcsHasReplicaRootPathMoved: S0: > ERROR - 副本根 guid (FS) (000000000-0000-00000-0000000000000000)
<RcsHasReplicaRootPathMoved: S0: > ERROR - 副本根 guid (DB) (17358178-8dd7-47e5-8ec1642bbc6ba318)
<RcsHasReplicaRootPathMoved: S0: > ERROR - 副本集 (域系统卷 (SYSVOL SHARE)) 被标记为要删除
必须启用日志记录级别 4 才能对此问题产生影响。
原因
在轮询周期中,从 NTFS 返回的根文件夹的 GUID 与预期不匹配。 卷的 GUID 被视为“000000000-0000-0000-000000000000000”。 尽管 FRS 使用同步 IO,但 NTFS IO 控件正在异步工作。 因此,在问题情况下,IO 控件返回了“STATUS_PENDING”,但 NTFRS 未正确使用此状态。
解决方法
只需使用 NTFRS 来支持 Windows Server 2003 域控制器。 由于对 Windows Server 2003 的支持于 2015 年 7 月结束,因此建议完全删除这些域控制器,并迁移到较新版本的 Windows。
较新版本的 Windows 允许使用 DFS-R 复制 SYSVOL,这些问题不会受到影响。
有以下解决方法:
创建由事件 13559 触发并重启服务的任务
创建在重新启动 NTFRS 服务的事件 13559 上触发的脚本,请执行以下步骤:
在事件查看器中,找到事件 13559 并右键单击它。 有一个条目 “将任务附加到此事件...”:
你将被带到 “新建基本任务 ”向导,并根据所选事件运行该任务的选项将预先填充。 因此,你可以浏览许多向导页。
需要指定任务操作才能启动程序:
作为任务,有一个重新启动 NTFRS 的简短脚本:
将脚本指定为要启动的程序:
此方法将恢复 NTFRS 的操作,而无需执行权威还原。
将空文件“NTFRS_CMD_FILE_MOVE_ROOT”放入副本的根目录
当看到与 GUID 不匹配时,NTFRS 会检查此文件的先决条件,以查看它是否是有意的。 如果找到该文件,则会记录事件 13560,并开始执行 NTFRS 的非权威还原。
对于 SYSVOL,请将它放在 SYSVOL 共享中交汇点的目标文件夹中,例如 c:\windows\sysvol\domain。
注意
在非权威还原期间,它将使 SYSVOL 和 NETLOGON 共享脱机,netlogon 将停止。 如果 DC 是站点中唯一的 DC,则可能无法接受。
更多信息
请在此处找到有关 SYSVOL 迁移的指南:
将 SYSVOL 复制迁移到 DFS 复制
此博客包含有关迁移的常见问题解答和有关主题的演示指南:
DFSR SYSVOL 迁移常见问题解答:有用的琐事可以保存你的毛囊