了解更多银河麒麟操作系统全新产品,请点击访问
麒麟软件产品专区:https://product.kylinos.cn
开发者专区:https://developer.kylinos.cn
文档中心:https://documentkylinos.cn
Chrony介绍
Chrony 是一个用于时间同步的软件。它可以将系统时钟与NTP服务器、参考时钟(如GPS接收器)以及使用手表和键盘的手动输入同步。它还可以作为NTPv4(RFC 5905)服务器和对等端操作,为网络中的其他计算机提供时间服务,精度通常以几十微秒为单位。
它可以在间歇性网络连接、严重拥塞的网络、不断变化的温度(普通计算机时钟对温度敏感)以及不连续运行或在虚拟机上运行的系统等各种条件下良好运行。
两个主要程序:chronyd和chronyc
chronyd:后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿
chronyc:命令行用户工具,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可在一台不同的远程计算机上工作。
NTP/Chrony功能对比
以下是 chrony 官网中 chronyd 和 ntpd 的时间同步准确性详细对比
在各种时钟和网络条件下将chrony和ntp的精度比较结果如下:
图1 网络和时钟均稳定的情况
图2 网络稳定但始终不稳定
图3 间歇性网络连接
通过图1、图2、图3三种形势下的对比可以看到,chrony 具有更精确的时间准确性,精度更高。
图4 间歇性校准时间
图5 最小间歇时间
如图4、图5所示对比时间校准方式和最小间歇时间,可以确认chrony 可以随机间歇性校准时间,而NTP需要定期轮询才能正常工作,而且chrony有更小的时间轮询间隔,可以更快的同步时钟。
对比总结
chrony的优势
chrony可以在对时间参考的访问是间歇性的环境中发挥作用。ntp需要定期轮询引用才能正常工作。
chrony通常可以更快、更准确地同步时钟。
chrony快速适应时钟速率的突然变化(例如,由于晶体振荡器的温度变化)。ntp可能需要很长时间才能重新稳定下来。
chrony即使在网络拥塞时间较长的情况下也能表现良好。
默认配置中的chrony从不占用时间来扰乱其他正在运行的程序。ntp也可以配置为从不计时,但在这种情况下,它必须使用不同的方式来调整时钟(守护进程循环而不是内核规程),这可能会对时钟的准确性产生负面影响。
chrony可以在更大的范围内调整时钟的速率,这使得它即使在时钟损坏或不稳定的机器上(例如,在一些虚拟机中)也可以运行。
chrony更小,使用更少的内存,并且只有在必要的时候才会唤醒CPU,这更利于节能。
chrony可以,ntp做不到的
chrony支持网络时间安全(NTS)身份验证机制。
chrony支持Linux上的硬件时间戳,这允许在本地网络中实现极其稳定和准确的同步。
chrony为隔离网络提供支持,无论唯一的时间校正方法是手动输入(例如管理员查看时钟)。chrony可以查看在不同更新时校正的错误,以计算出计算机获得或丢失时间的速率,并使用此估计值随后调整计算机时钟。
chrony支持计算实时时钟的增益或损耗率,即保持计算机关闭时间的时钟。它可以在系统启动时使用这些数据,根据实时时钟的校正版本设置系统时间。
ntp可以,chrony做不到的
ntp支持RFC 5905中的所有操作模式,包括广播、多播和manycast服务器/客户端。然而,与普通的服务器/客户端模式相比,广播和多播模式固有地不那么准确和不那么安全(即使有认证),通常该避免。
ntp支持自动密钥协议(RFC 5906),以使用公钥密码对服务器进行身份验证。但该协议已被证明是不安全的,并且已被NTS废除(RFC 8915)。
ntp包括用于各种硬件参考时钟的大量驱动程序。chrony需要其他程序(例如gpsd或ntp refclock)通过SHM或SOCK接口提供参考时间。
后续计划及建议
使用chronyd服务平滑同步时间的方式要优于crontab + ntpdate,因为ntpdate同步时间会造成时间的跳跃,对一些依赖时间的程序和服务会造成影响,建议使用chrony服务来用于时间同步服务。
但是对于生产环境已经长期稳定是用ntp服务来进行时间同步的环境,建议保留ntp环境,不建议强制将ntp更换为chrony。