在多主机协同工作时,各个主机的时间同步很重要,时间不一致会造成很多重要应用的故障,例如:加密协议、日志,集群等。利用NTP(Network Time Protocol)协议网络中的各个计算机时间达到同步。
环境 系统selinux、firewalld实现方式服务器端客户端CentOS7 关闭 chrony 172.20.3.34 172.20.200.200
chrony 简介
实现NTP协议的自由软件。可以将时钟与NTP服务器,参考时钟(例如GPS接收器)以及使用手表和键盘通过chronyc进行手动输入进行同步。 它还可以充当NTPv4(RFC 5905)服务器并与之对等,以向网络中的其他计算机提供时间服务。设计用于在各种条件下良好运行,包括间歇性和高度拥挤的网络连接,温度变化(计算机时钟对温度敏感),以及不能连续运行或在虚拟机上运行的系统。通过Internet同步的两台机器之间的典型精度在几毫秒之内,在LAN上,精度通常为几十微秒。利用硬件时间戳或硬件参考时钟,可实现亚微妙的精度。
chrony官网:https://chrony.tuxfamily.org
更快的同步只需要数分钟而非数小时时间,从而最大程度减少了时间和频率误差,对于并非全天24小时运行的虚拟计算机而言非常有用。
能够更好的响应时钟频率的快速变化,对于具备不稳定时钟的虚拟机或导致时钟频率发生变化的节能技术而言非常有用。
在初始同步后,它不会停止时钟,以防对需要系统时间保持单调的应用程序造成影响。
在应对临时非对称延迟时(例如,在大规模下载造成链接饱和时)提供了更好的稳定性。
无需对服务器进行定期轮询,因此具备间歇性网络连接的系统仍然可以快速同步时钟。
软件包及服务相关信息软件包:chrony-3.4-1.el7.x86_64
监听端口:323/udp,123/udp
服务unit文件:/usr/lib/systemd/system/chronyd.service
两个主要程序:chronyd和chronyc
chronyd:后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务
chronyc:命令行用户工具,用于监控性能并进行多样化的配置。它可以在chronyd示例控制的计算机上工作,也可以在一台不同的远程计算机上工作。
配置文件:/etc/chrony.conf相关参数解释server - 可用于时钟服务器,iburst 选项当服务器可达时,发送一个八个数据
包而不是通常的一个数据包。 包间隔通常为2秒,可加快初始同步速度
driftfile - 根据实际时间计算出计算机增减时间的比率,将它记录到一个文件中,
会在重启后为系统时钟作出补偿
rtcsync - 启用内核模式,系统时间每11分钟会拷贝到实时时钟(RTC)
allow / deny - 指定一台主机、子网,或者网络以允许或拒绝访问本服务器
cmdallow / cmddeny - 可以指定哪台主机可以通过chronyd使用控制命令
bindcmdaddress - 允许chronyd监听哪个接口来接收由chronyc执行的命令
makestep - 通常chronyd将根据需求通过减慢或加速时钟,使得系统逐步纠正
所有时间偏差。在某些特定情况下,系统时钟可能会漂移过快,导致该调整过
程消耗很长的时间来纠正系统时钟。该指令强制chronyd在调整期大于某个阀
值时调整系统时钟
local stratum 10 - 即使server指令中时间服务器不可用,也允许将本地时间
作为标准时间授时给其它客户端
help命令可以查看更多chronyc的交互命令
accheck 检查是否对特定主机可访问当前服务器
activity 显示有多少NTP源在线/离线
sources [-v] 显示当前时间源的同步信息
sourcestats [-v]显示当前时间源的同步统计信息
add server 手动添加一台新的NTP服务器
clients 报告已访问本服务器的客户端列表
delete 手动移除NTP服务器或对等服务器
settime 手动设置守护进程时间
tracking 显示系统时间信息
公共NTP服务 pool.ntp.org:项目是一个提供可靠易用的NTP服务的虚拟集群cn.pool.ntp.org
0-3.cn.pool.ntp.org
阿里云公共的NTP服务器Unix/linux类:ntp.aliyun.com,ntp1-7.aliyun.com
windows类:time.pool.aliyun.com
大学ntp服务s1a.time.edu.cn 北京邮电大学
s1b.time.edu.cn 清华大学
s1c.time.edu.cn 北京大学
国家授时中心服务器210.72.145.44
chrony时间同步实现步骤 服务端配置(172.20.3.34) [root@CentOS7 ~]# egrep "^server|^allow|^local" /etc/chrony.conf server ntp.aliyun.com iburst server ntp1.aliyun.com iburst server s1a.time.edu.cn iburst allow 172.20.0.0/16 local stratum 10 [root@CentOS7 ~]# systemctl restart chronyd [root@CentOS7 ~]# systemctl enable chronyd 说明: allow 172.20.0.0/16表示哪些主机可以向该主机同步时间; local stratum 10表示当互联网不能访问时间服务器时,仍然使用本机时间提供时间服务。 客户端配置(172.20.200.200) [root@CentOS7 ~]#grep "^server" /etc/chrony.conf server 172.20.3.34 iburst [root@CentOS7 ~]#systemctl restart chronyd [root@CentOS7 ~]#systemctl enable chronyd 验证时间同步