我在同一个域控制器下有 2 个集群 Windows Server 2008 R2 服务器。
然而,奇怪的是,它们两个的时间都不同(以秒为单位),当我需要重新启动它们进行维护时,我必须手动调整两台服务器的时间。使用net time /querysntp
两个客户端查看 NTP 服务器时,它们都指向同一个时间服务器。
为了使服务器中的时间正确同步,您有什么建议/提示?它们对于操作至关重要,并且对于他们使用的应用程序来说,它们非常依赖时间。
答案1
微软在创建时间实现时的目标并不包括秒级的精度。实现明确不支持时间敏感的应用程序, 即使正确配置:
我们不保证也不支持网络上节点之间 W32Time 服务的准确性。W32Time 服务不是满足时间敏感型应用程序需求的全功能 NTP 解决方案。W32Time 服务主要用于执行以下操作:
- 使 Kerberos 版本 5 身份验证协议正常工作。
- 为客户端计算机提供宽松的同步时间。
W32Time 服务无法可靠地将同步时间保持在 1 到 2 秒的范围内。此类容差超出了 W32Time 服务的设计规范。
还有其他更准确的实现。您可能希望查看Windows 版 ntp或者点对点仅指出两种可能性。
答案2
编辑 - 对于 Windows 10 或 Server 2016 设备,现在有一个明确的原生解决方案可用 -参见此答案
根据应用程序的时间关键程度,如果这两个域成员服务器当前没有使用 NT5DS,则一个选项可能是配置 NT5DS 而不是 NTP。
考虑到您的问题在几秒钟内就会出现,这可能没有帮助。但在您开始安装其他解决方案之前,可能值得研究一下。如果仍然太慢,请参阅 ErikE 的回答。
我们遇到了两个站点的域控制器同步差近 3 分钟的问题。Kerberos 仍可运行,但使用 AD 身份验证的一些辅助应用程序无法运行。问题是两个 DC 设置为 NTP(从同一时间源提取),其余的设置为 NT5DS。将一个 DC 设置为 NT5DS(保留一个权威域时间源)解决了此问题。
重新启动时间服务后,所有剩余的 DC 和成员服务器都精确到分钟(没有检查秒数,因为我们不需要它),单个 DC 现在充当域时间源(并通过 NTP 从更高层的源提取)
这允许(勉强)推断:NT5DS 可能比 NTP 更好地保持同一域中的服务器之间的时间一致。
要使用 NT5DS 配置域成员服务器:
w32tm /config /syncfromflags:domhier /update
然后重新启动时间服务:
net stop w32time && net start w32time