iT邦幫忙

1

主機校時問題,無法同步。

  • 分享至 

  • xImage

我是資深菜鳥工程師,總是會碰到一些奇怪難解的問題,這次是校時問題。

虛擬機
OS:Rocky 8.9
校時軟體:chrony

裝了數十台機器,設定上基本已經是樣板無腦了,唯獨這一台,好像會固定快 82 秒,就算手動執行校時 chronyc -a makestep,指令下下去後可以得到 200 OK 的回應,但再用 date 去看,或是 chronyc sources 去看,會發現時間差依然存在,而 source 得到的校時主機正確的,請問這會是什麼問題,要從那邊下手?

----更新
但若是用 date 指令去設定時間,可以更改,但是維持不了多久,時間又會跑掉,應該講,用 chronyc -a makestep 去校時是完全無效,指令下去,回應 200 OK ,但是時間不會變動,原本快 95 秒,依然還是快 95 秒,而不是時間會調整,一段時間後又跑掉。

----再更新
我挑了別台類似環境設定的去查看在我下了 chronyc -a makestep 後的 audit.log 內容,比對有問題的這台,兩有個奇怪的地方,有問題的 type=SYSCALL 後面的 exit=5 ,沒問題的是 exit=0 ,然後沒問題的後面會接著 type=TIME_ADJNTPVAL 跟 type=TIME_INJOFFSET 這兩條訊息,但是有問題的那台沒有,感覺好像是雖然指令執行回報成功,但是設定時間的動作卻是失敗的。

----再再更新
跟別台比對發現有多一個 SELinux 的 policy ,而這個 policy 在正式的主機上並沒有 (這台是正式的測試機) ,目前找到的差異點,不知道有沒有關係。
allow container_user_t chronyc_exec_t:file { execute execute_no_trans getattr ioctl lock map open read };

----再再再更新
就算把 SELinux Disable 掉也是無效,那個 chronyc makestep 完全沒有作用。

----再再再再更新
使用 chronyc siurces -v 去檢視 Time Server ,結果在第一欄出現的是 ^? ,再參考說明,? 代表的是來源是 Server ,? 是 unusable ,檢視同網段的 Rocky 8 & 9 ,都是使用 chrony 這锢服務在校時,對於 Time Server 都是 unusable,再去檢視別的網段的 Rocky 8 主機,因為是不同的 Time Server ,此時顯示的就是 * current best,所以 Time Server 出現 ? 的執行 timedatectl 時都會出現 System clock synchronized: no ,而出現 * 的卻是 System clock synchronized: yes 。

謝謝!

看更多先前的討論...收起先前的討論...
froce iT邦大師 1 級 ‧ 2024-06-21 13:20:31 檢舉
是實體機還是虛擬機?
虛擬機的話有可能是跟host的時間同步有開。
canchang iT邦新手 3 級 ‧ 2024-06-21 13:37:06 檢舉
虛擬機,不過看過了,好像是 Disable 的。
harry731 iT邦新手 2 級 ‧ 2024-06-24 13:02:58 檢舉
再建一台同樣OS的虛擬機
然後測試校時是否OK
froce iT邦大師 1 級 ‧ 2024-06-24 14:07:38 檢舉
https://stackoverflow.com/questions/61432870/program-exited-with-code-5-geany-with-gcc

Exit error code 5 means access denied
建議朝權限方面去查。
canchang iT邦新手 3 級 ‧ 2024-06-25 09:54:49 檢舉
謝謝,剛才問了 GPT ,他也說可能是權限有問題,就看到您的回覆,正在找可能影響的地方。
這是台 gitlab 測試主機,另外有一台正式的,但沒有這個問題。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
Ray
iT邦大神 1 級 ‧ 2024-06-21 09:49:31

VM 還是實體機? 若是 VM 的話, VM 安裝的 Host agent (例如: VMware Tools, qemu agent...等等), 有個選項會自動將 VM 的時鐘跟 Host 實體機同步, 即使你的 VM 自己做了校時, 還是會被 Host 的時間拉走.

canchang iT邦新手 3 級 ‧ 2024-06-21 10:08:10 檢舉

大神您好!
是 VM 主機,底層是 VMWare ,剛剛檢查「虛擬機器選項」—「VMware Tools」下的「將時間與主機同步」,裡面有個「在啟動和續繼時同步」是勾起來的,另一個「定期同步時間」沒有勾起來。
另外,我也檢查了別台 Linux 主機,底層的設定狀況是一樣的,但是校時是正常的。

Ray iT邦大神 1 級 ‧ 2024-06-21 10:27:53 檢舉

那把 Agent 裡面校時相關的參數都關掉吧, 我不太相信軟體介面上的開關, 我很常遇到: 介面上顯示關閉, 但實際上卻有作用的.(或者反過來; 單純就是程式寫錯, 然後QC沒發現)

或者你先把 VMware Tools 停掉一天, 觀察他是否還會飄移? 若服務關掉還會跑的話, 那很可能不是 agent 造成, 是系統裡面安裝了其他東西在作怪.

對了, 你有用 timedatectl 看過 NTP synchronized: 這項後面的回應嗎?
這篇有跟你類似的問題跟解法, 或許參考看看:
https://serverfault.com/questions/1073299/ntp-chrony-not-keeping-time-synchronized-on-centos-7-9-vm-running-on-vmware-esx

canchang iT邦新手 3 級 ‧ 2024-06-21 10:48:37 檢舉

我先把 vmtoolsd 這個服務停掉。

執行 timedatectl 得到以下訊息
Local time: Fri 2024-06-21 10:41:27 CST
Universal time: Fri 2024-06-21 02:41:27 UTC
RTC time: Fri 2024-06-21 02:41:28
Time zone: Asia/Taipei (CST, +0800)
System clock synchronized: no
NTP service: active
RTC in local TZ: no

System clock synchronized: no 別台是 yes ,也曾參考網路上的文章試著調整,但是無效,好像都去改到 NTP service 這個。

不明
【**此則訊息已被站方移除**】
不明
【**此則訊息已被站方移除**】

我要發表回答

立即登入回答