NTPD 在不需要时延迟时间

NTPD 在不需要时延迟时间

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

我注意到,在我执行 ntpdate -u 之后,时间最终会变得准确,并且通常保持准确。但是,Red Hat 建议在虚拟客户机上运行 ntpd。因此,我启动了 ntpd。现在,这在我们的大多数主机上运行良好,除了少数主机出现异常行为。

在这些主机上,ntpd 一启动,系统上的时间就开始滞后约 0.5 毫秒/秒(或 ntpd 的最大时间滞后 500 ppm)。这甚至是在 ntpd 获得可以同步的对等点之前发生的……

停止 ntpd 可使时间不再漂移。启动它,时间又开始漂移。

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

我的 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

这可能是什么原因造成的?

答案1

听起来 ntpd 对虚拟机时钟漂移的理解有误,并且错误地补偿了漂移。停止 ntpd,删除driftfile并重新启动 ntpd。

如果此方法无法解决问题,请考虑切换到 chrony。这是 EL 7 中的默认 NTP 客户端,在 EL 6 的 EPEL 中可用。

答案2

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

无论如何,我发现下面的内容非常有趣。

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

当然,如果您运行的是 RHEL(而不是 CentOS),我强烈建议您开具支持票。

相关内容