Windows 2019 Server 与 ESX 主机而非 NTP 服务器同步时间

Windows 2019 Server 与 ESX 主机而非 NTP 服务器同步时间

我们正在构建一个新的服务器堆栈。我们的第一个 Windows 2019 VM 与其所在的 ESX 7 主机同步,而不是与路由器上的 NTP 服务同步。

“w32tm /query /configuration” 的结果如下。请注意,设置“NtpClient”已启用“1”。而“VMICTimeProvider”已启用“0”。

尽管如此,命令“w32tm /query /source”返回“本地 CMOS 时钟”

我已运行“w32tm /config /manualpeerlist:"10.233.0.1" /syncfromflags:manual /reliable:yes /update”,然后重新启动 Windows 时间服务。但没有任何效果。

为了测试这一点,我手动将 ESX 主机上的时间设置为比 NTP 服务器晚 20 分钟(并关闭 ESX 主机上的 NTP 服务)。然后我手动将虚拟机时间设置为午夜。

命令“w32tm /resync”失败。但重新启动虚拟机后,时间从午夜更改为 ESX 主机的时间。它没有重置为 NTP 服务器上的时间。

我们可以 ping NTP 服务器。其他主机正在同步到 NTP 服务器。我不知道为什么这台虚拟机拒绝与其同步。根据以下配置,您能给我一些建议吗?

[配置]

EventLogFlags:2(本地)AnnounceFlags:5(本地)TimeJumpAuditOffset:28800(本地)MinPollInterval:6(本地)MaxPollInterval:10(本地)MaxNegPhaseCorrection:172800(本地)MaxPosPhaseCorrection:172800(本地)MaxAllowedPhaseOffset:300(本地)

FrequencyCorrectRate:4(本地)PollAdjustFactor:5(本地)LargePhaseOffset:50000000(本地)SpikeWatchPeriod:900(本地)LocalClockDispersion:10(本地)HoldPeriod:5(本地)PhaseCorrectRate:7(本地)UpdateInterval:100(本地)

[时间提供者]

NtpClient(本地)DllName:C:\ windows \ SYSTEM32 \ w32time.DLL(本地)已启用:1(本地)InputProvider:1(本地)AllowNonstandardModeCombinations:1(本地)ResolvePeerBackoffMinutes:15(策略)ResolvePeerBackoffMaxTimes:7(策略)CompatibilityFlags:2147483648(本地)EventLogFlags:0(策略)LargeSampleSkew:3(本地)SpecialPollInterval:1024(策略)类型:NTP(策略)NtpServer:10.233.0.1(策略)

NtpServer(本地)DllName:C:\windows\SYSTEM32\w32time.DLL(本地)已启用:1(本地)InputProvider:0(本地)AllowNonstandardModeCombinations:1(本地)

VMICTimeProvider(本地)DllName:C:\windows\System32\vmictimeprovider.dll(本地)已启用:0(本地)InputProvider:1(本地)

答案1

重新启动时,虚拟机管理程序会将虚拟 CMOS(及其模拟的实时时钟)重置为默认值(即其自己的时钟)。这样做是为了给新启动的 VM 提供合理的“基准时钟”以进行启动。

换句话说,客户机时钟在启动时从虚拟机管理程序初始化其时间是完全正常的(并且非常需要);之后,您可以在客户机操作系统中使用您选择的 NTP 客户端来高精度地同步其时钟。

对于 VMWare,请确保取消选中 VMWare Tools 中的“将客户机时间与主机同步”选项,并注意解释的其他同步点这里

答案2

默认情况下,有许多事件会导致虚拟机将其时间与主机同步。可以关闭它们: https://kb.vmware.com/s/article/1189

相关内容