我在 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
答案4
考虑投资专用的 ntp 服务器并将这些服务器同步到 ntp 硬件。除了从 GPS 等来源获取正确的时间外,它们还通过硬件和构建的选择进行了优化,以最大限度地减少抖动。正如一个答案中所述,您可以安装 ntpd 的某些类型的硬件仍会导致大量抖动。
专用 NTP 硬件并不便宜,但它可以节省您数周的时间寻找合适的计时系统。