NTPD压缩时间,当它不需要

我有一些奇怪的行为在rhel 6.5机器上运行ntpd。 这台机器作为kvm主机(也是rhel)上的虚拟机运行,并且该主机具有正确的时间(几毫秒内)以及保持正确的ntpd。

我注意到,在我做了一个ntpdate -u之后,时间最终会变好,并且通常呆在那里。 然而,红帽推荐在虚拟客户端上运行ntpd。 所以我开始ntpd。 现在,我们大部分的主机都能正常工作,除了less数几个看到奇怪行为的地方外。

在ntpd启动时,在这些主机上,时间开始在这些系统上滞后约0.5 ms / sec(或者最大ntpd的500 ppm将会使时间缩短)。 而这甚至在ntpd已经获得同行之前,它可以同步…

停止ntpd停止漂stream的时间。 启动它,时间又开始漂移了。

换句话说,我似乎有一个ntpd,在某些系统上(这使我感到困惑,因为它们都是完全相同的)或多或less地反映了它应该做的事情。

我的ntp.conf非常简单:

tinker panic 0 # Permit time synchronization with our time source, but do not' # permit the source to query or modify the service on this system.' restrict default kod nomodify notrap nopeer noquery restrict -6 default kod nomodify notrap nopeer noquery restrict 127.0.0.1 restrict -6 ::1 server time.mydomain.com # Driftfile. driftfile /var/lib/ntp/drift 

这可能是什么原因?

这听起来像ntpd对虚拟机的时钟漂移有一个不正确的想法,并且错误地补偿了漂移。 停止ntpd,删除driftfile并重新启动ntpd。

如果这不能解决问题,请考虑切换到chrony。 这是EL 7中的默认NTP客户端,可用于EL 6的EPEL。

我之前没有遇到过这样的问题,因为我的虚拟机运行在VirtualBox或ESXi上。 两种解决scheme都将主机的时钟暴露给客户机,因此我不会遇到时钟问题。 我会让你尝试有问题​​的时钟的虚拟机使用主机作为NTP服务器(当然,相应地修改主机的ntp.conf)。

无论如何,我发现以下非常有趣。

http://support.ntp.org/bin/view/Support/KnownOsIssues#Section_9.2.2

当然,如果你运行RHEL(而不是CentOS),我强烈build议你打开支持票。