NTP:如何建立NTP服务器的冗余解决方案?

NTP:如何建立NTP服务器的冗余解决方案?

我公司的基础设施中,有 5 个位于远程位置的数据中心。

在每个远程位置,都有一对服务器拥有 DNS 和 NTP 服务,并且在该位置的每个服务器上都配置了从这两个服务器获取 DNS 和 NTP 调用。

所有服务器都是 CentOS 6.x 机器。

在 DNS 和 NTP 方面,有动机在这两个服务器之间创建冗余。

DNS 部分已涵盖,我只遇到 NTP 问题。

什么是正确的方法,以确保当一个 NTP 服务器出现故障时,第二个/其余的服务器将继续为客户端提供服务,就像什么都没发生一样?

我在 Google 上搜索了一下,找到了一个RedHat 解决方案将其中一台服务器设置为主服务器(通过在客户端中将其配置为“true”),但万一“true”(主)服务器发生故障……那么它就会发生故障,客户端将无法从中获取 NTP 更新,所以它不是一个纯粹的冗余解决方案。

我想知道是否有人有配置此类解决方案的经验?

编辑#1:

为了测试 MadHatter 的答案,我做了以下事情:

  1. 我已经停止了服务器上的 NTPd,该服务器在每个 NTP 客户端上都配置为“首选”。
  2. 我正在等待 NTP 客户端停止针对该服务器的工作并开始针对其合作伙伴 NTPd 服务器的工作。
  3. 我在客户端上运行ntpq -p以查看更改。这是输出ntpq -p
[root@ams2proxy10 ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 10.X.X.38      .INIT.          16 u    -  128    0    0.000    0.000   0.000
*10.X.X.39      131.211.8.244    2 u    2   64  377    0.123    0.104   0.220

什么是“as in ntpq”?我应该运行哪个命令?

编辑#2: 输出为:

[root@ams2proxy10 ~]# ntpq
ntpq> as

ind assid status  conf reach auth condition  last_event cnt
===========================================================
  1 64638  8011   yes    no  none    reject    mobilize  1
  2 64639  963a   yes   yes  none  sys.peer    sys_peer  3
ntpq>

pe的输出:

ntpq> pe
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 10.X.X.38      .INIT.          16 u    -  512    0    0.000    0.000   0.000
*10.X.X.39      131.211.8.244    2 u   36   64  377    0.147    0.031 18874.7
ntpq>

答案1

我认为这不是什么问题:NTP 已经可以解决这个问题。

您没有“主”NTP 服务器和一些辅助服务器:您有一组配置好的服务器。NTPd 将决定哪个服务器可靠,哪个服务器最有可能提供良好的时间信号,并且它将不断重新评估其决定。

这是过去一个月左右来自我的 NTP 池服务器的一组绑定:

munin NTP 状态图

如您所见,大多数时间状态 6(系统对等点)由绿线占用,ntp0.jonatkins.com这是我有权限绑定的 1 层服务器(我所有的其他服务器都是 2 层,因此如果没有其他因素,NTPd 会优先选择较高层的服务器)。

但是,您可以看到该线在第 44 周初期出现下降,并且图像下方的数值证实,在图表期间,ntp0.jonatkins.com下降到状态 4(异常值),而linnaeus.inf.ed.ac.uk大部分时间处于状态 5(候选值),但最高达到 6(系统对等)。(这些线没有一直下降到 4/上升到 6,因为这些是 5 分钟原始数据的 2 小时平均值;大概发生的一切持续时间明显少于 2 小时,因此已被平滑。)

这表明,在没有任何输入的情况下,NTPd 在某个时候决定其常用对等点不够可靠,并在“中断”期间选择了最佳替代源。一旦其首选对等点再次通过其内部 QA 测试,它就会恢复对等状态。

答案2

四个或更多 NTP 对等体提供错误时钟检测和 n+1 冗余。这也是Red Hat 的建议(尽管现在它似乎是仅限订阅者的内容)。

选择 4 个或更多 Internet 源或使用 NTP Pool 项目。如果有的话,请添加非 Internet 源(如 GPS 时钟)。将所有 NTP 服务器配置为所有这些源。

验证您的 NTP 服务器是否分布在整个基础设施中,并尽可能减少单点故障。使用不同的机架、配电、网络和互联网连接、数据中心等。

配置所有“客户端”主机以使用所有 NTP 服务器。每个客户端至少配置 4 个。

这种配置非常有弹性。你可以丢失任何一个 NTP 对等体,但仍然可以检测到错误时钟,从而丢弃一个错误时钟。

相关内容