详解:Linux Chrony 设置服务器集群同步时间
導(dǎo)讀:
Chrony是一個開源的自由軟件,像CentOS?7或基于RHEL 7操作系統(tǒng),已經(jīng)是默認(rèn)服務(wù),默認(rèn)配置文件在 /etc/chrony.conf 它能保持系統(tǒng)時間與時間服務(wù)器(NTP)同步,讓時間始終保持同步。相對于NTP時間同步軟件,占據(jù)很大優(yōu)勢。其用法也很簡單。
Chrony有兩個核心組件,分別是:chronyd:是守護(hù)進(jìn)程,主要用于調(diào)整內(nèi)核中運行的系統(tǒng)時間和時間服務(wù)器同步。它確定計算機(jī)增減時間的比率,并對此進(jìn)行調(diào)整補(bǔ)償。chronyc:提供一個用戶界面,用于監(jiān)控性能并進(jìn)行多樣化的配置。它可以在chronyd實例控制的計算機(jī)上工作,也可以在一臺不同的遠(yuǎn)程計算機(jī)上工作。
OS環(huán)境:
10.28.204.65 客戶端
10.28.204.66 服務(wù)端
CentOS?Linux?release 7.4.1708 (Core)
情況說明:兩臺機(jī)器都是內(nèi)網(wǎng),將204.66作為NTP時間服務(wù)器,204.65到此機(jī)器上同步時間。
1.安裝Chrony
系統(tǒng)默認(rèn)已經(jīng)安裝,如未安裝,請執(zhí)行以下命令安裝:
1 $ yum install chrony -y2.啟動并加入開機(jī)自啟動
1 $ systemctl enable chronyd.service 2 $ systemctl restart chronyd.service 3 $ systemctl status chronyd.service3.Firewalld設(shè)置
1 $ firewall-cmd --add-service=ntp --permanent 2 $ firewall-cmd --reload4.配置Chrony
以下是系統(tǒng)默認(rèn)配置文件,我對此加以說明:
1 $ cat /etc/chrony.conf 2 3 # 使用pool.ntp.org項目中的公共服務(wù)器。以server開,理論上你想添加多少時間服務(wù)器都可以。 4 # Please consider joining the pool (http://www.pool.ntp.org/join.html). 5 server 0.centos.pool.ntp.org iburst 6 server 1.centos.pool.ntp.org iburst 7 server 2.centos.pool.ntp.org iburst 8 server 3.centos.pool.ntp.org iburst 9 10 # 根據(jù)實際時間計算出服務(wù)器增減時間的比率,然后記錄到一個文件中,在系統(tǒng)重啟后為系統(tǒng)做出最佳時間補(bǔ)償調(diào)整。 11 driftfile /var/lib/chrony/drift 12 13 # chronyd根據(jù)需求減慢或加速時間調(diào)整, 14 # 在某些情況下系統(tǒng)時鐘可能漂移過快,導(dǎo)致時間調(diào)整用時過長。 15 # 該指令強(qiáng)制chronyd調(diào)整時期,大于某個閥值時步進(jìn)調(diào)整系統(tǒng)時鐘。 16 # 只有在因chronyd啟動時間超過指定的限制時(可使用負(fù)值來禁用限制)沒有更多時鐘更新時才生效。 17 makestep 1.0 3 18 19 # 將啟用一個內(nèi)核模式,在該模式中,系統(tǒng)時間每11分鐘會拷貝到實時時鐘(RTC)。 20 rtcsync 21 22 # Enable hardware timestamping on all interfaces that support it. 23 # 通過使用hwtimestamp指令啟用硬件時間戳 24 #hwtimestamp eth0 25 #hwtimestamp eth1 26 #hwtimestamp * 27 28 # Increase the minimum number of selectable sources required to adjust 29 # the system clock. 30 #minsources 2 31 32 # 指定一臺主機(jī)、子網(wǎng),或者網(wǎng)絡(luò)以允許或拒絕NTP連接到扮演時鐘服務(wù)器的機(jī)器 33 #allow 192.168.0.0/16 34 #deny 192.168/16 35 36 # Serve time even if not synchronized to a time source. 37 local stratum 10 38 39 # 指定包含NTP驗證密鑰的文件。 40 #keyfile /etc/chrony.keys 41 42 # 指定日志文件的目錄。 43 logdir /var/log/chrony 44 45 # Select which information is logged. 46 #log measurements statistics tracking5.設(shè)置時區(qū)
查看當(dāng)前系統(tǒng)時區(qū):
$ timedatectlLocal time: Fri 2018-2-29 13:31:04 CSTUniversal time: Fri 2018-2-29 05:31:04 UTCRTC time: Fri 2018-2-29 08:17:20Time zone: Asia/Shanghai (CST, +0800)NTP enabled: yes NTP synchronized: yesRTC in local TZ: noDST active: n/a如果你當(dāng)前的時區(qū)不正確,請按照以下操作設(shè)置。查看所有可用的時區(qū):$ timedatectl list-timezones篩選式查看在亞洲S開的上海可用時區(qū):$ timedatectl list-timezones | grep -E "Asia/S.*"Asia/Sakhalin Asia/Samarkand Asia/Seoul Asia/Shanghai Asia/Singapore Asia/Srednekolymsk設(shè)置當(dāng)前系統(tǒng)為Asia/Shanghai上海時區(qū):$ timedatectl set-timezone Asia/Shanghai設(shè)置完時區(qū)后,強(qiáng)制同步下系統(tǒng)時鐘:$ chronyc -a makestep 200 OK6.服務(wù)器集群之間的系統(tǒng)時間同步
在生產(chǎn)環(huán)境中,其網(wǎng)絡(luò)都是內(nèi)網(wǎng)結(jié)構(gòu),那么內(nèi)網(wǎng)如何保證服務(wù)器之間的時間同步呢?其實這個問題很簡單,只需要搭建一臺內(nèi)網(wǎng)時間服務(wù)器,然后讓所有計算機(jī)都到服務(wù)端(10.28.204.66)去同步時間即可。
具體操作:在服務(wù)端注釋以下內(nèi)容:
1 #server 0.centos.pool.ntp.org iburst 2 #server 1.centos.pool.ntp.org iburst 3 #server 2.centos.pool.ntp.org iburst 4 #server 3.centos.pool.ntp.org iburst 5 6 并添加以下內(nèi)容:(表示與本機(jī)同步時間) 7 8 server 10.28.204.66 iburst 9 10 這樣我們需求的一臺內(nèi)網(wǎng)時間服務(wù)器已經(jīng)配置完畢。 11 12 同樣在客戶端注釋掉其他server,并在客戶端(10.28.204.65)添加以下: 13 14 server 10.28.204.66 iburst到此已經(jīng)完成系統(tǒng)時間的同步。如有多臺機(jī)器,操作也是如此。
7.常用命令
查看時間同步源:
1 $ chronyc sources -v 2 3 查看時間同步源狀態(tài): 4 5 $ chronyc sourcestats -v 6 7 設(shè)置硬件時間 8 9 硬件時間默認(rèn)為UTC: 10 11 $ timedatectl set-local-rtc 1 12 13 啟用NTP時間同步: 14 15 $ timedatectl set-ntp yes 16 17 校準(zhǔn)時間服務(wù)器: 18 19 $ chronyc tracking最后需要注意的是,配置完/etc/chrony.conf后,需重啟chrony服務(wù),否則可能會不生效。
?
轉(zhuǎn)載于:https://www.cnblogs.com/zhoul/p/9924656.html
總結(jié)
以上是生活随笔為你收集整理的详解:Linux Chrony 设置服务器集群同步时间的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: react native 从头开始
- 下一篇: linux 其他常用命令