Linux里面chrony原理是什么?

Linux里面chrony原理是什么?,第1张

Chrony是NTP(Network Time Protocol,网络时间协议,服务器时间同步的一种协议)的另一种实现,与ntpd不同,它可以更快且更准确地同步系统时钟,最大程度的减少时间和频率误差。
在CentOS6中,默认是使用ntpd来同步时间的,但ntpd同步时间并不理想,有可能需要数小时来同步时间。而且ntp也已经很老了。所以在Centos7中换成了chrony来实现时间同步。chrony并且兼容ntpd监听在udp123端口上,自己则监听在udp的323端口上。
如果在chrony配置文件中指定了ntp服务器的地址,那么chrony就是一台客户端,会去同步ntp服务器的时间,如果在chrony配置了允许某些客户端来向自己同步时间,则chrony也充当了一台服务器,所以,安装了chrony即可充当客户端也可以充当服务端。一般我们只需要做客户端就好,不需要对外提供时间同步功能。
一、chrony是两个用来维持计算机系统时钟准确性的程序,这两个程序命名为chronyd和chronyc。
chronyd是一个在系统后台运行的守护进程。主要用于调整内核中运行的系统时间和时间服务器同步,他根据网络上其他时间服务器时间来测量本机时间的偏移量从而调整系统时钟。对于孤立系统,用户可以手动周期性的输入正确时间(通过chronyc)。在这两种情况下,chronyd决定计算机快慢的比例,并加以纠正。chronyd实现了NTP协议并且可以作为服务器或客户端。
chronyc是用来监控chronyd性能和配置其参数的用户界面。他可以控制本机及其他计算机上运行的chronyd进程。
服务unit文件: /usr/lib/systemd/system/chronydservice
监听端口: 323/udp,123/udp
配置文件: /etc/chronyconf
二、chrony 的优势:
更快的同步,从而最大程度减少了时间和频率误差,对于并非全天 24 小时运行的虚拟计算机而言非常有用
能够更好地响应时钟频率的快速变化,对于具备不稳定时钟的虚拟机或导致时钟频率发生变化的节能技术而言非常有用
在初始同步后,它不会停止时钟,以防对需要系统时间保持单调的应用程序造成影响
在应对临时非对称延迟时(例如,在大规模下载造成链接饱和时)提供了更好的稳定性
无需对服务器进行定期轮询,因此具备间歇性网络连接的系统仍然可以快速同步时钟

1 修改注册表项
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
Enabled 设定为 1(默认0)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\
AnnounceFlags 设定为 5 (默认 10)
Value
Meaning
0
Timeserv_Announce_No, Reliable_Timeserv_Announce_No The domain controller does not advertise time service
1
Timeserv_Announce_Yes The domain controller always advertises time service
2
Timeserv_Announce_Auto The domain controller automatically determines whether it should advertise time service
4
Reliable_Timeserv_Announce_Yes The domain contoller will always advertise reliable time service
8
Reliable_Timeserv_Announce_Auto The domain controller automatically determines whether it should advertise reliable time service
2 禁用防火墙或设置例外,UDP 123端口。
3 运行 servicesmsc,将Windows Time服务设置成自动(延迟启动)
Win7下如果设置成自动,下次重启后此服务会被停止,原因不详。
经实验,延迟启动也并不需要用户登录即可启动。
4 重启动校时服务:net stop w32time && net start w32time
网络设备(如cisco、h3c交换机……)不能正常同步NTP服务器时间:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\LocalClockDispersion
值修改为0 (默认为0x0000000a)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10728184.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存