目录
chronyc sources -v 查看同步状态编辑编辑
5.1迁移vm后时间差异较大,需要快速同步时间
5.2当集群时间源外网不可用时,启用本地模式,但客户端无法同步时间
5.3chronyd服务都正常,但未进行时间同步
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:本地时间是系统时间经过时区转换后的时间。
timedatectl可以查询本地时间(Local time)、系统时间(Universal time)、硬件时间(RTC time)、时区(Time zone)等信息。
时间同步两个目的:1、对外保证本地时间和国际通用时间保持同步,通过NTP同步
2、对内保证系统时间和硬件时间同步,通过rtcsync同步
3、安装与使用
服务端
yum -y install chrony
systemctl enable chronyd
systemctl start chronyd
修改服务端配置文件/etc/chrony.conf
# 根据实际时间计算出服务器增减时间的比率,然后记录到一个文件中,在系统重启后为系统做出最佳时间补偿调整。
driftfile /var/lib/chrony/drift
# 如果系统时钟的偏移量大于1秒,则允许系统时钟在前三次更新中步进。
makestep 1.0 3
# 启用实时时钟(RTC)的内核同步。rtcsync
# 指定 NTP 客户端地址,以允许或拒绝连接到扮演时钟服务器的机器allow all
#Serve time even if not synchronized 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
修改完配置文件需要重启服务
systemctl 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(表示秒)作为后缀。方括号左侧的数字表示原始测量值,已调整为允许此后施加于本地时钟的任何摆度。
+/-指示器后面的数字表示测量中的误差范围。正偏移表示本地时钟位于源时钟之前。
timedatectl
该参数为ntp服务状态,timedatectl set-ntp yes/fauls,慎用,关闭不仅导致chronyd服务停止,同时关闭自启动;
system clock synchronized这个参数比较复杂,只有在时钟源同步成功情况下,同时系统时间同步成功,才会显示yes
如果chronyc tracking是本地源的话,这个值一直是no
如果chronyc source没有源,也是no
如果有 ^* 但是system time不是0也是no
chronyc tracking
进行时间同步状态检查
Reference 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:时间偏移量的均方根,是一个衡量时间同步精度的指标。
Frequency:本地系统时钟的速度,相对于完美的时间源,以每百万部分(ppm)表示。如果显示 "fast",表示你的系统时钟运行得比完美的时钟快;如果显示 "slow",表示你的系统时钟运行得比完美的时钟慢。
Residual freq:在最后一次同步之后,已经观察到的本地时钟频率的改变。
Skew:本地时钟频率估计的不确定性。
Root delay:到同步源的往返时间。
Root dispersion:同步源的最大可能误差。
Update interval:两次连续更新之间的间隔时间(以秒为单位)。
Leap status:闰秒状态。可以是 "Normal"、"Insert second" 或 "Delete second"。
5、常见问题
5.1迁移vm后时间差异较大,需要快速同步时间
解决:采用chronyc makestep 0.1 3只允许逐步校正时钟,时间较慢
可以采用chronyc -m 'burst 3/3' 'makestep 0.1 3'立即同步时钟
5.2当集群时间源外网不可用时,启用本地模式,但客户端无法同步时间
如果所有的server都无法连接自己的time source时,local这种模式只能有一个server配置该参数
5.3chronyd服务都正常,但未进行时间同步
chrony (3.2-2)版本的 NetworkManager 调度程序脚本中有一个 BUG。
临时:重启chronyd服务
永久:升级3.4以上的版本
6、常用时钟源
pool.ntp.org:项目是一个提供可靠易用的NTP服务的虚拟集群cn.pool.ntp.org,0-3.cn.pool.ntp.org
阿里云公共NTP服务器
Unix/linux类:ntp.aliyun.com,ntp1-7.aliyun.com
windows类: time.pool.aliyun.com
大学ntp服务
s1a.time.edu.cn 北京邮电大学 s1b.time.edu.cn 清华大学 s1c.time.edu.cn 北京大学
国家授时中心服务器
210.72.145.44