首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在NTP服务器上使用大量由NTP同步的机器来固定时间

如何在NTP服务器上使用大量由NTP同步的机器来固定时间
EN

Server Fault用户
提问于 2015-10-22 00:38:27
回答 2查看 1.6K关注 0票数 5

我有一个NTP服务器有一个错误的时间设置是7小时在未来(时区是改变后,机器装运,但不是时间)。服务器本身不是同步的,而是只有本地时钟。在此服务器上,超过10个客户端同步他们的时钟,从而导致整组服务器的时间不对。

我如何更改NTP服务器上的时间,使更正被关闭,并且所有客户端也将得到纠正?我首先通过"date MMDDhhmm“进行了修复测试,它允许客户端断开与服务器的连接( ntpq中服务器名前面的星号消失了)。

我不知道当我手动更改所有服务器上的时间时,所有同步服务将如何运行,将时钟设置为7小时,从而使系统拥有未来的文件。可能会有崩溃,系统为工厂生产提供服务。

EN

回答 2

Server Fault用户

发布于 2015-10-28 13:01:33

当你谈论消磨时间时,你通常是在谈论少量的时间。修复是通过调用adjtime()来执行的,或者在linux上(可能是adjtimex() )执行。

来自ntpd手册页:

代码语言:javascript
复制
   -x     Normally, the time is slewed if the offset is less than the step
          threshold,  which is 128 ms by default, and stepped if above the
          threshold.  This option sets the threshold to 600  s,  which  is
          well  within  the  accuracy  window  to  set the clock manually.
          Note: Since the slew rate of typical Unix kernels is limited  to
          0.5  ms/s,  each  second  of adjustment requires an amortization
          interval of 2000 s.  Thus, an adjustment as much as 600  s  will
          take  almost  14 days to complete.  This option can be used with
          the -g and -q options.  Note: The kernel time discipline is dis‐
          abled with this option.

我怀疑你们是否会希望在这个速度下等待一个7小时的修正。要花一年多的时间。在linux上,32位系统上的adjtime实际上被限制为大约2000秒的增量。64位系统可能使这成为一个无问题,但变化的速度将生效仍然是一个关注。

所以在linux实现中有一个阈值,大概还有其他的,在这个阈值下,你可以得到一个非常慢的“slew”,但是在这个阈值之上,主机和客户端上的系统时钟将被加快,这可以进行得更快。

还有另一个阈值,如果主客户机之间的时间差太大,客户端将假设出现错误而不进行更新。来自ntpd手册页:

代码语言:javascript
复制
   -g     Normally, ntpd exits with a message to the  system  log  if  the
          offset  exceeds the panic threshold, which is 1000 s by default.
          This option allows the time to  be  set  to  any  value  without
          restriction; however, this can happen only once.  If the thresh‐
          old is exceeded after that, ntpd will exit with a message to the
          system log.  This option can be used with the -q and -x options.

注意,几乎肯定没有为守护进程设置-g选项。它通常用作ntpd -gq,在系统启动时作为一次性运行,或者手动运行,其行为非常类似于ntpdate。不过,在编译时,恐慌阈值可能是可配置的,因此请查看操作系统供应商的手册页(S)。

这是相当直接的,编写一个程序,将作出一系列的时间调整,使用任何频率和大小的调整,您选择。您可以在ntp主服务器上这样做,它将为它的客户端提供调整时间,但是您需要知道客户机系统将接受的最大大小调整,以及什么最小阈值将导致它们执行非常慢的调整。为了安全起见,您应该检查客户端系统上的ntp实现。

如果您在没有-x选项的情况下更新与linux上默认ntpd类似的系统,那么您可以使用一种机制,比如每5秒进行一次半秒的调整,然后在大约3天的时间内保持同步。进行不跨越第二个边界的亚秒级调整可能有助于避免触发两次cron作业之类的事情,但您可能会发现一些副作用。

如果最终您的服务器不再相互同步,则会变得更加混乱。如果可行的话,我希望监视时差,并在某些服务器不再跟踪的情况下自动停止自动定期更新,并发出警报。

票数 5
EN

Server Fault用户

发布于 2015-10-29 18:32:36

如您所知,如果时钟变化在一个小间隔内,客户端将保持同步。在某些系统中,这只需时5分钟。你的可能是10分钟。你可以在这个时间间隔内跳过时钟,客户就会拼命跟踪。

我可以看到四种选择:

  1. 无所事事,无限期地生活在不正确的时间里。
  2. 将时钟重置4分钟(如果你有600秒的间隔,则重置9分钟),并在mc0e拥有计算是必要的的年份重复广告。你真的很想用脚本来做这件事。今年大部分时间都是不正确的。对时间进行大量的记录,以与生产报告相关联。
  3. 把服务器关闭7个小时的维护期(圣诞节,有人吗?)一次把所有的钟都修好。
  4. 跳过时钟,确保每个人都知道会有7个小时的报告重叠。然而,这些人应该已经知道,生产时间是7个小时,所以你可能会发现这是可以接受的。(很明显,我不知道这会对你的工厂流程产生什么影响。)

没有一个解决方案是理想的。如果生产报告时间很重要,那么选项2可能是最糟糕的一堆。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/730704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档