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