我们的服务器 2008 R2(非域成员)GCE 实例在过去几周出现系统时钟问题。
使用 Windows 时钟界面,将时区设置为山地时间 (UTC-07:00),并设置为自动与 pool.ntp.org 同步(今天上午将该设置更改为 time.google.com)。我还使用 tzutil 验证了 TZ。上周时间保持正确,经受住了夜间维护窗口重新启动,直到周末某个时候它发生了变化。更改的结果是时间变成了 UTC,但时区仍设置为山地时间 - 因此 GCE 系统的时钟比当地时间早 7 小时。
安装了几个应用程序,将它们“转换”为与 UTC 配合使用会很麻烦,因为它们会在办公时间以外发生的事件时向用户发送通知,因此我试图弄清楚如何将其保持在 MST 上。
已经查看过此选项:Google Compute Engine Windows 区域设置
并没有从这篇文章中找到任何答案:GCC VM 上的时钟同步的精确文档?
还有其他人必须解决使 GCE 中的 Windows 服务器与当地时间同步的问题吗?
答案1
作为 Windows Server 2008 R2 的解决方法,您可以尝试使用RealTimeIsUniversal 注册表项,正如评论部分所建议的那样@迈克尔·汉普顿,如果您遇到同样的问题。
较新版本的 Windows Server 包含改进1 2它通过 NTP 提供更准确的系统时钟,并使其在 VM 中运行时更加准确。
另外,请查看文档为实例设置网络时间协议 (NTP)部分为您的实例配置 NTP:
Google 无法预测外部 NTP 服务(如 pool.ntp.org)将如何处理闰秒。如果可能的话,建议您不要将外部 NTP 源与 Compute Engine 虚拟机一起使用。更糟糕的是,同时使用 Google 的 NTP 服务和外部服务可能会导致系统时间发生不可预测的变化。仅使用单个外部 NTP 源比使用混合源更好,但外部 NTP 服务(例如 pool.ntp.org)可能会使用步进来处理闰秒。因此,您的虚拟机可能会看到重复的时间戳。
您可以使用 PowerShell 命令检查 Windows VM 上的当前配置:
w32tm /query /configuration
如果您看到一条指向
metadata.google
或 的记录metadata.google.internal
,则无需进行任何更改。如果您看到多个来源,且混合在 metadata.google 和公共来源之间,则需要删除外部服务器。
此外,请注意Windows Server 2008 和 Windows Server 2008 R2 的支持生命周期即将结束。