天天看點

chrony.conf配置注意事項

參考文檔:​​Linux ❉ Chronyd時間同步伺服器詳解_wangjie722703的部落格-CSDN部落格_chronyd​​

說明:(許多程式依賴于時間單調地向前推進)

  • slew the time方法:要糾正慢了1秒的系統時鐘,chronyd會稍微增加系統時鐘在每個時鐘中斷時前進的時間,直到錯誤消失為止;因為許多程式依賴于時間單調地向前推進。
  • step the time方法:時鐘步進,chronyd在啟動時快速分幾次向前或向後步進調整,隻在系統啟動過程中的特定時間點執行,是以其他應用軟體應該不會受到step the time的不利影響。
  • !, ;, #, %:開頭表示注釋;
  • 對時間隔,2的n次幂表示:the minimum is -7 (1/128th of a second,7.8125ms), and the maximum is 24 (6 months)
  • NTP版本:NTPv3、v4、v5
  • chronyd從不在系統啟動同步時鐘之後執行時間步進。ntpd也可以配置為從不步進時間​

*: initstepslew(在chronyd啟動時判斷,這個指令已棄用,取而代之的是makestep指令)

 在正常情況下,當chronyd需要校正系統時鐘時,它會通過slew the time的方法來慢慢調整。舉例來說:要糾正慢了1秒的系統時鐘,chronyd會稍微增加系統時鐘在每個時鐘中斷時前進的時間,直到錯誤消失為止。注意,使用此方法校正系統時鐘,時間不會向後調整。 在大多數的Unix系統上,都不希望系統時鐘步進,因為許多程式依賴于時間單調地向前推進。當chronyd啟動時,系統時鐘可能會出現相當大的錯誤。試圖通過slew the time的方法來糾正錯誤,可能是非常不明智的,因為通過這種方法糾正可能需要花費數小時。

       initstepslew指令的目的是允許chronyd在啟動時快速測量系統時鐘的誤差,并在正常運作之前通過step the time的方法來糾正誤差。因為這通常隻在系統啟動過程中的特定時間點執行,是以其他應用軟體應該不會受到step the time的不利影響。

       如果需要校正的誤差小于設定的閥值,就使用slew the time的方法糾正,這使得在系統正常運作時重新開機chronyd變得更加安全。

       initstepslew指令後的第一個參數就是這個閥值,機關s(秒),後面若幹個參數都是ntp伺服器清單。清單中的每個伺服器都将被快速輪詢幾次,并使用多數投票機制來查找一個最有可能的系統時鐘誤差。然後使用step或slew的方式糾正誤差。随後chronyd會進入正常工作模式。

initstepslew 30 foo.example.net bar.example.net

#表示假如系統時鐘誤差小于30s,就使用slew方法校正;誤差大于30s,就使用step方法校正。

​GPSD是一系列管理GPS裝置和其他用于導航與精确計時的傳感器的工具,包括航海自動識别系統(marine AIS (Automatic Identification System))的無線電廣播裝置和電子羅盤。其中最主要的程式是一個叫做​

​gpsd​

​的服務守護程序,它管理這些傳感器,并且在TCP/IP端口生成JSON流報告。其他的程式包括用來展示代碼模型和各種診斷工具的用戶端。​GPSD被廣泛地部署在筆記本、智能手機以及包括自動駕駛汽車和自動潛艇在内的自動交通工具上。它在嵌入式系統中被用來導航、精确耕作、位置敏感的科學遙測、網絡時間服務等,起着不容忽視的作用。GPSD支援精确計時:隻要它附屬的某個傳感器有PPS (pulse-per-second)能力,它就能作為一個網絡時間協定守護程序​

​ntpd​

​ (the Network Time Protocal Daemon)的時間源工作。GPSD的開發者與​

​ntpd​

​項目的開發者緊密合作來改善網絡時間服務。​

​​gpsd​​

​​服務守護程序。它能夠通過RS232、USB、藍牙、TCP/IP和UDP連接配接從一系列附屬傳感器裝置收集捕獲量。報告一般來說會被傳送到TCP/IP端口2947

refclock SOCK /var/run/chrony.ttyS0.sock refid GPS      

#iburst更快地對時鐘進行首次更新, minpoll 4最小間隔16秒,maxpoll 5最大間隔32秒,offline時chronyd不會嘗試輪詢該伺服器;prefer:首選源

server 192.168.5.50 iburst minpoll 4 maxpoll 5 prefer

server 192.168.6.50 iburst minpoll 4 maxpoll 5 offline

#忽略往返延遲round-trip delay大于 0.3 秒的測量值。預設值為 3 秒

maxdelay 0.3

#maxchange offset:可接受的最大偏移量10秒;start:chronyd啟動後執行至少1次clock updates才會使能該功能(不檢查第一次時間更新時的時間偏差,即是chronyd進入正常工作模式時起作用) ;ignore:忽略2次,下一次(第3次)導緻chronyd退出,并生成syslog消息(負值忽略所有大于門檻值的offset)

maxchange 10 1 2

#超過該門檻值(計算機時鐘相對于參考源的內插補點,機關ppm),認為不可靠,不使用

maxupdateskew 100.0

# Record the rate at which the system clock gains/losses time.記錄到一個檔案中,會在重新開機後為系統時鐘作出補償

driftfile /var/lib/chrony/drift

# 使用負值,禁止這個限制。

#makestep 4 -1

#隻在chronyd啟動時判斷,大于1秒門檻值時,3次步進調整系統時鐘.避免糾正系統時鐘調整用時過長。

makestep 1.0 3

# Enable kernel synchronization of the real-time clock (RTC).系統時間每11分鐘會拷貝到實時時鐘(RTC)

rtcsync

# Enable hardware timestamping on all interfaces that support it.

#hwtimestamp *

#使得可以在chronyc中使用settime指令手動設定時間

manual

# Increase the minimum number of selectable sources required to adjust

# the system clock.

#minsources 2

# Allow NTP client access from local network.

#allow 192.168.0.0/16

#allows access from all addresses (both IPv4 or IPv6)

allow all

# Serve time even if not synchronized to a time source.

local stratum 2

# Specify file containing keys for NTP authentication.

#keyfile /etc/chrony.keys

# Specify directory for log files.

繼續閱讀