Linux 时间同步问题

2021-02-22 15:18:23 +08:00
 s6xwenqian
有一台服务器 作为环境中其它三台服务器时间同步的服务端,这三台服务器使用 chrony 作为客户端。同时这三台服务器也是它们所有的虚机的时间同步的服务端。

所有虚机使用 ntp 服务,并将其中一台服务器作为 prefer server.当执行 ntpq -p 指令时,默认情况下 prefer 的 server 都是主同步对象。

现在有一种需求是,当 prefer 的那台 server 作为客户端与它自己的服务端网络不通时,虚机需要将主同步对象自动切换到其它两台服务器之一上。

百度了好久,也查阅了 ntp 和 chrony 相关的文档,没有找到相关信息。不知道是不是我漏掉了,求各位老哥帮助。
1493 次点击
所在节点    程序员
7 条回复
s6xwenqian
2021-02-22 15:36:21 +08:00
老哥们,来呀,来呀。看看吧
northisland
2021-02-22 16:12:32 +08:00
没用过,不过找到了 ntp 代码。
https://github.com/ntp-project/ntp
northisland
2021-02-22 16:14:42 +08:00
看起来可以用 python 脚本稍微开发一下,实现你的需求。
iceecream
2021-02-22 17:00:51 +08:00
不用想的这么复杂。
你可以把现在的 3 台服务器,都加入到虚拟机的 ntp 配置中,虚拟机会最优选择这 3 台中的最佳的 server 。
如果硬要实现你这个需求,那可以在这 3 台服务器中,跑 keepalived 。perfer server 的优先级设置的高一点,然后写 track_script 实现切换即可。
ik
2021-02-22 18:05:13 +08:00
chrony 这几行就是干这个的吧

server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
saytesnake
2021-02-23 10:15:10 +08:00
chrony 轻轻松松解决这些问题。
s6xwenqian
2021-02-23 13:52:07 +08:00
@saytesnake 怎么解决呀,老哥。
下面是我的 chrony 配置

server 最上层服务器 ip iburst
driftfile /var/lib/chrony/chrony.drift
log tracking measurements statistics
logdir /var/log/chrony
logchange 0.5
makestep 1 3
maxupdateskew 100.0
dumponexit
dumpdir /var/lib/chrony
hwclockfile /etc/adjtime
local stratum 10 orphan
rtconutc
rtcsync

# 开放给客户端虚机的 ip 端口
allow fd00:0:0:xx::/64
allow fd01:0:0:xx::/64
allow fd01:0:0:xx::/64

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/755111

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX