如何保證大數據開發的服務器時間同步?chrony服務安裝與配置

為什麼要用chrony代替ntp?

如何保證大數據開發的服務器時間同步?chrony服務安裝與配置

CentOS8以前,推薦使用的時間同步軟件都是ntpd,但是現在,官方更多的會推薦使用chrony。這裡要分清一個概念ntpd軟件和NTP協議不是一個東西,NTP協議是網絡時間同步協議。而chrony和ntpd都是實現NTP協議的軟件。我們所謂的的"chrony代替ntp",只是chrony代替了ntpd這個軟件。

如何保證大數據開發的服務器時間同步?chrony服務安裝與配置


再強調一遍:chrony是實現NTP協議的其中一個軟件。

之所以chrony會代替ntp,Tristone認為主要有如下幾個原因:

1、chrony是新的設計,ntpd是老的設計,chrony的設計思想更先進;

2、chrony的配置參數比ntpd稍微簡單一些;

3、chrony的運行速度比ntpd要快的多。

如何保證大數據開發的服務器時間同步?chrony服務安裝與配置

Chrony相關知識

Chrony有兩個核心組件,chronyd和chronyc

chronyd:是守護進程,它負責:

1、將server上時間獲取到本機;

2、調整本機內核中運行的系統時間(完成時間同步);

3、對外提供時間同步服務(作為時間同步服務器server)。

在細節上,如果本機時間與服務器時間差距過大,chronyd還會確定每次增減時間的比率,並對此進行調整補償。

chronyc:是用戶界面,它負責:

1、監控chrony的性能;

2、對chrony進行多樣化配置;

測試環境

如何保證大數據開發的服務器時間同步?chrony服務安裝與配置

兩臺CentOS Linux 8服務器,IP配置如下:

192.168.1.240:服務端(Server),負責給客戶端提供時間同步服務

192.168.1.241:客戶端(client),從240上獲取時間,客戶端可以增加到N個都沒有問題

安裝Chrony

chrony的安裝特別簡單,以下一個命令搞定

yum -y install chrony

如何保證大數據開發的服務器時間同步?chrony服務安裝與配置

配置Chrony

運行下列命令,修改配置文件

vi /etc/chrony.conf

相關的參數設置如下:

#從時間服務器192.168.1.231上獲取時間,如果有別的時間服務器,再添加一行就行,總數沒上限。

server 192.168.1.240 iburst

#根據實際時間計算出計算機增減時間的比率,將它記錄到一個文件中是最合理的,它會在重啟後為系統時鐘作出補償

#甚至可能的話,會從時鐘服務器獲得較好的估值

driftfile /var/lib/chrony/drift

#chronyd根據需求減慢或加速時間調整,Tristone發現網上有好多互相抄的內容,讓人不知所云

#這裡表示時間的誤差如果小於5秒,則通過減慢或加快時鐘速度來逐漸調整時鐘。

#如果時間的誤差大於5秒,前3次更新時間時允許步進時間(一步到位調整時間)。

#如果改為:makestep 5 -1,則一直是按照一步到位的方式調整時間(慎用)

makestep 5 3

#rtcsync指令將啟用一個內核模式,在該模式中,系統時間每11分鐘會拷貝到實時時鐘(RTC);

rtcsync

#允許哪個IP訪問本服務器的時間服務

allow 192.168.1.0/24

#禁止哪個IP訪問本服務器的時間服務

deny 192.168/16

#Get TAI-UTC offset and leap seconds from the system tz database.

#從system tz數據庫中獲取TAI-UTC偏移量和閏秒。

leapsectz right/UTC

#指定日誌文件的目錄。

logdir /var/log/chrony

#指定包含NTP驗證密鑰的文件。

#keyfile /etc/chrony.keys

如何保證大數據開發的服務器時間同步?chrony服務安裝與配置

如果你擔心配置有問題,可以將你的"/etc/chrony.conf "內容清空,並將上述內容複製到裡面。

每次修改完"/etc/chrony.conf "都需要重啟一下chronyd服務

基本操作:

systemctl stop chronyd #停止chronyd服務

systemctl start chronyd #開始chronyd服務

systemctl restart chronyd #重啟chronyd服務

systemctl status chronyd #查看chronyd服務狀態

systemctl enable chronyd #開機啟動chronyd服務

systemctl disable chronyd #禁止開機啟動chronyd服務

chronyc sources -v #查看時間同步源,查看時間同步進度

如何保證大數據開發的服務器時間同步?chrony服務安裝與配置

#結果解釋: *說明時間同步完成,如果為?說明不成功,檢查防火牆再看看chronyd有沒有重啟。

chronyc sourcestats -v #查看時間同步源狀態:

timedatectl set-local-rtc 1 #硬件時間默認為UTC:

timedatectl set-ntp yes #啟用NTP時間同步:

chronyc tracking #校準時間服務器:


防火牆允許對外提供服務

firewall-cmd --add-service=ntp --permanent #永久允許對外提供NTP時間服務

firewall-cmd --reload

如何保證大數據開發的服務器時間同步?chrony服務安裝與配置


兩臺服務器都按照這個配置操作,就完成了服務器的時間同步工作。同理,多臺服務器依然可以採用這個配置進行時間同步,也就是一臺Chrony可以給N臺服務器提供時間校對服務。


分享到:


相關文章: