Linux时间服务器chrony用法


lingdu
零度 2023-10-25 15:07:18 50230
分类专栏: 资讯

Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软件。它能让计算机时间与标准的时钟服务器(NTP)同步,从而让计算机保持精确的时间,Chrony也可以作为服务端软件为其他计算机提供时间同步服务,Chrony可以理解为NTP的另一种实现。

chrony相比ntp的优势主要如下:

  • 能更精确、更快的同步时钟,传统ntp 需要几小时,而chrony 仅需要数秒钟或数毫秒即可完成时间同步

  • chrony 占用系统资源少,只有被唤起时才占用少部分CPU ,chrony 兼容ntpdate

  • 能够更好地响应时钟频率的快速变化,这对于具备不稳定时钟的虚拟机或导致时钟频率发生变化的节能技术而言非常有用

  • 在初始同步后,它不会停止时钟,以防对需要系统时间保持单调的应用程序造成影响

  • 无需对服务器进行定期轮询,因此具备间歇性网络连接的系统仍然可以快速同步时钟

     

Chrony运行于UDP323端口,ntp运行于UDP123端口,使用chrony服务器可以同时为chrony客户端和ntp客户端提供服务

注意:chrony和ntp不能同时兼容的,只能运行一个,否则会出错

Chrony包括两个核心组件:

  • chronyd:一个后台运行的守护进程,用于调整内核中运行的系统时钟与NTP服务器同步。它确定服务器增减时间的比率,并对此进行调整补偿,即是服务器端进程也可以是客户端进程

  • chronyc:提供用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的服务器上工作,也可以在一台不同的远程服务器上工作

 

CentOS7默认使用了chrony作为时间服务器,如果要使用ntp,需要额外安装

本例子演示通过一台机器部署chrony来作为时间服务器,另一台客户端来同步此时间

环境准备:

  • 192.168.49.224:时间服务器,需要安装chrony

  • 192.168.49.130:客户端服务器,需要同步时间

 

服务端

1、首先查看49.224机器的时间以及是否安装了chrony,如图:

从上图可以看出,49.224服务器时间为2023年9月5号上午十点34,并且已经安装了chrony,如果没有安装,那么就执行如下命令安装和启动:

  • yum -y install chrony
  • systemctl enable chronyd
  • systemctl start chronyd

2、查看chrony.conf配置文件,参数说明如下:

  • #配置时间服务器,以server开头,可添加多个
  • server 1.centos.pool.ntp.org iburst
  • server 2.centos.pool.ntp.org iburst
  • #根据实际时间计算出服务器增减时间的比率,然后记录到一个文件中重启补偿校正
  • driftfile /var/lib/chrony/drift
  • #如果系统时钟的偏移量大于1秒,则允许系统时钟在前三次更新中步进
  • makestep 1.0 3
  • #启用一个内核模式,在该模式中,系统时间每1分钟会拷贝到实时时钟
  • rtcsync
  • #通过使用 hwtimestamp 指令启用硬件时间戳
  • #hwtimestamp *
  • #增加调整所需的可选择源的最小数量
  • #minsources 2
  • #允许指定网络的主机同步时间,不指定就是允许所有,默认不开启
  • allow 192.168.49.130/16
  • #当chrony提供的时间不可用,采用本地时间继续作为时间服务器让其他主机来同步时间
  • local stratum 10
  • #指定包含NTP验证密钥的文件
  • #keyfile /etc/chrony.keys
  • #指定存放日志文件的目录
  • logdir /var/log/chrony

注意看上面的allow是允许哪个客户端来同步时间,如果不设置则所有客户端都可同步,修改完成后重启chrony,如下:

  • systemctl restart chronyd

 

客户端

客户端同步时间也使用chrony守护进程进行同步

1、首先查看客户端的时间,如图:

图片

从上图可以看出,与服务端的时间差了很多,现在进行同步下

