Chrony时间同步服务和关键3项配置

Chrony时间同步服务

1. 时间同步基本概念

1.1 什么是时间同步

时间同步,就是将本地时间与互联网时间进行校对,为系统提供一个统一时间的过程。由于本地时间的计时速率和运行环境的不一致性,所有本地时钟纵使在某一刻被校准了,一段时间后,这些本地时钟也会出现不一致。为了使本地时钟再次达到相同的时间值,需要进行时间同步的操作。

1.2 为什么需要时间同步

在运维工作中,存在众多主机协同完成不同任务的场景。例如,LNMP架构可以分别部署在三台不同的主机上,这三台主机在工作时由于分别位于不同的主机上,需要根据文件或数据流所生成的时间来决定响应给客户端的结果如何展示。此时需要统一网络中的主机时间一致。虽然时间不一定必须是正确的,但必须是统一的。例如,在https应用场景中,如果客户端时间是准确的,而服务端时间不准确,则会提示存在风险而不予接受。

1.3 时间同步是如何完成

假设服务器启动后发现时间慢了24小时,那么如何将自己的时间调整正确呢?

  • 手动校对时间:像调整手表表针一样波动。
  • date命令校对时间:直接跳跃时间,跳跃的过程中会造成部分文件出现空白段。
NTP时间服务(centos6)

NTP通过让时间校对像手表一样波动的快一点,而不是直接跳跃过去的方式进行时间同步。其他服务器一分钟是60秒,而NTP一分钟是30秒,从而实现时间校对。问题在于,校对较大时间偏差需要很长时间。

Chrony时间服务

Chrony是NTP的替代品,能够更精确、更快速地同步时钟。传统NTP需要比较长时间,而Chrony仅需数秒或数毫秒即可完成时间同步,调整时间的速度像波动表针的速度一样快。

2. Chrony时间服务

2.1 Chrony介绍

Chrony是基于NTP协议实现的时间同步服务,既可以作为服务端,也可以充当客户端。

  1. Chrony是NTP的替代品,能够更精确地同步时钟。
  2. Chrony占用系统资源少,只有在被唤起时才占用少部分CPU,兼容ntpdate。
  3. Chrony允许本地网络其他主机进行时间同步。

2.2 为何需要Chrony

直接同步公网上的时间会带来如下问题:

  1. 造成延迟
  2. 浪费带宽

解决方法是搭建内网时间服务器,同步公网时间,然后所有服务器与这台服务器进行时间同步,以减小服务器之间的误差,提升同步速度,并减少网络带宽损耗。

2.2.1 Chrony安装
[root@chrony ~]# yum install chrony -y
  • 主配置文件:/etc/chrony.conf
  • 客户端程序:/usr/bin/chronyc
  • 服务端程序:/usr/sbin/chronyd
2.2.2 Chrony服务端

默认配置:

[root@chrony ~]# cat /etc/chrony.conf

#使用同步的远程时钟源,理论上可以同步无限个
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

#根据实际时间计算出服务器增减时间的比率,然后记录到一个文件中,在系统重启后为系统做出最佳时间补偿调整
driftfile /var/lib/chrony/drift

#如果系统时钟的偏移量大于1秒,则允许系统时钟在前三次更新中步进
makestep 1.0 3

#启用实时时钟(RTC)的内核同步
rtcsync

#通过使用 hwtimestamp 指令启用硬件时间戳
#hwtimestamp *

#增加调整所需的可选择源的最小数量
#minsources 2

#允许指定网络的主机同步时间,不指定就是允许所有,默认不开启。
allow 192.168.0.0/16

#默认情况下本地服务器无法同步互联网时间时,可能会出现不精确,所以会拒绝提供授时服务;开启此选项,则表示允许接受不精确时间,继续为客户端提供授时服务;
local stratum 10

#指定包含 NTP 身份验证密钥的文件
#keyfile /etc/chrony.keys

#指定日志文件
logdir /var/log/chrony

#选择日志文件要记录的信息
log measurements statistics tracking

Chrony服务端配置,修改/etc/chrony.conf文件三处设定外部时间服务器、允许内网同步此服务端、设置断网继续同步:

[root@chrony ~]# vim /etc/chrony.conf

server ntp.aliyun.com iburst
allow 172.16.1.0/24
local stratum 10

重启Chrony服务:

[root@chrony ~]# systemctl restart chronyd
2.2.3 Chrony客户端
  1. 客户端使用ntpdatechronyc命令手动同步

    • ntpdate

      [root@chrony ~]# yum install ntpdate -y
      [root@chrony ~]# ntpdate 172.16.1.62
      
    • chronyc

      [root@chrony ~]# chronyc -a makestep
      200 OK
      
  2. 客户端使用Chrony守护进程进行自动化时间同步

    [root@chrony ~]# yum install chrony -y
    [root@chrony ~]# vim /etc/chrony.conf
    server 172.16.1.62 iburst
    [root@chrony ~]# systemctl restart chronyd
    
  3. 查看时间同步是否正常

    210 Number of sources = 1
    MS Name/IP address         Stratum Poll Reach LastRx Last sample 
    ============================================================================
    ^* mypc.             11   6     7     1   -595ns[  +59us] +/-  162us
    
    
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
配置chrony时间同步,你可以按照以下步骤进行操作: 1. 安装chrony:使用适合你的Linux发行版的包管理器,如apt、yum或dnf,安装chrony软件包。 2. 配置chrony:编辑chrony配置文件,通常位于`/etc/chrony.conf`。你可以使用任何文本编辑器打开该文件。 3. 添加时间服务器:在配置文件中找到或添加server行,指定要同步的时间服务器。例如: ``` server time1.example.com server time2.example.com ``` 你可以根据需要添加多个时间服务器,并按优先级排序。 4. 配置本地时钟源:如果你的系统有本地硬件时钟源,可以添加本地时钟源的配置。例如: ``` refclock PPS /dev/pps0 lock GPS ``` 这是一个使用GPS接收器提供的脉冲信号同步本地时钟的示例。 5. 配置访问控制:根据需要,可以在配置文件中添加访问控制规则,以限制哪些主机可以访问chrony服务。例如: ``` allow 192.168.0.0/24 ``` 这将允许192.168.0.0/24网段内的主机访问chrony服务。 6. 保存并关闭文件:完成配置后,保存并关闭配置文件。 7. 启动chrony服务:启动或重启chrony服务,以使配置生效。使用适合你的Linux发行版的命令,如systemctl或service。例如: ``` sudo systemctl start chronyd ``` 8. 验证时间同步:使用`chronyc sources`命令检查时间服务器的同步状态。例如: ``` chronyc sources ``` 该命令将显示已配置的时间服务器和它们的同步状态。 通过按照上述步骤进行配置,你可以使用chrony实现时间同步。请确保你的系统能够访问指定的时间服务器,并且网络连接正常。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值