![NTP 正在运行,VM 上的服务器时间错误](https://linux22.com/image/657144/NTP%20%E6%AD%A3%E5%9C%A8%E8%BF%90%E8%A1%8C%EF%BC%8CVM%20%E4%B8%8A%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%97%B6%E9%97%B4%E9%94%99%E8%AF%AF.png)
服务器时间差了 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 守护程序启动时(例如在重新启动或开机操作期间)
- 从挂起操作恢复虚拟机时
- 恢复到快照后
- 缩小磁盘后