2、安装chrony进程,执行如下命令:

  • yum -y install chrony
  • systemctl enable chronyd
  • systemctl start chronyd

3、编辑配置文件chrony.conf,添加时间服务器为服务端地址,其余配置不用动,如图:

图片

4、启动chrony,未成功,查看错误日志/var/log/message,内容如下:

  • Sep 5 05:45:25 localhost systemd: Starting NTP client/server...
  • Sep 5 05:45:25 localhost chronyd[18360]: chronyd version 3.4 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +SECHASH +IPV6 +DEBUG)
  • Sep 5 05:45:25 localhost chronyd[18360]: Could not change ownership of /var/run/chrony : Operation not permitted
  • Sep 5 05:45:25 localhost chronyd[18360]: Could not access /var/run/chrony : No such file or directory
  • Sep 5 05:45:25 localhost chronyd[18360]: Disabled command socket /var/run/chrony/chronyd.sock
  • Sep 5 05:45:25 localhost chronyd[18360]: Fatal error : Could not open /var/run/chrony/chronyd.pid : No such file or directory
  • Sep 5 05:45:25 localhost chronyd: Could not open /var/run/chrony/chronyd.pid : No such file or directory
  • Sep 5 05:45:25 localhost systemd: chronyd.service: control process exited, code=exited status=1
  • Sep 5 05:45:25 localhost systemd: Failed to start NTP client/server.
  • Sep 5 05:45:25 localhost systemd: Unit chronyd.service entered failed state.
  • Sep 5 05:45:25 localhost systemd: chronyd.service failed.

上面的错误是因为当前系统是centos7.3,然后使用yum安装chrony后默认安装了最新版本的chrony,最新版本chrony不兼容7.3内核,因为要么安装对应7.3内核的chrony,要么升级系统版本,我这里直接升级系统版本,执行如下命令:

  • yum update -y

升级后重启chronyd即可成功

注意:如果没有报错,第4步可忽略

5、此时查看服务端和客户端的时间,一般客户端重启chronyd后几秒钟即可实现时间同步,如图:

图片

 

注意:如果客户端和服务端时间相差较大,开启makestep 1.0 3参数是可以加快时间同步的,参数说明:

  • 1.0:指定每秒钟的步进量为 1.0 秒。这意味着系统时钟将以每秒 1.0 秒的速度进行调整

  • 3:表示允许的最大步进次数。如果时钟偏离太大,在 makestep 执行期间,默认情况下 chrony 将最多执行 3 次步进调整

     

使用 makestep 可以帮助快速纠正系统时钟的较大偏移,以便尽快与 NTP 服务器同步。然而,过多的大步调整可能会对系统稳定性产生一些负面影响,因此 makestep 的使用应慎重,并尽量在网络环境不稳定或初始同步时使用

常用的chronyc命令如下:

  • chronyc sources -v #查看 ntp_servers
  • chronyc sourcestats -v #查看 ntp_servers 状态
  • chronyc activity -v #查看 ntp_servers 是否在线
  • chronyc tracking -v #查看 ntp 详细信息
  • chronyc -a makestep #强制同步下系统时钟

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=27834
赞同 0
评论 0 条
零度L0
粉丝 0 发表 12 + 关注 私信
上周热门
如何使用 StarRocks 管理和优化数据湖中的数据?  2959
【软件正版化】软件正版化工作要点  2878
统信UOS试玩黑神话:悟空  2843
信刻光盘安全隔离与信息交换系统  2737
镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态  1270
grub引导程序无法找到指定设备和分区  1235
华为全联接大会2024丨软通动力分论坛精彩议程抢先看!  165
点击报名 | 京东2025校招进校行程预告  164
2024海洋能源产业融合发展论坛暨博览会同期活动-海洋能源与数字化智能化论坛成功举办  163
华为纯血鸿蒙正式版9月底见!但Mate 70的内情还得接着挖...  159
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

加入交流群

请使用微信扫一扫!