chrony时间同步软件介绍

天翼云开发者社区
• 阅读 63

本文分享自天翼云开发者社区《chrony时间同步软件介绍》,作者:刘****苏

chrony是网络时间协议NTP的通用实现,它可以将系统时钟和`NTP服务器同步。它支持在各种条件下包括间歇性的网络连接、严重阻塞的网络、不断变化的温度以及支持不连续的运行并且可以运行于虚机上。

本文介绍chrony工具的安装和使用,包括两个节点:一个作为时间服务器,另一个作为客户端。

执行如下命令来安装chrony:

``` [root@kvm ~]# yum install chrony [root@kvm ~]# rpm -ql chrony /etc/NetworkManager/dispatcher.d/20-chrony-dhcp /etc/NetworkManager/dispatcher.d/20-chrony-onoffline /etc/chrony.conf /etc/chrony.keys /etc/dhcp/dhclient.d/chrony.sh /etc/logrotate.d/chrony /etc/sysconfig/chronyd /usr/bin/chronyc /usr/lib/.build-id /usr/lib/.build-id/38 /usr/lib/.build-id/38/1d3a324ce66865ba879dfa43d49e0e0c1e2c41 /usr/lib/.build-id/43 /usr/lib/.build-id/43/444c816fcf0802c43011f282afaf9feded4c56 /usr/lib/systemd/ntp-units.d/50-chronyd.list /usr/lib/systemd/system/chrony-dnssrv@.service /usr/lib/systemd/system/chrony-dnssrv@.timer /usr/lib/systemd/system/chrony-wait.service /usr/lib/systemd/system/chronyd.service /usr/libexec/chrony-helper /usr/sbin/chronyd /usr/share/doc/chrony /usr/share/doc/chrony/FAQ /usr/share/doc/chrony/NEWS /usr/share/doc/chrony/README /usr/share/doc/chrony/ntp2chrony.py /usr/share/licenses/chrony /usr/share/licenses/chrony/COPYING /usr/share/man/man1/chronyc.1.gz /usr/share/man/man5/chrony.conf.5.gz /usr/share/man/man8/chronyd.8.gz /var/lib/chrony /var/lib/chrony/drift /var/lib/chrony/rtc /var/log/chrony

如下所示为配置文件:

[root@kvm ~]# cat /etc/chrony.conf pool 2.centos.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 0/0 ​

Serve time even if not synchronized to a time source.

local stratum 10 ​

Specify file containing keys for NTP authentication.

keyfile /etc/chrony.keys ​

Get TAI-UTC offset and leap seconds from the system tz database.

leapsectz right/UTC ​

Specify directory for log files.

logdir /var/log/chrony ​

Select which information is logged.

#log measurements statistics tracking

其中:
pool:为外部时钟源地址
rtcsync:开启硬件时钟的同步机制,linux内核每11分钟同步一次系统时钟到硬件时钟
local stratum 10:当外部时钟源不可用的时候,以本机时钟为准继续提供服务
allow 0/0:允许的客户端的cidr
启动服务后查看状态:

[root@kvm ]# systemctl start chronyd [root@kvm ~]# [root@kvm ~]# [root@kvm ~]# systemctl status chronyd ● chronyd.service - NTP client/server Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2023-09-08 19:02:50 CST; 2min 43s left Docs: man:chronyd(8) man:chrony.conf(5) Process: 11542 ExecStopPost=/usr/libexec/chrony-helper remove-daemon-state (code=exited, status=0/SUCCESS) Process: 11552 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS) Process: 11547 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS) Main PID: 11550 (chronyd) Tasks: 1 (limit: 52427) Memory: 924.0K CGroup: /system.slice/chronyd.service └─11550 /usr/sbin/chronyd ​ Sep 08 19:02:50 kvm chronyd[11550]: chronyd version 4.2 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +NTS +SECHASH +IPV6 +DEBUG) Sep 08 19:02:50 kvm chronyd[11550]: Frequency 1.633 +/- 0.046 ppm read from /var/lib/chrony/drift Sep 08 19:02:50 kvm chronyd[11550]: Using right/UTC timezone to obtain leap second data Sep 08 19:02:50 kvm systemd[1]: Started NTP client/server. Sep 08 19:02:55 kvm chronyd[11550]: Selected source 36.110.233.85 (2.centos.pool.ntp.org) Sep 08 19:02:55 kvm chronyd[11550]: System clock wrong by -791.549636 seconds Sep 08 18:49:44 kvm chronyd[11550]: System clock was stepped by -791.549636 seconds Sep 08 18:49:44 kvm chronyd[11550]: System clock TAI offset set to 37 seconds Sep 08 18:50:49 kvm chronyd[11550]: Selected source 119.28.206.193 (2.centos.pool.ntp.org) Sep 08 18:54:07 kvm chronyd[11550]: Source 81.16.177.123 replaced with 78.46.102.180 (2.centos.pool.ntp.org) [root@kvm ~]# [root@kvm ~]# netstat -tunlp |grep chrony udp 0 0 0.0.0.0:123 0.0.0.0:* 11550/chronyd udp 0 0 127.0.0.1:323 0.0.0.0:* 11550/chronyd udp6 0 0 ::1:323 :::* 11550/chronyd [root@kvm ~]# [root@kvm ~]# chronyc sources -v ​ .-- Source mode '^' = server, '=' = peer, '#' = local clock. / .- Source state '*' = current best, '+' = combined, '-' = not combined, | / 'x' = may be in error, '' = too variable, '?' = unusable. || .- xxxx [ yyyy ] +/- zzzz || Reachability register (octal) -. | xxxx = adjusted offset, || Log2(Polling interval) --. | | yyyy = measured offset, || \ | | zzzz = estimated error. || | |
MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^- 79.133.44.136 1 6 377 56 -10ms[ -10ms] +/- 138ms ^- electrode.felixc.at 2 6 33 55 +17ms[ +17ms] +/- 119ms ^* 119.28.206.193 2 6 377 60 +1706us[+2327us] +/- 40ms ^+ 36.110.233.85 2 6 377 58 -1324us[-1324us] +/- 68ms

