在集群中同步時間有著十分重要的作用,負載均衡集群或高可用集群如果時間不一致,在服務器之間的數據誤差就會很大,尋找數據便會成為一件棘手的事情。備份是一個合格的運維工程師的基本功,若是時間無法同步,那么就算是備份了數據,你也可能無法在正確的時間將正確的數據備份。那損失可就大了。
時間同步服務器就是來同步時間的,是一種高科技智能化、可獨立基于NTP/SNTP協議工作。原理就是從GPS衛星上獲取標準時鐘信號信息,將這些信息在網絡中傳輸,網絡中需要時間信號的設備如計算機,控制器等設備就可以與標準時間源同步。
同步的基本原理包括時間發出和接收時間信息的記錄,并且對每一條信息增加一個“時間戳”。有了時間記錄,接收端就可以計算出自己在網絡中的時鐘誤差和延時。為了管理這些信息,PTP協議定義了4種多點傳送的報文類型和管理報文,包括同步報文(Sync),跟隨報文(Follow_up),延遲請求報文(Delay_Req),延遲應答報文(Delay_Resp)。收到的信息回應是與時鐘當前的狀態有關的。同步報文是從主時鐘周期性發出的(一般為每兩秒一次),它包含了主時鐘算法所需的時鐘屬性。總的來說同步報文包含了一個時間戳,精確地描述了數據包發出的預計時間。
為什么linux不能像Windows一樣快速同步時間呢?在Windwos中,系統時間的設置很簡單,界面操作,通俗易懂,而且設置后,重啟,關機都沒關系。系統時間會自動保存在BIOS時鐘里面,啟動計算機的時候,系統會自動在BIOS里面取硬件時間,以保證時間的不間斷。但在Linux下,默認情況下,系統時間和硬件時間并不會自動同步。在Linux運行過程中,系統時間和硬件時間以異步的方式運行,互不干擾。硬件時間的運行,是靠BIOS電池來維持,而系統時間,是用CPUTick來維持的。在系統開機的時候,會自動從BIOS中取得硬件時間,設置為系統時間。所以在Linux搭建時間同步服務器是非常重要的,尤其是現在集群化的時代。一組服務器對外表現為一個整體去提供服務。