通过 LAN / WAN 使用 NTP 对 Solaris 服务器进行精确的时间同步

通过 LAN / WAN 使用 NTP 对 Solaris 服务器进行精确的时间同步

我在 LAN 上有 2 台服务器,我想精确同步它们。目标是使时间差小于 500 微秒,恒定,无漂移(从我在网上找到的信息来看,这是可以实现的精度)。

这两个服务器也必须具有“正确”的时间,但准确性不太重要(“真实”时间的 1 秒以内是可以接受的)。“官方”时间服务器只能通过 WAN 访问(因此延迟 - 准确性更高)。

最好的处理方法是什么?到目前为止,我已经将服务器 A 设置为官方时间服务器的 NTP 客户端,将服务器 B 设置为服务器 A 的 NTP 客户端。NTP 已经运行了一天多,漂移文件定期更新,但是我仍然可以看到服务器 A 和 B 之间的时间在漂移(每 55 秒大约 1 毫秒 - 非常有规律的漂移)。

有什么想法或意见吗?

谢谢

答案1

我有 2 个“内部”服务器。每个服务器的配置都与此类似

peer <otherserver>

server <reliable1.external.source>
server <reliable2.external.source>

restrict 127.0.0.1
restrict <otherserver>
restrict <reliable1.external.source> kod notrap nomodify
restrict <reliable2.external.source> kod notrap nomodify
restrict <ntpclients> nomodify notrap nopeer
restrict default ignore

driftfile /var/lib/ntp/drift

在 Solaris 10 上我已启用svcadm enable ntp4

顺便说一句,我会考虑购买 GPS+NTPd 时钟......

答案2

就我个人而言,对于两台服务器,我只会将它们都设置为使用来自互联网时钟的 NTP。这样,如果服务器 A 发生任何不规则偏差,它就不会扰乱服务器 B 的 NTP 过程。

在我拥有很多机器的情况下,我会有三个高度可靠且理想情况下具有优于平均水平的时钟的系统,并将它们设置为使用来自互联网时钟的 NTP,然后让其余系统使用 NTP。

(个人观点不尽人意:Sun(超级和普通)Sparc 系统的时钟质量从糟糕(Netra X1s)到优秀(SS20s 的时钟质量非常好)不等。其他 Suns 的时钟质量在同一系统型号内可能相差很大。当我说糟糕时,我的意思是“NTP 会放弃尝试在一天内保持同步”,糟糕。因此,您只能听天由命,任由系统时钟的质量摆布。)

答案3

我认为如果外部延迟相对恒定,则 ntp 协议可以为您提供相当准确的同步。我更担心的是,如果您的外部延迟波动,则 ntp 将难以实现最大精度。

这是一个非常技术性的pdf也就是说,只要使用正确的配置,就可以将精度降低到几纳秒。

如果你真的需要这种精度,你有没有想过安装某种ntp 设备并与之同步?这样就可以消除外部延迟的变量。

答案4

考虑投资专用的 ntp 服务器并将这些服务器同步到 ntp 硬件。除了从 GPS 等来源获取正确的时间外,它们还通过硬件和构建的选择进行了优化,以最大限度地减少抖动。正如一个答案中所述,您可以安装 ntpd 的某些类型的硬件仍会导致大量抖动。

专用 NTP 硬件并不便宜,但它可以节省您数周的时间寻找合适的计时系统。

相关内容