基於GPS北斗雙系統的NTP網路時間伺服器的開發

ahjzdz發表於2023-03-01

基於GPS北斗雙系統的NTP網路時間伺服器的開發

基於GPS北斗雙系統的NTP網路時間伺服器的開發

 

設計思路:

在通用的麒麟伺服器內部固定一塊北斗衛星接收模組並引出衛星天線介面,衛星模組接收北斗衛星資料並解碼輸出時間資料(NMEA0183 串列埠資料),並將時間資料輸入到系統主機板的串列埠上;麒麟系統串列埠接收時間資料解碼時間資訊並同步麒麟系統時間,確保麒麟系統的時間與準確。為了實現麒麟系統的NTP 授時服務,需要在系統內執行NTPD 授時程式。

 

重點:

(1) 內建北斗衛星接收模組;

(2) 串列埠輸入到麒麟作業系統

(3) 麒麟作業系統的時間同步

(4) 麒麟系統的NTP 授時服務

2.      網路拓撲圖

                                            

常見拓撲結構

 

在中心機房配置1 臺麒麟系統NTP 伺服器,麒麟NTP 伺服器直接獲取北斗衛星時間資料實現本地系統的時間同步,透過NTP 網路時間同步協議對外提供授時服務。系統內的辦公裝置、堡壘機、防火牆、虛擬化叢集、容災備份系統、儲存伺服器及其他終端裝置透過NTP 時間協議同步到麒麟NTP 伺服器。麒麟NTP 伺服器和北斗衛星直接同步,這就保證了整個系統的時間準確、穩定和可靠性。

在實際的專案使用中,推薦使用2 臺或3 NTP 伺服器,在NTP 客戶端配置多個NTP 伺服器IP 地址,NTP 實時訪問各個NTP 伺服器,透過內部時間同步演算法自動切換時間基準,任何一臺NTP 伺服器故障不影響NTP 客戶端的時間同步,這種做法可以規避單點故障。

NTP C/S 授時原理

網路時延:

     delay=(T4-T2)+(T3-T1)

客戶端計算機時間偏差:

     offset = ((T3-T1)-(T4-T2) )/2

客戶機修正時間為T+offset

Device A 為客戶端,Device B NTP 伺服器)

Device A 傳送一個NTP 報文給Device B ,該報文帶有它離開Device A 時的時間戳,該時間戳為10:00:00am T1 )。

當此NTP 報文到達Device B 時,Device B 加上自己的時間戳,該時間戳為11:00:01am T2 )。

當此NTP 報文離開Device B 時,Device B 再加上自己的時間戳,該時間戳為11:00:02am T3 )。

Device A 接收到該響應報文時,Device A 的本地時間為10:00:03am T4 )。

至此,Device A 已經擁有足夠的資訊來計算兩個重要的引數:

NTP 報文的往返時延Delay= T4-T1 - T3-T2 =2 秒。

Device A 相對Device B 的時間差offset= ((T2-T1 + T3-T4 ))/2=1 小時。

大部分伺服器在出廠時都安裝了NTP 協議,在NTP 實施時只需將NTP 源指向現有NTP 服務即可。

AIX Solaris HP-UNIX UNIX Linux 系統使用系統自帶的NTP 服務。在原有配置檔案(/etc/ntp.conf ),增加如下語句,重新啟動NTP 程式即可。

server   主時鐘IP  minpoll 4 maxpoll 4     prefer

server   備時鐘IP  minpoll 4 maxpoll 4   

server    備時鐘IP  minpoll 4 maxpoll 4   

tinker   step 0 #linux 使用

其中, Linux 使用tinker step 0 配置緩慢調整,Aix 使用slewalways  yes 配置緩慢調整,緩慢調整可規避閏秒時間調整對系統產生的影響。

 

備註:麒麟系統需包含串列埠的相關驅動程式!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69969420/viewspace-2937512/,如需轉載,請註明出處,否則將追究法律責任。

相關文章