目錄
1、chrony簡介
chrony是一個開源自由的網絡時間協議 NTP 的客戶端和服務器軟軟件。它能讓計算機保持系統時鐘與時鐘服務器(NTP)同步,因此讓你的計算機保持精確的時間,Chrony也可以作為服務端軟件為其他計算機提供時間同步服務。
Chrony由兩個程序組成,分別是chronyd和chronyc;
chronyd是一個后臺運行的守護進程,用于調整內核中運行的系統時鐘和時鐘服務器同步。它確定計算機增減時間的比率,并對此進行補償。
chronyc提供了一個用戶界面,用于監控性能并進行多樣化的配置。它可以在chronyd實例控制的計算機上工作,也可以在一臺不同的遠程計算機上工作。
???????2、時間同步相關概念
硬件時間:硬件時間,也被稱為實時時鐘(RTC),是指計算機主板上的一個獨立于操作系統的設備,它在電源關閉甚至斷電情況下也能保持運行。其功能是記錄當前的日期和時間。
# 查詢硬件時間 hwclock --show
# 將系統時間設置為硬件時間 hwclock --systohc
# 將硬件時間設置為系統時間 hwclock --hctosys
UTC:統時間通常使用協調世界時(UTC)表示。UTC是一種基于原子時鐘的時間標準,全球各地的科學家通過精密測量來維護它。它與格林尼治標準時間(GMT)非常接近,但不受地球自轉速度變化的影響。
local time:本地時間是系統時間經過時區轉換后的時間。
可以查詢本地時間(Local time)、系統時間( time)、硬件時間(RTC time)、時區(Time zone)等信息。
時間同步兩個目的:1、對外保證本地時間和國際通用時間保持同步,通過NTP同步
2、對內保證系統時間和硬件時間同步,通過rtcsync同步
???????3、安裝與使用 服務端
yum -y install chrony
enable chronyd
start chronyd
修改服務端配置文件/etc/chrony.conf
# 根據實際時間計算出服務器增減時間的比率,然后記錄到一個文件中,在系統重啟后為系統做出最佳時間補償調整。
/var/lib/chrony/drift
# 如果系統時鐘的偏移量大于1秒,則允許系統時鐘在前三次更新中步進。
1.0 3
# 啟用實時時鐘(RTC)的內核同步。
rtcsync
# 指定 NTP 客戶端地址,以允許或拒絕連接到扮演時鐘服務器的機器
allow all
#Serve time even if not to a time source.
local stratum 10
注1:local指令用來允許將本地時間作為標準時間授時給其它客戶端,即使自己未能通過網絡時間服務器同步到真實時間。通常用在獨立網絡中,在某臺作為ntp服務器的主機上配置,為其他需要同步時間的ntp客戶端提供時間同步服務。該臺主機通過定期手動輸入,來保持時間與真實時間一致。
注2:local stratum 10
值10可以被其他值取代,可選范圍為1到15。stratum 1表示計算機具有直接連接的真實時間的參考時間源,例如:GPS、原子鐘。這樣的計算機的時間與真實時間非常接近。stratum 2表示該計算機有一個stratum 1的計算機作為同步時間源;stratum 3表示該計算機有一個stratum 10的計算機作為同步時間源。選擇stratum 10,這個值是比較大的,表示距離具有真實時間的服務器比較遠,它的時間是不太可靠的。換句話說,假如該計算機可以連接到一臺最終與真實時間同步的計算機,那么該計算機的stratum層級幾乎可以肯定比10小。因此,為local命令選取stratum 10這樣的大數值,可以防止機器本身的時間與真實時間混淆,可以保證該機器不會將本身的時間授時給那些可以連接同步到真實時間的ntp服務器的ntp客戶端。
客戶端
修改客戶端配置文件 /etc/chrony.conf
server 10.0.0.1 iburst
修改完配置文件需要重啟服務
restart chronyd
4、常用命令 chronyc sources -v 查看同步狀態
M 這表示信號源的模式。^表示服務器,=表示對等方,#表示本地連接的參考時鐘。
S 此列指示源的狀態。
* 表示chronyd當前同步到的源。
+ 表示可接受的信號源,與選定的信號源組合在一起。
- 表示被合并算法排除的可接受源。
? 指示已失去連接性或其數據包未通過所有測試的源。它也顯示在啟動時,直到從中至少收集了3個樣本為止。
x 表示chronyd認為是虛假行情的時鐘(即,其時間與大多數其他來源不一致)。
? 表示時間似乎具有太多可變性的來源。
Name/IP address
這顯示了源的名稱或IP地址,或參考時鐘的參考ID。
Stratum
這顯示了來源的層,如其最近收到的樣本中所報告的那樣。層1表示一臺具有本地連接的參考時鐘的計算機。與第1層計算機同步的計算機位于第2層。與第2層計算機同步的計算機位于第3層,依此類推。
Poll
這顯示輪詢源的速率,以秒為單位的時間間隔的以2為底的對數。因此,值為6表示每64秒進行一次測量。chronyd會根據當前情況自動更改輪詢速率。
Reach
這顯示了源的可達性寄存器以八進制數字打印。寄存器有8位,并在每個從源接收或丟失的數據包上更新。值377表示從最后八次傳輸中收到了對所有用戶的有效答復。
LastRx
此列顯示多長時間前從來源接收到了最后一個好的樣本(在下一列中顯示)。未通過某些測試的測量將被忽略。通常以秒為單位。字母m,h,d或y表示分鐘,小時,天或年。
Last sample
此列顯示上次測量時本地時鐘與源之間的偏移。方括號中的數字表示實際測得的偏移量。可以用ns(表示納秒),us(表示微秒),ms(表示毫秒)或s(表示秒)作為后綴。方括號左側的數字表示原始測量值,已調整為允許此后施加于本地時鐘的任何擺度。
+/-指示器后面的數字表示測量中的誤差范圍。正偏移表示本地時鐘位于源時鐘之前。
???????
該參數為ntp服務狀態, set-ntp yes/fauls,慎用,關閉不僅導致chronyd服務停止,同時關閉自啟動;
system clock 這個參數比較復雜,只有在時鐘源同步成功情況下,同時系統時間同步成功,才會顯示yes
如果chronyc 是本地源的話,這個值一直是no
如果chronyc source沒有源,也是no
如果有 ^* 但是system time不是0也是no
???????chronyc
進行時間同步狀態檢查
ID:你的系統正在與之同步的遠程 NTP 服務器的地址或者 IP。
Stratum:表示你的系統在 NTP 層次中的級別。Stratum 1 服務器直接與原子鐘或 GPS 時鐘等準確的時間源同步。Stratum 2 服務器與 Stratum 1 服務器同步,以此類推。這個字段表示你的系統是與哪個 stratum 的服務器同步。
Ref time (UTC):上一次從遠程服務器接收到時間更新的時間(以 UTC 表示)。
System time:你的系統時間相對于 NTP 服務器時間的差異。如果顯示 "fast",表示你的系統時間比 NTP 時鐘快;如果顯示 "slow",表示你的系統時間比 NTP 時鐘慢。
Last offset:上一次時間同步時,系統時間與 NTP 服務器時間的偏移量。
RMS offset:時間偏移量的均方根,是一個衡量時間同步精度的指標。
:本地系統時鐘的速度,相對于完美的時間源,以每百萬部分(ppm)表示。如果顯示 "fast",表示你的系統時鐘運行得比完美的時鐘快;如果顯示 "slow",表示你的系統時鐘運行得比完美的時鐘慢。
freq:在最后一次同步之后,已經觀察到的本地時鐘頻率的改變。
Skew:本地時鐘頻率估計的不確定性。
Root delay:到同步源的往返時間。
Root :同步源的最大可能誤差。
Update :兩次連續更新之間的間隔時間(以秒為單位)。
Leap status:閏秒狀態。可以是 "Normal"、"Insert second" 或 "Delete second"。
5、常見問題 ???????5.1遷移vm后時間差異較大,需要快速同步時間
解決:采用chronyc 0.1 3只允許逐步校正時鐘,時間較慢
可以采用chronyc -m 'burst 3/3' ' 0.1 3'立即同步時鐘
5.2???????當集群時間源外網不可用時,啟用本地模式,但客戶端無法同步時間
如果所有的server都無法連接自己的time source時,local這種模式只能有一個server配置該參數
5.3???????chronyd服務都正常,但未進行時間同步
chrony (3.2-2)版本的 調度程序腳本中有一個 BUG。
臨時:重啟chronyd服務
永久:升級3.4以上的版本
6、常用時鐘源
:項目是一個提供可靠易用的NTP服務的虛擬集群,
阿里云公共NTP服務器
Unix/linux類:,
windows類:
大學ntp服務
北京郵電大學 清華大學 北京大學
國家授時中心服務器
210.72.145.44
*請認真填寫需求信息,我們會在24小時內與您取得聯系。