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