适当的NTPconfiguration为less数服务器

我在一个小型networking中有大约20台Linux服务器,我需要他们的时钟相当接近(例如在20毫秒内)。 我已经开始与他们每个人同步到europe.pool.ntp.org和工作完成。

现在我有两个问题:

  1. 我是一个明显的负担池? 也就是说,如果我从20台服务器或从2台服务器打到游泳池有什么明显的区别?
  2. 如果它确实有什么区别是什么设置/configuration将保持我的子网同步和池轻负载? 有大型networking的指导( http://www.ntp.org/ntpfaq/NTP-s-config-adv.htm#AEN3101 ),但我没有发现小networking。

  1. 我是一个明显的负担池? 也就是说,如果我从20台服务器或从2台服务器打到游泳池有什么明显的区别?

鉴于这个游泳池多年来一直需要服务器(见[1]),我会说虽然有2或20台服务器并没有真正改变,但是你应该永远记住你并不孤单。 所以你最好考虑说1000个pipe理员,在这种情况下,我们正在谈论2000或20000台服务器,这确实有所作为。

  1. 如果它确实有什么区别是什么设置/configuration将保持我的子网同步和池轻负载?

您必须将networking中的两台[2]服务器同步到池(我们称之为本地NTP服务器 ),然后将所有其他服务器同步到这两台服务器。

本地NTP服务器的configuration

replaceserver并用以下命令restrict ntp [d] .conf中的行,并将其余部分保留为您的分发默认值[3]:

 server 10.11.12.1 iburst peer # ^^^^^^^^^^^ # The LAN IP of the _other_ Local NTP server server 0.europe.pool.ntp.org server 1.europe.pool.ntp.org server 2.europe.pool.ntp.org server 3.europe.pool.ntp.org restrict -4 default kod notrap nomodify nopeer noquery restrict -6 default kod notrap nomodify nopeer noquery restrict 127.0.0.1 restrict ::1 

请注意,此configuration还允许来自Internet上的主机通过NTP查询查询您的主机时间。 如果你不想使用你的防火墙 。

备注:

  1. 在我的例子中,10.11.12.1和10.11.12.2是本地NTP服务器的IP地址(它们有两个网卡,一个面向公共互联网,另一个网卡是本地的10.11.12.x子网)
  2. 每个本地NTP服务器都有另一个声明为对等体(对等体基本上是指服务器和客户机 – 您使用另一个主机作为时间源,另一个主机也使用您作为时间源)。 因此, 调整第一行的IP,使每个本地NTP服务器的configuration指向另一个作为对等体。
  3. 我已经按照最佳实践configuration了4个池服务器。 configuration4台以上的服务器在技术上是可以接受的,但是你会增加到NTP池的负载,使可用性增加,所以不要这样做。

所有其他服务器的configuration

服务器行应该只涉及2个本地NTP服务器:

 server 10.11.12.1 iburst server 10.11.12.2 iburst # ^^^^^^^^^^ # The IPs of your 2 Local NTP Servers 

如果您有两个networking接口 ,则最好使用它们来创build本地子网(例如10.11.12.0/24 ),并使用该第二个子网进行NTP查询。 在这种情况下,限制线可能会更紧张:

 restrict -4 default ignore restrict -6 default ignore restrict 10.0.0.0 mask 255.0.0.0 kod notrap nomodify nopeer noquery restrict 127.0.0.1 restrict ::1 

如果您没有两个networking接口 ,则应使用波纹pipe限制线(并阅读有关使用防火墙阻止访问上面的NTP服务器的说明)。

 restrict -4 default kod notrap nomodify nopeer noquery restrict -6 default kod notrap nomodify nopeer noquery restrict 127.0.0.1 restrict ::1 

笔记

此处介绍的设置还提供了另一个好处:所有服务器之间的时间间隔将更紧密(小于1毫秒)。

[1]从2006年到2012年,他们不断要求更多的服务器join: 2006年的要求, 2009年的一个和2012年的 。 而如果我们以欧洲为例,2012年以来服务器数量变化不大

[2]两个本地NTP服务器仅作为一种简单的方式来提供冗余而无需复杂的高可用性安排。

[3]我已经在CentOS,Debian和Ubuntu上testing了我的解决scheme。 我想它在大多数其他发行版中都起作用。

Rant哦! 我讨厌NTP(除了我喜欢它的作品)。 官方文件中充满了过时的信息,他们有“如何使用它?” 信息混杂着关于内部的科学细节。 我也讨厌如何restrict 127.0.0.1真的意味着allow everything for 127.0.0.1


更新的历史

我已经从本地NTP服务器的configuration中删除了iburst选项,因为它们对池的友好性是有争议的。 (看评论)。 删除它们只会使第一次同步等待几分钟。


积分

来自SF用户的评论和回答Marki和Sven为这个答案提供了一个很好的起点。 感谢他们两人。

通常的做法是使用分层设置 – 将networking中的一台或两台服务器与池同步,然后将其用作本地时间源。 这个级别在NTP术语中被称为分层

另外,想一想:如果你这样做,就像你描述的那样,它不会是真正引人注目的,但如果1000个站点的大小开始这个,你最终以20k大多数不必要的请求,在某些时候,它变得明显。

阅读http://en.wikipedia.org/wiki/Network_Time_Protocol