Menu Close

在OEL7上安装Chrony时间服务

1. 系统环境

1.1 参考资料

https://www.server-world.info/en/
https://www.server-world.info/en/note?os=CentOS_7&p=ntp&f=3
https://www.xiexianbin.cn/linux/2016-02-08-chrony/ Linux 中同步时间工具 Chrony 介绍和使用

1.2 操作系统环境

Oracle Linux Server 7.6

1.3 数据库环境

2. Chrony简介

Chrony是一个开源的自由软件,它能帮助你保持系统时钟与时钟服务器(NTP)同步,因此让你的时间保持精确。它由两个程序组成,分别是chronyd和chronyc。chronyd是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。chronyc提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。
在像CentOS7之类基于RHEL的操作系统上,已经默认安装有Chrony。

3. Chrony配置

3.1 chrony的操作

NOTICE:首先得配置好YUM源

yum install -y chrony     -->安装服务
systemctl start chronyd.service   -->启动服务
systemctl enable chronyd.service   -->设置开机自启动,默认是enable的

3.2 防火墙配置

如果Firewalld正在运行,请允许NTP服务。 NTP使用123 / UDP。

 firewall-cmd --add-service=ntp --permanent
 firewall-cmd --reload

3.3 chrony配置文件

chrony服务使用的配置文件为/etc/chrony.conf
其配置内容格式和ntpd服务基本相似

 ~]# cat /etc/chrony.conf

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
server 2.pool.ntp.org iburst
server 3.pool.ntp.org iburst

# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift

# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3

# Enable kernel synchronization of the real-time clock (RTC).
rtcsync

# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *

# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2

# Allow NTP client access from local network.
#allow 192.168.0.0/16

# Serve time even if not synchronized to a time source.
#local stratum 10

# Specify file containing keys for NTP authentication.
#keyfile /etc/chrony.keys

# Specify directory for log files.
logdir /var/log/chrony

# Select which information is logged.
#log measurements statistics tracking

3.4 配置参数说明

参数 参数说明
server 该参数可以多次用于添加时钟服务器,必须以"server "格式使用。一般而言,你想添加多少服务器,就可以添加多少服务器
stratumweight stratumweight指令设置当chronyd从可用源中选择同步源时,每个层应该添加多少距离到同步距离。默认情况下,CentOS中设置为0,让chronyd在选择源时忽略源的层级
driftfile chronyd程序的主要行为之一,就是根据实际时间计算出计算机增减时间的比率,将它记录到一个文件中是最合理的,它会在重启后为系统时钟作出补偿,甚至可能的话,会从时钟服务器获得较好的估值
rtcsync rtcsync指令将启用一个内核模式,在该模式中,系统时间每11分钟会拷贝到实时时钟(RTC)
allow/deny 这里你可以指定一台主机、子网,或者网络以允许或拒绝NTP连接到扮演时钟服务器的机器
cmdallow/cmddeny 跟上面相类似,只是你可以指定哪个IP地址或哪台主机可以通过chronyd使用控制命令
bindcmdaddress 该指令允许你限制chronyd监听哪个网络接口的命令包(由chronyc执行)。该指令通过cmddeny机制提供了一个除上述限制以外可用的额外的访问控制等级
makestep 通常,chronyd将根据需求通过减慢或加速时钟,使得系统逐步纠正所有时间偏差。在某些特定情况下,系统时钟可能会漂移过快,导致该调整过程消耗很长的时间来纠正系统时钟。该指令强制chronyd在调整期大于某个阀值时步进调整系统时钟,但只有在因为chronyd启动时间超过指定限制(可使用负值来禁用限制)

3.5 检查ntp源服务器状态

