NTP 正在运行,VM 上的服务器时间错误

NTP 正在运行,VM 上的服务器时间错误

服务器时间差了 7 个小时(虽然显示的时区正确,但不是上午 10 点,而是上午 3 点date)。ntpq 的输出为:

$ ntpq -p

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 xx.xxx.xxx.x.ar xxx.x.xx.xx      2 u   72 1024  177    6.516  2520657 1650156
 ntp.xxxx.ac.uk  xxx.xxx.xxx.x    2 u   7h 1024  377   14.039  2520655 1347346
 xxx.xxx.xxx.xx  xxx.xxx.xxx.x    2 u  114 1024  377    5.449  -18.941 2130343
 ns1.xxxxxxx.com xxx.x.xx.xx      2 u  148 1024  377    8.050  2520655 1650156

时间已确定:

ntpdate -u 0.europe.pool.ntp.org

然而,几天后又发生了这种情况。我怀疑第二行ntpq -p,它说它已经7 小时自上次收到数据包以来。但如果这是原因,那么为什么 ntp 不使用其他服务器来同步时间?

发生了什么事?您将如何防止此类事件再次发生?

编辑另一个需要考虑的问题是它是一台虚拟机。虚拟机是否可能处于某种暂停状态?

请注意已vmware-toolbox-cmd timesync status被禁用。

答案1

启动时,ntpd 检查主机与远程 NTP 服务器之间的时间差。如果时间差太大(通常为 10-15 分钟),则拒绝去改变任何事。

执行后,ntpdate您实际上使用了一次性、更简单的 SNTP 实现,该实现将您的时间控制在 ntpd 本身所执行时间的毫秒级内。现在,如果您重新启动 ntpd 服务,您应该会有一个同步的服务器(使用 进行检查ntpq -p)。

一个简单的永久解决方案是首先ntpdate在启动过程的早期使用,然后在一段时间后启动“真正的”ntp 守护程序。根据记录,CentOS 6.x 和 7.x 执行的操作完全相同:如果您同时安装 ntpdate 和 ntp,前者将在启动过程的早期使用,而后者将在稍后阶段使用。

答案2

看来您的 ntp 因过度的抖动/偏移而无法同步,我建议您尝试您所在国家/地区附近的其他 ntp 服务器池。

没有必要在你的状态中混淆ip,因为这些ip是公开的,并且有据可查的服务器

如果您的机器在 VMware 下运行,请检查http://www.vmware.com/files/pdf/Timekeeping-In-VirtualMachines.pdf保持物理服务器的 ntp 时钟对齐

关于“另一件可能需要考虑的事情是它是一个虚拟机。虚拟机是否可能处于某种暂停状态?”

是的,即使 VMware Tools 设置为禁用同步,VMware 也会在暂停后重新同步时钟

无论您是否打开 VMware Tools 定期时间同步,时间同步都会在某些操作后发生:

  • 当 VMware Tools 守护程序启动时(例如在重新启动或开机操作期间)
  • 从挂起操作恢复虚拟机时
  • 恢复到快照后
  • 缩小磁盘后

相关内容