NTP
NTP(Network Time Protocol)是一种用于在计算机网络中同步时钟的协议。它的主要目的是确保网络中的各个设备具有准确的时间参考,以便协调事件顺序、安全通信和日志记录等应用。它通过分层体系结构、时间同步算法和准确的时间参考源来确保网络设备具有一致和准确的时间,为各种应用提供可靠的时间参考。
-
分层体系结构:NTP使用分层的时间源结构。在该结构中,Stratum 1服务器作为最高层级,从高精度的时间源(如原子钟)获取时间信息。其他设备(如Stratum 2、Stratum 3等)通过与更高层级的服务器同步其时钟来获取时间信息。
-
时间同步算法:NTP使用一种称为"时钟滤波"的算法来对时间进行同步。该算法通过与多个时间源进行比较,并使用加权平均值来计算最准确的时间。
-
时钟偏移和延迟:NTP不仅考虑了时钟的偏移(即时间的差异),还考虑了时钟的延迟(即网络传输时间)。通过测量和补偿这些因素,NTP能够提供更准确的时间同步。
-
NTP服务器和客户端:NTP协议涉及两种类型的设备:服务器和客户端。NTP服务器是具有准确时间源的设备,它向客户端提供时间信息。NTP客户端是需要同步时间的设备,它通过与服务器通信来获取准确的时间。
-
时间参考源:NTP可以使用多种时间参考源,包括原子钟、GPS接收器、互联网上的其他NTP服务器等。选择可靠和精确的时间参考源对于保持准确的时间同步非常重要。
Chrony
Chrony是一种用于网络时间同步的软件,它提供了与NTP(Network Time Protocol)兼容的功能。Chrony旨在提供准确的时钟同步,特别适用于具有不稳定网络连接或无法访问高精度时间源的环境。它通过适应性算法、时钟源选择和预测性补偿等功能,提供准确和稳定的时钟同步。Chrony广泛应用于各种环境中,包括个人计算机、服务器、嵌入式系统和云计算平台等。
-
网络适应性:Chrony使用一种称为"时钟漂移"的算法来适应网络延迟和不稳定性。它能够检测和衡量网络延迟,以动态地调整时钟同步策略,从而提供更准确的时间同步。
-
时钟源选择:Chrony支持多种时钟源选择策略。它可以使用本地时钟、参考时钟(如GPS接收器)或远程NTP服务器作为时间参考源。Chrony能够根据时钟源的准确性、可用性和可信度进行选择,并自动切换到最佳的时间源。
-
预测性补偿:Chrony使用预测性补偿来减少网络延迟对时钟同步的影响。它通过分析网络延迟的变化模式来预测未来的延迟,并采取相应的补偿措施,以提供更准确的时间同步。
-
精确度和稳定性:Chrony旨在提供高精度和稳定性的时钟同步。它使用一种双向时钟校准算法,可以减少时钟的偏移和抖动,并提供亚毫秒级别的时间同步。
-
日志记录和监控:Chrony提供详细的日志记录和监控功能,可以记录时间同步的状态、偏移量和延迟等信息。这些信息对于故障排除和性能监控非常有用。
安装chrony
在所有的节点上安装chrony,注意安装的chrony版本,最好一致。
yum install chrony
systemctl start chronyd
systemctl enable chronyd
配置主节点
vim /etc/chrony.conf
需要修改的地方有两个,第一个红框位置可以添加互联网时间源ntp1.aliyun.com;ntp.sjtu.edu.cn;或者直接使用主节点的本地时间。第二个红框位置允许allow NTP client access from local network。
重启chrony服务。
systemctl restart chronyd
其他节点
修改chrony.conf 配置文件,添加主节点地址192.168.120.1作为时间源:
vim /etc/chrony.conf
重启chrony服务。
systemctl restart chronyd
查看时间同步状态。
chronyc sources -v
时间未同步开启防火墙端口
systemctl status firewalld # 检查firewalld服务
主节点和其他节点开放NTP协议的UDP123端口。
firewall-cmd --permanent --add-port=123/udp
firewall-cmd --reload
查看时间同步状态。
chronyc sources -v
手动调整同步
chronyc -a makestep