在包含任意数量计算机的本地网络中,我们能够使计算机时钟同步到多精确?

在包含任意数量计算机的本地网络中,我们能够使计算机时钟同步到多精确?

过去,我发现我的本地网络上的大多数计算机的时间实际上在 1 秒左右的范围内不一致。

因此,我想确保一组服务器(例如 48 台 1U 计算机)都拥有完全相同的时钟。我知道我可以使用 NTP 来解决此问题,并且我知道我可以让一台服务器从原子钟获取时间,其他服务器与该服务器同步。

不过,我对该技术有一个主要的担忧:如果那台服务器崩溃了,那么我的时间同步就会停止......这根本不好。

有没有一种适当的方法可以确保 48 台计算机的时钟同步精度达到 0.5µs 左右?如果不是 0.5µs,我们还能指望什么呢?(即 0.5ms?)

答案1

NTP 可以使用服务器池(例如http://www.pool.ntp.org/en/但你可以构建自己的服务器)来避免一台服务器宕机的情况,并且如果由于某种原因所有父服务器都不可用,服务器还可以维护本地时钟。

答案2

我确实找到了博客文章有我正在寻找的信息。他们提到他们的集群中的计算机使用 NTP 以 1ms 正确同步。

看起来像点对点,正如迈克尔·汉普顿所建议的,遵循同样的策略:它将使用一台计算机,特级大师作为时间同步的来源,而不是试图在所有计算机上获取正确的绝对时间(因此,如果特级大师与世界公认的标准相差 10 毫秒绝对实时,所有节点将关闭10ms)。

该文件提出的解决方案是:

1)设置一台计算机,使用 NTP 检索绝对时间。如果该计算机发生故障,时钟可能会开始漂移,但它们彼此之间不会变得不准确,它们会与绝对实时仅有的。

在这种情况下,您使用server定义(特级大师):

server 0.debian.pool.ntp.org iburst
server 1.debian.pool.ntp.org iburst
server 2.debian.pool.ntp.org iburst
...

还将这台计算机设置为 NTP 服务器,例如local.ntp

2)将其他计算机设置为对等计算机

server local.ntp   # only on a few other (3 to 5) computers
peer c0 iburst
peer c1 iburst
peer c2 iburst

您不需要将所有 48 台计算机都相互连接,而是需要 3 到 5 台计算机,每台计算机使用略有不同的设置 (c1、c2、c3,然后是 c2、c3、c4 等)。结果,您将获得一个尽可能紧密同步的对等网络,其中几台计算机 (3 到 5 台) 链接到 (1) 中定义的节点,即local.ntp,使时间尽可能接近实时。

local.ntp引用本身可被视为对等体(您甚至可以使其成为对等体?)

PS :在半公共网络上restrict使用时强烈建议使用,以防止其他人访问您的 NTP 网络。peer

相关内容