Chrony时间服务
Chrony介绍
chrony是一个ntp协议的实现程序,既可以充当服务端,也可以充当客户端,它专为间歇性互联网连接的系统而设计,当然也可以良好的应用于持续的互联网连接环境;
chrony 有三个时间参考: 硬件时钟、实时时钟以及手动同步;
chrony是NTP的替代品,能更精确和更快的同步时钟;
chrony占用系统资源少,只有被唤起时才占用少量cup,chrony兼容ntpdate;
chrony允许本地网络其他主机向本地进行时间同步;
Chrony优势
更快的同步,最大程度减少了时间和频率的误差,对于并非全天运行的虚拟计算机非常有用
能够更好地响应时钟频率的变化,对于不稳定的虚拟计算机或导致时钟频率发生变化的技术有用
在初始同步后,他不会停止时钟,以防对需要系统时间保持单调的应用程序造成影响
在应对临时非对称延迟时(列如,在大规模下载造成链接饱和时)提供更好的稳定性
无需对服务器进行定期轮询,因此具备间歇性网络连接的系统仍可以快速同步时钟
Chrony时间同步
问题:所有服务器直接同步公网上的时间服务器不就可以了吗?为何需要自己搭建一台时间服务器呢?
如果每台服务器都去同步公网时间服务器,且服务器较多 ,会造成延迟和带宽的浪费
解决方法:搭建内网时间服务器,来同步公网时间,然后所有服务器来与这台服务器进行时间同步
这样做可以减小误差,提升同步速度,减少网络带宽损耗,统一规范管理时间。
Chrony安装
]# yum install chrony -y
主配置文件:/etc/chrony.conf
客户端程序:/user/bin/chronyc
服务端程序:/usr/sbin/chronyd
Chrony服务端
默认配置
] cat /etc/chrony.conf
#使用同步的远程时钟源,理论上可以同步无限个
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
#根据实际时间计算出服务器增减时间的比率,然后记录到一个文件中,在系统重启后为系统做出最佳时间补偿调整
driftfile/var/lib/chrony/drift
#如果系统时钟的偏移量大于1秒,则允许系统时钟在前三次跟新中步进
makestep 1.0 3
#启用实时时钟(RTC)的内核同步
rtcsybc
#通过使用hwtimestamp 指令启用硬件时间戳
#hwtimestamp*
# 增加调整所需的可选择源的最小数量
#minsources 2
#允许指定网络的主机同步时间,不指定就是允许所有,默认不开启
allow 192.168.0.0/24
#默认情况下本地服务器无法同步互联网时间时,可能会出现不精确,所以会拒绝提供授时服务;
#开启此选项,则表示允许接受不精确时间,继续为客户端提供授时服务;
local stratum 10
#指定包括NTP身份验证密钥的文件
#keyfile /etc/chrony.keys
#指定日志文件
logdir /var/log/chrony
#先择日志文件要记录的信息
log measurements statistics tracking
1.chrony服务端配置,修改/etc/chrony.conf 文件三处,设定外部时间服务器、允许内网同步此服务端、设置断网继续同步
# vim /etc/chrony.conf
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server ntp.aliyun.com iburst
# Allow NTP client access from local network.
allow 172.16.1.0/24
# Serve time even if not synchronized to a time source.
local stratum 10
2.重启Chrony服务
]# systemctl restart chronyd
Chrony客户端
1.客户端使用 ntpdate 或 chrony 命令的方式进行手动同步
#ntpdate
]# yum nstall ntpdate -y
]# ntpdate 172.16.1.120
#chrony
]# chronyc -a makestep
200 OK
2.客户端使用 chrony 守护进程方式进行时间自动化同步
]# yum install chrony -y
]# vim /etc/chrony.conf
# 指向至服务端
server 172.16.1.120 iburst
]# systemctl restart chronyd
3.查看时间同步是否正常
]# chronyc sources
]# chronyc sources -v