我办公室里有 13 台电脑,我想确保它们的时间同步。我想到配置一个虚拟服务器作为本地网络的NTP服务器。该 NTP 服务器将与服务器池同步。在客户端上,是否可以只引用一个 NTP 服务器并将其标记为prefer
并注释掉其余服务器,或者我也应该列出池?
我的想法是,如果互联网崩溃了,本地网络上的冗余无论如何也无济于事。也许我应该在 NTP 服务器上添加一行以依靠其自己的内部时钟传递给客户端?
客户端 ntp.conf
server LOCAL_NTP_IP prefer
#server 1.US.POOL...
#server 2.US.POOL...
答案1
除了其他答案之外,如果您需要保持时间合理地接近现实,并且您怀疑您的本地网络可能会长时间与互联网断开连接,您可以校准 NTP 服务器上的时钟。安装 adjtimex,在没有 NTP 的情况下运行服务器几天,找到时间漂移 (ntpdate -q pool.ntp.org) 并查看http://www.ep.ph.bham.ac.uk/general/support/adjtimex.html计算器可以帮助您找出要放入 /etc/adjtime 的内容(可能取决于您的发行版)。
您还可以查看 /sys/devices/system/clocksource/clocksource*/available_clocksource 以获得可用时钟源,并尝试选择一个更精确的时钟源(放入 /sys/devices/system/clocksource/clocksource0/current_clocksource 中)。我发现 hpet 漂移仅占我服务器上 tsc 的 10% 左右。
答案2
对于少量机器来说,负载很低。所以我可能会让他们全部查询池服务器。
除非您的网络停机时间超过一天,否则我怀疑您将从本地服务器中获得巨大的好处。但安装成本也非常低,因此可能是值得的。我会选择一台机器作为本地服务器。如果它下降了,每个人都会按照最后设定的速率滴答作响,并且应该保持良好的状态。如果指定的服务器已启动,那么当池关闭时,所有服务器都将使用它。
在这种情况下不需要使用“更喜欢”。
对于指定服务器:
server 0.pool.ntp.org
[...]
server 127.127.1.1 # local clock
fudge 127.127.1.1 10 # don't trust the clock much
致所有客户:
server 0.pool.ntp.org
[...]
server local.designated.server
- 网络连接 - 所有客户端与池同步
- 网络关闭/服务器启动 - 其他客户端与您的服务器同步
- 网络故障/服务器故障 - 其他客户端按最后配置的速率计时
如果您认为 13 不再是一个“小数字”并且您想减少池上的负载(并且您不想获得便宜的 GPS 时钟),那么您可以将一到两台机器同步到池中并同步剩下的交给他们。
指定服务器1
server 0.pool.ntp.org
[...]
server 127.127.1.1 # local clock
fudge 127.127.1.1 10 # don't trust the clock much
指定服务器2
server 0.pool.ntp.org
[...]
server local1.designated.server
server 127.127.1.1 # local clock
fudge 127.127.1.1 12 # don't trust the clock much
所有其他客户
server local1.designated.server
server local2.designated.server