- Chrony简介
Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器(NTP)同步,因此让你的计算机保持精确的时间,Chrony也可以作为服务端软件为其他计算机提供时间同步服务。
Chrony由两个程序组成,分别是chronyd和chronyc。chronyd是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。chronyc提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。
Chrony运行于UDP323端口,ntp运行于UDP123端口,使用chrony服务器可以同时为chrony客户端和ntp客户端提供服务
- V10-desktop-GFB时间服务(Chrony)的安装与配置
1.安装chrony软件包,默认的光盘源离没有集成该软件包,需要按照如下配置网络源来安装,能看到6万多软件包证明配置成功。
接下来使用:apt-get install chrony -y 安装软件包
2.修改Chrony的配置文件/etc/chrony/chrony.conf
(1)Chrony服务既可以作为服务端,也可以作为客户端,这里首先作为客户端来配置,配置信息如下图所示:
注明:这里只需要添加一行参数:
server time1.cloud.tencent.com iburst //跟腾讯的时间服务器同步
(2)重启服务:systemctl restart chronyd.service
(3)使用命令:chronyc sources -v 查看同步结果
注意:只有出现 ^* 才代表成功,出现其他符号表示没同步成功
(4)使用Chrony服务作为时间服务器,按照如下图修改配置文件:
服务端:V10-desktop-GFB配置如下
表示允许192.168.253.0/24网段的机器与我同步时间,这里可以根据需求自定义,改完配置文件后使用:systemctl restart chronyd.service 重启服务。
时间服务客户端的配置如下:
表示我要与192.168.253.180时间服务器同步时间,iburst表示立刻同步,改完配置以后重启服务。然后使用:chronyc sources -v查看同步结果如下:
出现 ^* 代表同步成功
- V10-server-GFB时间服务(Chrony)配置
服务器自带chrony软件包,不需要安装
- 修改chrony的配置文件/etc/chrony.conf(作为客户端与网络里的时间服务器进行同步),配置文件如下所示:
这里只需要修改这一项,表示与阿里云时间服务器同步
重启服务:systemctl restart chronyd.service ,查看同步结果如下图所示:
出现 ^* 代表同步成功
3. 使用Chrony服务作为时间服务器,按照如下图修改配置文件:
allow 192.168.253.0/24:表示允许网段里的所有机器与我同步
然后使用:systemctl restart chronyd.service 重启服务
4.访问时间服务的客户端配置
表示与时间服务器192.168.253.179同步,同步结果如下:(^*同步成功)
- Chrony配置文件参数简介
1.server: 可用于时钟服务器,iburst 选项当服务器可达时,发送一个八个数据包而不是通常的一个数据包。 包间隔通常为2秒,可加快初始同步速度
2.driftfile: 根据实际时间计算出计算机增减时间的比率,将它记录到一个文件中,会在重启后为系统时钟作出补偿
3.rtcsync:启用内核模式,系统时间每11分钟会拷贝到实时时钟(RTC)
4.allow/deny: - 指定一台主机、子网,或者网络以允许或拒绝访问本服务器
5.cmdallow / cmddeny : 可以指定哪台主机可以通过chronyd使用控制命令
6.bindcmdaddress:允许chronyd监听哪个接口来接收由chronyc执行的命令
7.makestep:通常chronyd将根据需求通过减慢或加速时钟,使得系统逐步纠正所有时间偏差。在某些特定情况下,系统时钟可能会漂移过快,导致该调整过程消耗很长的时间来纠正系统时钟。该指令强制chronyd在调整期大于某个域值时调整系统时钟
- 使用Chrony同步时间的优势
1. chrony与ntp实现的区别
假如时间慢了20个小时,调整时间有如下两种方式:
(1)类似于手表,转动表针,把时间调整正确;
(2)类似于使用date命令,直接跳跃时间,跳跃的过程中造成部分文件出现空白段;
2. ntp和chrony实现时间同步的方式:
ntp
类似于手表一样,转动表针快一些,让时间过的快一些,例如正常的1min,ntp会使用10s来完成,通过更快的时间来实现时间的校对,这种方式可能会导致时间同步完成的较慢;
chrony
类似于使用date命令一样,直接改变系统的时间,能更精确的时间和更快的速度同步时钟;
3. chrony的优势
Chrony是NTP的另一种实现,与ntpd不同,它可以更快且更准确地同步系统时钟,最大程度的减少时间和频率误差。
chrony相比ntp的优势:
(1)更快的同步,只需要数分钟而非数小时时间,从而最大程度减少了时间和频率误差,这对于并非全天 24 小时运行的台式计算机或系统而言非常有用。
(2)能够更好地响应时钟频率的快速变化,这对于具备不稳定时钟的虚拟机或导致时钟频率发生变化的节能技术而言非常有用。
(3)在初始同步后,它不会停止时钟,以防对需要系统时间保持单调的应用程序造成影响。
(4)在应对临时非对称延迟时(例如,在大规模下载造成链接饱和时)提供了更好的稳定性。
(5)无需对服务器进行定期轮询,因此具备间歇性网络连接的系统仍然可以快速同步时钟。
4.chrony对时间隔
man 5 chrony.conf显示的参数如上图所示,总结来看,默认的最小对时间隔是2^6秒也是就是64s,默认的最大对时间隔是2^10也就是1024秒,iburst参数表示,发送到服务器的前四个请求之间的间隔将为2秒或更短,而不是minpoll选项指定的间隔,该选项允许chronyd在启动后不久对时钟进行第一次更新。
验证测试(按照如下图修改配置文件):
minpoll 2:对时最小时间间隔为4秒
maxpoll 4:对时最大时间间隔为16秒
采用脚本实时监测的方式验证结果,监测脚本如下:
#!/bin/bash while true do chronyc sources sleep 2 done |
监测结果如图所示:
poll: 显示轮询源的速率,以秒为单位的时间间隔的以2为底的对数。因此,值为2表示每4秒进行一次测量。chronyd会根据当前情况自动更改轮询速率。