~]# chronyc sourcestats
210 Number of sources = 11
Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev
==============================================================================
ntp1.flashdance.cx          5   3    74    +47.533    761.119    +66ms  3190us
mailgw.xanet.edu.cn         0   0     0     +0.000   2000.000     +0ns  4000ms
202.112.7.150               0   0     0     +0.000   2000.000     +0ns  4000ms
gus.buptnet.edu.cn          5   4    72     +7.542      7.419   -338ms    15us
dns1.synet.edu.cn           5   3    73     -0.000      1.591    -12ns  9406ns
202.112.26.37               0   0     0     +0.000   2000.000     +0ns  4000ms
ntp.glnet.edu.cn            5   3    72     +0.114      2.865  +9260us    16us
ns.pku.cn                   0   0     0     +0.000   2000.000     +0ns  4000ms
203.107.6.88                5   5    73    +44.771    107.137  -5894us   640us
ntp5.flashdance.cx          0   0     0     +0.000   2000.000     +0ns  4000ms
a.chl.la                    5   3    73     +6.678   2117.361    +59ms  9357us

3.6 查看ntp详细的同步状态

3.7 查看日期时间、时区及NTP状态

查看日期时间、时区及NTP状态:# timedatectl
查看时区列表:# timedatectl list-timezones
修改时区# timedatectl set-timezone Asia/Shanghai
修改日期时间:# timedatectl set-time "2015-01-21 11:50:00"(可以只修改其中一个)
开启NTP:# timedatectl set-ntp true/flase

3.8 节点(客户端)配置

客户端需要修改/etc/chrony.conf文件,配置好上级时钟源。

~]# vim /etc/chrony.conf
server 192.168.13.47 iburst
server 192.168.13.88 iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
logdir /var/log/chrony

查看配置文件

~]# cat /etc/chrony.conf | grep -v ^# | grep -v ^$
# 以下是exadata中的配置
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
hwtimestamp *
logdir /var/log/chrony
server 192.168.36.168 prefer iburst minpoll 4 maxpoll 4 xleave

4. chronyc命令参数说明

参数 参数说明
accheck 检查NTP访问是否对特定主机可用
activity 该命令会显示有多少NTP源在线/离线
add server 手动添加一台新的NTP服务器。
clients 在客户端报告已访问到服务器
delete 手动移除NTP服务器或对等服务器
settime 手动设置守护进程时间
tracking 显示系统时间信息

4.1 chronyc activity

~]# chronyc activity
200 OK
10 sources online
0 sources offline
1 sources doing burst (return to online)
0 sources doing burst (return to offline)
0 sources with unknown address

4.2 chronyc tracking

~]# chronyc tracking
Reference ID    : 78197314 (120.25.115.20)
Stratum         : 3
Ref time (UTC)  : Wed May 22 16:00:03 2019
System time     : 0.000822585 seconds fast of NTP time
Last offset     : +0.000354587 seconds
RMS offset      : 0.000662374 seconds
Frequency       : 5.896 ppm slow
Residual freq   : +0.011 ppm
Skew            : 0.153 ppm
Root delay      : 0.062886700 seconds
Root dispersion : 0.001148343 seconds
Update interval : 65.3 seconds
Leap status     : Normal
  • 无法同步时间服务器时

  • 正常同步时间服务器时

4.3. chronyc sources -v 查看是否同步

说明:
^* #已同步
^? #未同步
192.168.2.25 #时间服务器IP
  • 未同步时间服务器时间

  • 已同步时间服务器时间

5. chrony的优势

  • 更快的同步只需要数分钟而非数小时时间,从而最大程度减少了时间和频率误差,这对于并非全天 24 小时运行的台式计算机或系统而言非常有用。
  • 能够更好地响应时钟频率的快速变化,这对于具备不稳定时钟的虚拟机或导致时钟频率发生变化的节能技术而言非常有用。
  • 在初始同步后,它不会停止时钟,以防对需要系统时间保持单调的应用程序造成影响。
  • 在应对临时非对称延迟时(例如,在大规模下载造成链接饱和时)提供了更好的稳定性。
  • 无需对服务器进行定期轮询,因此具备间歇性网络连接的系统仍然可以快速同步时钟。