Linux基础软件-时间同步chrony

121 阅读4分钟

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

Linux进阶部分又分了很多小的部分,我们刚讲完了Linux日常运维。讲的那些东西都算是系统自带的,但是Linux作为一个服务器操作系统,肯定是要安装运行软件来满足我们的业务需要,本章基础软件部分,将从下面几个部分来讲解:

Linux基础软件-软件安装

Linux基础软件-yum(一)

Linux基础软件-yum(二)

Linux基础软件-ntp

Linux基础软件-chrony(本章节)

Linux基础软件-dns(一)

Linux基础软件-dns(二)

Linux基础软件-nfs

Linux基础软件-lvm

Linux基础软件-Selinux&库文件&swap

其实在NTP时间同步协议里面常用的软件有2个,一个就是上小节讲的软件ntp,另外一个就是本小节要讲的另外一个软件chrony,这2个软件都有类似的功能,目前国内的公有云厂商,有的厂商给用户提供的ntp,有的给用户的提供的chrony。

这2个软件,在默认情况下是互斥的,也就是只能同时启动一个,后启动的会把先启动的服务给停止掉。甚至默认情况下ntpdate命令和ntpd服务都是互斥的就算他们是一个软件包安装出来的,也就是ntpd服务在运行的时候,ntpdate命令我是无法执行的。

[root@localhost ~]# systemctl status ntpd 
● ntpd.service - Network Time Service   
Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled; vendor preset: disabled)   
Active: active (running) since 一 2024-07-29 23:32:58 CST; 37min ago
7月 29 23:32:58 localhost.localdomain ntpd[1228]: Listen normally on 3 ens33 192.168.31.104 UDP 123
#中间省略部分内容
7月 29 23:48:59 localhost.localdomain ntpd[1228]: 0.0.0.0 0515 05 clock_sync

[root@localhost ~]# ntpdate ntp.aliyun.com
30 Jul 00:10:28 ntpdate[1292]: the NTP socket is in use, exiting

Chrony

chrony在最小化安装的centos7系统里面都是自带的,如果不配置就和ntp一样,都是使用官方默认的源。

[root@localhost ~]# chronyc sources
210 Number of sources = 7
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 100.100.61.88                 1  10   377   655  -1634us[-1629us] +/-   29ms
^+ 100.100.3.1                   2  10   377   313    +18us[  +18us] +/-   20ms
^+ 100.100.3.2                   2  10   377   695  +6110us[+6115us] +/-   25ms
^+ 100.100.3.3                   2  10   227   33m  +3569us[+3521us] +/-   26ms
^+ 100.100.5.1                   2  10   377   980    +24us[  +29us] +/-   20ms
^+ 100.100.5.2                   2  10   377   464   +931us[ +931us] +/-   21ms
^+ 100.100.5.3                   2  10   377  1008    -54us[  -48us] +/-   20ms

MS Name/IP address: 当前chrony客户端的上游服务器,其中"*"代表当前上级源,"+"代表参考,"*"只能有一个,"+"可以有多个。

Stratum: 数字越小,代表级别越高。

Poll: 代表同步时间间隔,这个10是最大,也就是1024秒同步一次,这个服务启动的时间一般都比较小,当同步越稳定就是同步的间隔就越低。

Reach: 代表最近8次同步状态,其中377代表8次都成功,如果有一次不成功则不是377。

LastRx: 最近一次同步过去了多少时间,这个和前面的Poll对应,Poll越大,LastRx的值才可能越大。

Last sample: 代表和上游服务器的误差,有正,也有负数,正常的可以接受的大小大概是几十毫秒或者更低的微秒。

上面的参数和ntpd -pn 显示参数基本上是一样的。

chronyd默认是监听127.0.0.1,也就是他默认只能当作客户端,不能作为服务端。

总结

1.无论是ntp还是chrony,他们使用的协议都是udp,而不是一般常用的tcp协议,这个需要注意。

2.作为服务端,我要考虑他怎么给客户端提供稳定可靠的服务(高可用,防止跳变)。

3.作为客户端,我需要考虑的就是如果服务端故障(chrony其实不怕故障),或者说服务端时间发生跳变,我怎么来降低他对我的影响。

关注微信公众号《运维小路》获取更多内容。