一、故障現(xiàn)象
服務(wù)器:192.168.1.15
操作系統(tǒng):Anolis OS release 8.6
授時(shí)服務(wù)器:192.168.1.1
在/etc/chrony.conf文件中已配置:server 192.168.1.1 iburst
故障現(xiàn)象:無法同步,本服務(wù)器始終比授時(shí)服務(wù)器快4分鐘左右
二、解決步驟
2.1 修改同步間隔
$ chronyc sources
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? 192.168.1.1 1 10 377 722 +287.2s[+287.2s] +/- 10.5s
從以上表格中可以看出:
- Poll同步間隔為 10(單位:秒的 2 次方,即 2^10=1024 秒,約 17 分鐘)
- ^?:表示同步異常
$ chronyc tracking
Reference ID : 00000000 ()
Stratum : 0
......
Leap status : Not synchronised
由上面可以看到,目前尚未同步。
現(xiàn)在先縮小同步間隔
$ vi /etc/chrony.conf # 修改為:
server 192.168.1.1 iburst minpoll 4 maxpoll 6
$ systemctl restart chronyd
$ chronyc makestep # 手工同步一次
說明:
- 這里的4和6指的是2的指數(shù),2的4次方即16,也就是16秒同步一次
- minpoll與maxpoll分別代表最小與最大同步間隔
2.2 定義maxdistance
手工同步后,再次檢查系統(tǒng)時(shí)間,仍然與授時(shí)服務(wù)器相差4分鐘
$ chronyc tracking | grep sync # 仍然未同步
Leap status : Not synchronised
$ grep maxdistance /etc/chrony.conf # 沒有任何結(jié)果返回,默認(rèn)情況下,chronyd 對(duì) “一次性調(diào)整的最大時(shí)間偏差(maxdistance)” 有嚴(yán)格限制(通常為 1 秒),過大的偏差會(huì)被拒絕,避免劇烈調(diào)整影響系統(tǒng)。
$ chronyc sources # 實(shí)際相差了285秒
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? 192.168.1.1 1 6 377 35 +285.6s[+285.6s] +/- 10.8s
$ echo "maxdistance 500.0" >> /etc/chrony.conf # 容忍500秒以內(nèi)的跳變
$ systemctl restart chronyd
$ chronyc makestep
200 OK
$ chronyc tracking
Reference ID : C0A8350B (192.168.1.1)
Stratum : 2
......
Leap status : Normal
三、總結(jié)
使用chronyd進(jìn)行時(shí)間同步時(shí),僅僅配置了授時(shí)服務(wù)器是不夠的,當(dāng)終端與授時(shí)服務(wù)器時(shí)間相差過大時(shí),終端會(huì)拒絕時(shí)間”跳變“同步,此時(shí)手工同步也會(huì)失敗,因此,還要加上maxdistance配置。