Chrony時間同步服務
1.時間同步基本概念
1.1 什么是時間同步
時間同步,就是將本地時間與互聯網時間進行校對,為系統提供一個統一時間;
由于本地時間的計時速率、運行環境不一致性;所有本地時鐘縱使在某一刻被校準了 ,一段時間后,這些本地時鐘也會出現不一致。為了本地時鐘再次達到相同的時間值,所以需要進行時間同步的操作;
1.2 為什么需要時間同步
? 在運維工作的場景當中,存在著眾多主機協同完成不同的任務;
? 比如LNMP架構,它們可以分別部署在三臺不同的主機上;那么這三臺主機在工作時,由于分別位于不同的主機之上,它們需要根據文件或者數據流所生成的時間,來決定響應給客戶端的結果該如何進行展示;此時就需要統一網絡中的主機時間一致;
? 但這個時間一致并不是說一定得是正確的,如果現在當前時間是下午2點,但是這三臺主機的時間精確一致是昨天凌晨5點,這也沒有什么問題;
? 但對于有些場景時間不正確也不行,比如https應用;客戶端與服務端通訊時,如果客戶端時間是準確的,而服務端時間來自昨天,或者來自未來的響應,則會提示存在風險,而不予接受;
1.3 時間同步是如何完成
? 假設服務器啟動起來后,發現時間慢了24小時,那么他如何將自己的時間調整正確呢
? 如果是手表該如何校對時間呢?(波動表針,調整時間的正常邏輯)
? 如果是date命令是如何校對時間呢?(直接跳躍時間,跳躍的過程中造成部分文件出現空白段)
?NTP時間服務(CentOS6):
? 邏輯:讓時間校對像手表一樣波動的快一點,而不是像date命令直接跳躍過去:其他服務器一分鐘60s,而ntp一分鐘30s,來實現時間的校對;
? 問題:為了趕上慢的24小時,可能需要花費非常長的時間來進行校對;
?Chrony時間服務(CentOS7、RockyLinux9):
? 邏輯:Chrony是NTP的替代品,能更精確、更快的同步時鐘,傳統ntp需要幾小時,而chrony僅需要數秒種或數毫秒即可完成時間同步;調整時間的速度就像波動表針的速度一樣快;
2.Chrony時間服務
2.1 Chrony介紹
?chrony是基于ntp協議的實現時間同步服務,它既可以當做服務端,也可以充當客戶端;
? 1、chrony是NTP的替代品,能更精確的時間和更快的速度同步時鐘;
? 2、chrony占用系統資源少,只有被喚起時才占用少部分CPU,chrony兼容ntpdate;
? 3、chrony允許本地網絡其他主機像本地進行時間同步;
2.2 為何需要Chrony
? 所有服務器直接同步公網上的時間不就可以了嗎,為何需要自己搭建一臺時間服務器呢?
? 如果每臺服務器都去同步公網時間服務器,且服務器較多,會帶來如下問題:
? 1、造成延遲
? 2、浪費帶寬
? 解決方法:搭建內網時間服務器,來同步公網時間,然后所有服務器來與這臺服務器進行時間同步
? 1、減小服務器之間的誤差,提升同步速度
? 2、減少網絡帶寬損耗
image.png
2.3 Chrony服務安裝
[root@chrony ~]# yum install chrony -y
? 主配置文件:/etc/chrony.conf
? 客戶端程序:/usr/bin/chronyc
? 服務端程序:/usr/sbin/chronyd
2.4 Chrony服務端
? 默認配置
[root@chrony ~]#cat/etc/chrony.conf #使用同步的遠程時鐘源,理論上可以同步無限個 # iburst配置選項,它表示在啟動時快速嘗試多次同步,以便更快地獲得準確的時間 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秒,那么在前3次同步時,系統時鐘將立即進行調整,而不是逐步調整。 makestep 1.0 3 #啟用實時時鐘(RTC)的內核同步 rtcsync #通過使用 hwtimestamp 指令啟用硬件時間戳 #hwtimestamp * #增加調整所需的可選擇源的最小數量 #minsources 2 # 允許指定網絡的主機同步時間,不指定就是允許所有,默認不開啟。 allow 192.168.0.0/16 # 默認情況下本地服務器無法同步互聯網時間時,可能會出現不精確,所以會拒絕提供授時服務; # 開啟此選項,則表示允許接受不精確時間,繼續為客戶端提供授時服務; localstratum 10 #指定包含 NTP 身份驗證密鑰的文件 #keyfile /etc/chrony.keys #指定日志文件 logdir /var/log/chrony #選擇日志文件要記錄的信息 logmeasurements statistics tracking
1.Chrony服務端配置,修改/etc/chrony.conf文件三處,設定外部時間服務器、允許內網同步此服務端、設置斷網繼續同步
[root@chrony ~]# vim /etc/chrony.conf # Please consider joining the pool (http://www.pool.ntp.org/join.html). server ntp1.aliyun.com iburst server ntp2.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. localstratum 10
2.重啟Chrony服務
[root@chrony ~]# systemctl restart chronyd
2.5 Chrony客戶端
1.客戶端使用ntpdate或chronyc命令的方式進行手動同步
# ntpdate [root@chrony ~]# yum install ntpsec -y [root@chrony ~]# ntpdate 172.16.1.62 # chronyc [root@chrony ~]# chronyc -a makestep 200 OK
2.客戶端使用chrony守護進程方式進行時間自動化同步
[root@chrony ~]# yum install chrony -y [root@chrony ~]# vim /etc/chrony.conf # 指向至服務端 server 172.16.1.62 iburst [root@chrony ~]# systemctl restart chronyd
3.查看時間同步是否正常
[root@chrony ~]# chronyc sources 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 172.16.1.62 3 6 77 24 -926us[-2077us] +/- 19ms [root@chrony ~]# chronyc sources -v
鏈接:https://blog.csdn.net/Sunfeiyanghtml/article/details/140091806
-
互聯網
+關注
關注
55文章
11240瀏覽量
106038 -
時間同步
+關注
關注
1文章
168瀏覽量
10290
原文標題:告別時間漂移!Chrony高精度時間同步配置與調優
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
自動駕駛:揭秘高精度時間同步技術(一)

康謀方案 | BEV感知技術:多相機數據采集與高精度時間同步方案

中國移動高精度時間同步1PPS和TOD接口規范詳細說明

docker部署NTP時間服務器chrony
如何實現更高精度的同步測量?如何做好同步數據采集的時間校準?
康謀技術 | 自動駕駛:揭秘高精度時間同步技術(二)

方案分享 | 高精度時間同步技術的實現與應用

評論