Linux集群時間同步方法


方法1.ntp  平滑同步時間

(一)確認ntp的安裝

1)確認是否已安裝ntp

【命令】
rpm –qa | grep ntp
若只有ntpdate而未見ntp,則需刪除原有ntpdate。如:
ntpdate-4.2.6p5-22.el7_0.x86_64
fontpackages-filesystem-1.44-8.el7.noarch
python-ntplib-0.3.2-1.el7.noarch

2)刪除已安裝ntp

【命令】
yum –y remove ntpdate-4.2.6p5-22.el7.x86_64

3)重新安裝ntp

【命令】
yum –y install ntp

(二)配置ntp服務

1)修改所有節點的/etc/ntp.conf

【命令】
vi /etc/ntp.conf
【內容】
restrict 192.168.6.3 nomodify notrap nopeer noquery          //當前節點IP地址
restrict 192.168.6.2 mask 255.255.255.0 nomodify notrap  //集群所在網段的網關(Gateway),子網掩碼(Genmask)

2)選擇一個主節點,修改其/etc/ntp.conf

【命令】
vi /etc/ntp.conf
【內容】在server部分添加一下部分,並注釋掉server 0 ~ n
server 127.127.1.0
Fudge 127.127.1.0 stratum 10

3)主節點以外,繼續修改/etc/ntp.conf

【命令】
vi /etc/ntp.conf
【內容】在server部分添加如下語句,將server指向主節點。
server 192.168.6.3
Fudge 192.168.6.3 stratum 10
===修改前===
 
===修改后===
節點1(192.168.6.3):
 
節點2(192.168.6.4):
 
節點3(192.168.6.5):
 

 (三)啟動ntp服務、查看狀態

1)啟動ntp服務

【命令】
service ntpd start

2)查看ntp服務器有無和上層ntp連通

【命令】
ntpstat
查看ntp狀態時,可能會出現如下所示情況
① unsynchronised time server re-starting polling server every 8 s
② unsynchronised polling server every 8 s
這種情況屬於正常,ntp服務器配置完畢后,需要等待5-10分鍾才能與/etc/ntp.conf中配置的標准時間進行同步。
等一段時間之后,再次使用ntpstat命令查看狀態,就會變成如下正常結果:

方法2.ntpdate 立即同步時間

前提:要提前按照上面內容配置好ntp服務端,並啟動ntpd

1、安裝ntpdate,執行以下命令
 yum install ntpdate -y
2、手工同步網絡時間,執行以下命令,將從后面的主機同步時間,可以使用公網的或者自己定義的本地ntp服務器
ntpdate 0.asia.pool.ntp.org
3、使用crontab計划任務定時更新網絡時間,修改crontab文件,在末尾增加* */1 * * * ntpdate 0.asia.pool.ntp.org,每隔1小時同步一次時間。
 vi /etc/crontab
4、使用date命令查看當前時間
5、系統時間同步到硬件,防止系統重啟后時間被還原
hwclock --systohc
 
3.其他

===注意防火牆屏蔽ntp端口===

ntp服務器默認端口是123,如果防火牆是開啟狀態,在一些操作可能會出現錯誤,所以要記住關閉防火牆。

 

===同步硬件時鍾===

ntp服務,默認只會同步系統時間。

如果想要讓ntp同時同步硬件時間,可以設置/etc/sysconfig/ntpd文件,

在/etc/sysconfig/ntpd文件中,添加【SYNC_HWCLOCK=yes】這樣,就可以讓硬件時間與系統時間一起同步。

允許BIOS與系統時間同步,也可以通過hwclock -w 命令。

 

===ntpd、ntpdate的區別===

下面是網上關於ntpd與ntpdate區別的相關資料。如下所示所示:

使用之前得弄清楚一個問題,ntpd與ntpdate在更新時間時有什么區別。

ntpd不僅僅是時間同步服務器,它還可以做客戶端與標准時間服務器進行同步時間,而且是平滑同步,

並非ntpdate立即同步,在生產環境中慎用ntpdate,也正如此兩者不可同時運行。

時鍾的躍變,對於某些程序會導致很嚴重的問題。

 

許多應用程序依賴連續的時鍾——畢竟,這是一項常見的假定,即,取得的時間是線性的,

一些操作,例如數據庫事務,通常會地依賴這樣的事實:時間不會往回跳躍。

不幸的是,ntpdate調整時間的方式就是我們所說的”躍變“:在獲得一個時間之后,ntpdate使用settimeofday(2)設置系統時間,

這有幾個非常明顯的問題:

【一】這樣做不安全。

ntpdate的設置依賴於ntp服務器的安全性,攻擊者可以利用一些軟件設計上的缺陷,拿下ntp服務器並令與其同步的服務器執行某些消耗性的任務。

由於ntpdate采用的方式是跳變,跟隨它的服務器無法知道是否發生了異常(時間不一樣的時候,唯一的辦法是以服務器為准)。

【二】這樣做不精確。

一旦ntp服務器宕機,跟隨它的服務器也就會無法同步時間。

與此不同,ntpd不僅能夠校准計算機的時間,而且能夠校准計算機的時鍾。

【三】這樣做不夠優雅。

由於是跳變,而不是使時間變快或變慢,依賴時序的程序會出錯

(例如,如果ntpdate發現你的時間快了,則可能會經歷兩個相同的時刻,對某些應用而言,這是致命的)。

因而,唯一一個可以令時間發生跳變的點,是計算機剛剛啟動,但還沒有啟動很多服務的那個時候。

其余的時候,理想的做法是使用ntpd來校准時鍾,而不是調整計算機時鍾上的時間。

NTPD在和時間服務器的同步過程中,會把BIOS計時器的振盪頻率偏差——或者說Local Clock的自然漂移(drift)——記錄下來。

這樣即使網絡有問題,本機仍然能維持一個相當精確的走時。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM