導讀 | Chrony是一個開源的自由軟件,像CentOS 7或基於RHEL 7操做系統,已是默認服務,默認配置文件在 /etc/chrony.conf 它能保持系統時間與時間服務器(NTP)同步,讓時間始終保持同步。相對於NTP時間同步軟件,佔據很大優點。其用法也很簡單。 |
Chrony有兩個核心組件,分別是:chronyd:是守護進程,主要用於調整內核中運行的系統時間和時間服務器同步。它肯定計算機增減時間的比率,並對此進行調整補償。chronyc:提供一個用戶界面,用於監控性能並進行多樣化的配置。它能夠在chronyd實例控制的計算機上工做,也能夠在一臺不一樣的遠程計算機上工做。html
OS環境:linux
10.28.204.65 客戶端centos
10.28.204.66 服務端服務器
CentOS Linux release 7.4.1708 (Core)網絡
狀況說明:兩臺機器都是內網,將204.66做爲NTP時間服務器,204.65到此機器上同步時間。ide
1.安裝Chrony性能
系統默認已經安裝,如未安裝,請執行如下命令安裝:ui
$ yum install chrony -y
2.啓動並加入開機自啓動centos7
$ systemctl enable chronyd.service $ systemctl restart chronyd.service $ systemctl status chronyd.service
3.Firewalld設置操作系統
$ firewall-cmd --add-service=ntp --permanent $ firewall-cmd --reload
因NTP使用123/UDP端口協議,因此容許NTP服務便可。
4.配置Chrony
如下是系統默認配置文件,我對此加以說明:
$ cat /etc/chrony.conf # 使用pool.ntp.org項目中的公共服務器。以server開,理論上你想添加多少時間服務器均可以。 # Please consider joining the pool (http://www.pool.ntp.org/join.html). server 0.centos.pool.ntp.org iburst server 1.centos.pool.ntp.org iburst server 2.centos.pool.ntp.org iburst server 3.centos.pool.ntp.org iburst # 根據實際時間計算出服務器增減時間的比率,而後記錄到一個文件中,在系統重啓後爲系統作出最佳時間補償調整。 driftfile /var/lib/chrony/drift # chronyd根據需求減慢或加速時間調整, # 在某些狀況下系統時鐘可能漂移過快,致使時間調整用時過長。 # 該指令強制chronyd調整時期,大於某個閥值時步進調整系統時鐘。 # 只有在因chronyd啓動時間超過指定的限制時(可以使用負值來禁用限制)沒有更多時鐘更新時才生效。 makestep 1.0 3 # 將啓用一個內核模式,在該模式中,系統時間每11分鐘會拷貝到實時時鐘(RTC)。 rtcsync # Enable hardware timestamping on all interfaces that support it. # 經過使用hwtimestamp指令啓用硬件時間戳 #hwtimestamp eth0 #hwtimestamp eth1 #hwtimestamp * # Increase the minimum number of selectable sources required to adjust # the system clock. #minsources 2 # 指定一臺主機、子網,或者網絡以容許或拒絕NTP鏈接到扮演時鐘服務器的機器 #allow 192.168.0.0/16 #deny 192.168/16 # Serve time even if not synchronized to a time source. local stratum 10 # 指定包含NTP驗證密鑰的文件。 #keyfile /etc/chrony.keys # 指定日誌文件的目錄。 logdir /var/log/chrony # Select which information is logged. #log measurements statistics tracking
5.設置時區
查看當前系統時區:
$ timedatectl Local time: Fri 2018-2-29 13:31:04 CST Universal time: Fri 2018-2-29 05:31:04 UTC RTC time: Fri 2018-2-29 08:17:20 Time zone: Asia/Shanghai (CST, +0800) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: n/a 若是你當前的時區不正確,請按照如下操做設置。 查看全部可用的時區: $ timedatectl list-timezones 篩選式查看在亞洲S開的上海可用時區: $ timedatectl list-timezones | grep -E "Asia/S.*" Asia/Sakhalin Asia/Samarkand Asia/Seoul Asia/Shanghai Asia/Singapore Asia/Srednekolymsk 設置當前系統爲Asia/Shanghai上海時區: $ timedatectl set-timezone Asia/Shanghai 設置完時區後,強制同步下系統時鐘: $ chronyc -a makestep 200 OK
6.服務器集羣之間的系統時間同步
在生產環境中,其網絡都是內網結構,那麼內網如何保證服務器之間的時間同步呢?其實這個問題很簡單,只須要搭建一臺內網時間服務器,而後讓全部計算機都到服務端(10.28.204.66)去同步時間便可。
具體操做:在服務端註釋如下內容:
#server 0.centos.pool.ntp.org iburst #server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org iburst #server 3.centos.pool.ntp.org iburst 並添加如下內容:(表示與本機同步時間) server 10.28.204.66 iburst 這樣咱們需求的一臺內網時間服務器已經配置完畢。 一樣在客戶端註釋掉其餘server,並在客戶端(10.28.204.65)添加如下: server 10.28.204.66 iburst
到此已經完成系統時間的同步。若有多臺機器,操做也是如此。
7.經常使用命令
查看時間同步源:
$ chronyc sources -v 查看時間同步源狀態: $ chronyc sourcestats -v 設置硬件時間 硬件時間默認爲UTC: $ timedatectl set-local-rtc 1 啓用NTP時間同步: $ timedatectl set-ntp yes 校準時間服務器: $ chronyc tracking
最後須要注意的是,配置完/etc/chrony.conf後,需重啓chrony服務,不然可能會不生效。