chrony守护进程监听在udp协议的123和323端口。
客户端节点上安装好chrony后,修改配置文件如下所示:

[root@node1 ~]# cat /etc/chrony.conf server 172.24.21.221 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 3600 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

查看状态:

[root@node1 ]# chronyc sources -v 210 Number of sources = 1 ​ .-- Source mode '^' = server, '=' = peer, '#' = local clock. / .- Source state '*' = current synced, '+' = combined , '-' = not combined, | / '?' = unreachable, 'x' = time may be in error, '' = time too variable. || .- xxxx [ yyyy ] +/- zzzz || Reachability register (octal) -. | xxxx = adjusted offset, || Log2(Polling interval) --. | | yyyy = measured offset, || \ | | zzzz = estimated error. || | |
MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 172.24.21.221 3 6 377 37 -7753ns[ +140us] +/- 29ms

``` chrony默认是采用连续同步的方式来同步时钟的,并非采用跳变的方式。

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
NTP时间同步
如果服务器的时间出现混乱,将导致很多意想不到的问题。使用NTP,可以使服务器获取正确的时间,从而避免出现问题。NTP是NetworkTimeProtocol的简写,意为“网络时间协议”,是一个用TCP/IP协议实现的时间同步协议。Ubuntu在每次启动都会自动到ntp.ubuntu.com去做时间同步。但是,由于服务器一般不会频繁启动,所以还是不
Stella981 Stella981
3年前
Linux内网时钟同步问题(ntp和chrony)
我们都知道时钟同步可以使用外网服务器,在内网内不能连接外网的时候也需要时钟同步,那怎么进行呢?选择内网的一台稳定的服务器作为时钟源,然后让其他机器都来同步这台机器即可。注:其实ntp服务和chrony服务本质上差不多,他们之间都可以互相进行同步。不过为了避免不必要的麻烦,一般服务器都只选择同一时钟服务来讲进行同步。一、ntp服务安装:yum
Stella981 Stella981
3年前
OpenStack
1.OpenStack示例的架构介绍1.1各节点介绍(1)控制节点(controller)控制节点(controller)上运行身份服务,镜像服务,计算节点管理,网络管理,各种网络代理和仪表板。它还包括支持服务,如SQL数据库,消息队列和NTP。可选地,控制器节点运行块存储,对象存储,编排和遥测服务的部分。注:计算节点上需要至少配置两
如何将物理机Windows系统迁移到VMware虚拟机?
本文分享自天翼云开发者社区@《》,作者:我是小朋友如何将物理机上的Windows系统迁移到VMware虚拟机?本文详细介绍如何使用DiskGenius免费版将物理电脑上的Windows操作系统转移至VMware虚拟机。关于迁移物理系统到VMware虚拟机V
虚拟主机和云服务器的区别
本文分享自天翼云开发者社区@《》,作者:AE86上山了虚拟主机和云服务器的区别1、云服务器可支持弹性扩展,按需付费,而虚拟主机不支持2、云服务器需要手动配置环境,虚拟主机无须配置环境3、云服务器是独享资源,虚拟主机的资源是共享的4、云服务器可远程桌面进行管
云平台监控指标的设定
本文分享自天翼云开发者社区@《》,作者:AE86上山了为了确保存储和服务器能应付不断增长的业务需求,对磁盘资源、内存和CPU资源、宿主操作系统进行监控是必要的。1.磁盘资源服务器硬盘是磁盘资源中最慢的组件,在企业数据中心,仔细设计存储子系统,不要让它成为主
启动Tomcat时报错,提示80端口被占用怎么办?
本文分享自天翼云开发者社区《》,作者:wn本节操作以WindowsServer2019Datacenter操作系统的弹性云主机为例介绍排查80端口占用的操作步骤。可能原因提示80端口被占用,由提示可知,该端口可能是被其他程序占用,包括被木马病毒占用,可以按
RabbitMQ集群部署(一)——单机模式部署
本文分享自天翼云开发者社区《》,作者:芋泥麻薯RabbitMQ是一种开源消息队列系统,是AMQP的标准实现,用erlang语言开发。RabbitMQ具有良好的性能和时效性,同时还能够非常好的支持集群和负载部署,非常适合在较大规模的分布式系统中使用。Rabb
简单概述Serverless
本文分享自天翼云开发者社区@《​​》,作者:我是小朋友Serverless是计算的趋势,它使诸如Web应用程序之类的代码执行与维护服务器以运行该代码的需求脱钩。创建,供应和维护服务器上运行的应用程序的操作开销(传统意义上)非常重要。减少或消除这项工作可以帮
聊聊Docker镜像
本文分享自天翼云开发者社区@《​​​​​​​​​》,作者:AE86上山了。前言回顾前面:为什么需要Docker?Docker入门为什么可以这么简单?在上篇也同样留下一个问题:我们知道Tomcat运行起来需要Java的支持,那么我们在DockerHub拉取下
天翼云开发者社区
天翼云开发者社区
Lv1
天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
文章
798
粉丝
16
获赞
40