安装与配置(Chrony的配置文件是/etc/chrony.conf)
再见 NTP,是时候拥抱下一代时间同步服务 Chrony 了
chrony服务器
Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器(NTP)同步,因此让你的计算机保持精确的时间,Chrony也可以作为服务端软件为其他计算机提供时间同步服务。
Chrony由两个程序组成,分别是chronyd和chronyc
chronyd是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。
chronyc提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。NTP 是网络时间协议(Network Time Protocol)的简称,通过 udp 123 端口进行网络时钟同步。
RHEL7中默认使用chrony作为时间服务器,也支持NTP,需要额外安装。
NTP与chrony不能同时存在,只能用其中一个
Chrony
是一个多功能的 NTP (Network Time Protocol)
实现,类 Unix
系统上 NTP
客户端和服务器的替代品。它可以通过 NTP
服务或者类似 GPS
时钟接收器的硬件级参考时钟来同步系统时钟,具有更好的时钟准确度,并且对于那些间歇性互联网连接的系统很有帮助。Chrony
是免费开源的,并且支持 GNU/Linux
和 BSD
衍生版(比如:FreeBSD
、NetBSD
)、macOS
和 Solaris
等。
Chrony
有两个核心组件:一个是 chronyd
守护进程,主要用于调整内核中运行的系统时间和时间服务器同步。它确定计算机增减时间的比率,并对此进行调整补偿。另一个是 chronyc
,它提供一个用户界面,用于监控性能并进行多样化的配置。chronyc
可以在 chronyd
实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。
Chrony 相较于 NTPD 服务的优势
- 更快的同步只需要数分钟而非数小时时间,从而最大程度的减少时间和频率误差,这对于并非全天运行的台式计算机或系统而言非常有用。
- 能够更好的响应时间频率的快速变化,这对于具备不稳定时钟的虚拟机或导致时钟频率反复变化的节能技术而言非常有用。
- 在初始同步后,它并不会停止时钟,以防对需要系统时间保持单调的程序造成影响。
- 在应对临时非对称延迟时,(例如:大规模下载造成连接饱和时)提供了更好的稳定性。
- 无需对服务器进行定期轮询,因此具备间歇性网络连接的系统仍然可以快速同步时钟。
安装与配置(Chrony的配置文件是/etc/chrony.conf)
#yum -y install chrony
#systemctl enable chronyd
#systemctl start chronyd
同步网络时间服务器
210.72.145.44 国家授时中心
ntp.aliyun.com 阿里云
s1a.time.edu.cn 北京邮电大学
s1b.time.edu.cn 清华大学
s1c.time.edu.cn 北京大学
s1d.time.edu.cn 东南大学
s1e.time.edu.cn 清华大学
s2a.time.edu.cn 清华大学
s2b.time.edu.cn 清华大学
s2c.time.edu.cn 北京邮电大学
s2d.time.edu.cn 西南地区网络中心
s2e.time.edu.cn 西北地区网络中心
s2f.time.edu.cn 东北地区网络中心
s2g.time.edu.cn 华东南地区网络中心
s2h.time.edu.cn 四川大学网络管理中心
s2j.time.edu.cn 大连理工大学网络中心
s2k.time.edu.cn CERNET桂林主节点
s2m.time.edu.cn 北京大学
ntp.sjtu.edu.cn 202.120.2.101 上海交通大学
设置开机启动,重启服务
systemctl enable chronyd
systemctl restart chronyd
# 查看时间同步状态
timedatectl status
# 开启网络时间同步
timedatectl set-ntp true
chronyc sources 输出结果解析
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(表示秒)作为后缀。方括号左侧的数字表示原始测量值,已调整为允许此后施加于本地时钟的任何摆度。
+/-指示器后面的数字表示测量中的误差范围。正偏移表示本地时钟位于源时钟之前。
练习
chrony服务部署:两台机器 a: 第一台机器从阿里云同步时间 第二台机器从第一台机器同步时间 b: 第一台服务器使用系统时间作为第二台服务器的时钟源, 第一台服务器层级设置为6,
实验模型图如下
a实验步骤
1.在第一台机器从阿里云同步时间配置如下
打开chrony服务器配置文件
vim /etc/chrony.conf
配置阿里云网络时间服务器
server ntp.aliyun.com iburst
重启服务
systemctl restart chronyd
查看 ntp_servers
chronyc sources -v
查看 ntp 详细信息
chronyc tracking -v
chronyd配置完成
chronyc配置如下
打开chrony服务器配置文件
vim /etc/chrony.conf
配置:server 第一台服务器ip iburst
用chronyc tracking -v查看结果如下
实验a完成
实验b如下
第一台服务器使用系统时间作为第二台服务器的时钟源, 第一台服务器层级设置为6
在/etc/chrony.conf配置
server 127.0.0.0 iburst
local stratum 6
重启服务 使用chronyc tracking 查询 设置层级为6
在第二台机器查看chronyc tracking
实验b完成