Chrony时间同步

举报
子都爱学习 发表于 2022/03/10 14:05:09 2022/03/10
【摘要】 1 .时间同步基本概念1.1什么是时间同步时间同步就是通过对本地时钟的某些操作,达到为分布式系统提供一个统一时间的过程。 在集中式系统中,由于所有进程都可以从系统唯一的全局时钟获取时间,因此系统内任何两 个事件都有着明确的先后关系。而在分布式系统中,由于物理上的分散性,系统无法为彼此 间相互独立的模块提供一个统一的全局时钟,而由各个进程各自维护它们的本地时钟。 由于这些本地时钟的计时速率、运...

1 .时间同步基本概念

1.1什么是时间同步

时间同步就是通过对本地时钟的某些操作,达到为分布式系统提供一个统一时间的过程。 在集中式系统中,由于所有进程都可以从系统唯一的全局时钟获取时间,因此系统内任何两 个事件都有着明确的先后关系。而在分布式系统中,由于物理上的分散性,系统无法为彼此 间相互独立的模块提供一个统一的全局时钟,而由各个进程各自维护它们的本地时钟。 由于这些本地时钟的计时速率、运行环境不一致性,因此所有本地时钟在某一时刻都被校 准,一段时间后,这些本地时钟也会出现不一致。为了这些本地时钟再次达到相同的时间 值,所以需要进行时间同步的操作;

1.2为什么需要时间同步

在运维工作的场景当中,存在着众多主机协同完成不同的任务;比如LNMP架构,也是可以 分别部署在三台不同的主机上;那么这三台主机在工作时,由于分别位于不同的主机之上, 它们需要根据文件或者数据流所生成的时间,来决定我们响应给客户端的结果该如何进行展 示;此时就需要同一网络中的主机时间一致;

但这个时间一致并不是说一定得是正确的,如果现在当前时间是下午2点,但是这三台主机 的时间精确一致是昨天凌晨5点,这也没有什么问题;

但对于有些场景中时间不正确也不行,比如https应用;客户端与服务端通讯时,如果客户 端时间是准确的,而服务端时间来自昨天,或者来自未来的响应,则会提示存在风险,而不予接受;

1.3时间同步是如何完成

    NTP

    • 逻辑:让时间校对像手表一样波动的快一点,而不是像date命令直接跳跃过去:其他 服务器一分钟60s,ntp-分钟30s,来实现时间的校对;
    • 问题:为了赶上慢的24小时,可能需要花费非常长的时间来进行校对;

    Chrony

    • 逻辑:ChronyNTP的替代品,能更精确的时间和更快的速度同步时钟,传ntp需要几小时,而chrony仅需要数秒种或数毫秒即可完成时间同步;(调整时间 的速度就像波动表针的速度一样快)

    2.Chrony时间服务

    • Chrony 介绍

    chrony是一个ntp协议的实现程序,既可以当做服务端,也可以充当客户端;它专为间 歇性互联网连接的系统而设计,当然也能良好应用于持久互联网连接的环境;

    • chrony有三个时间参考:硬件时钟、实时时钟以及手动同步;
    • chronyNTP的替代品,能更精确的时间和更快的速度同步时钟;
    •  chrony占用系统资源少,只有被唤起时才占用少部分CPU , chrony兼容ntpdate
    • chrony允许本地网络其他主机像本地进行时间同步;

    Chrony

    。更快的同步,最大程度减少了时间和频率误差,对于并非全天运行的虚拟计算机非常有

    。能够更好地响应时钟频率的快速变化,对于不稳定的虚拟机或导致时钟频率发生变化的 技术有用

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

    。在应对临时非对称延迟时(例如,在大规模下载造成链接饱和时)提供了更好的稳定性

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

    2.3 Chrony时间同步

    chory.png

    2.3.1 Chrony 安装

    yum install chrony -y
    • 主配置文件:/etc/chrony.conf
    • 客户端程序:/usr/bin/chronyc
    • 服务端程序:/usr/sbin/chronyd

    Chrony服务端

    默认配置

    使用同步的远程时钟源,论上可以同步无限个

    cat /etc/chrony.conf
    # Use public servers from the pool.ntp.org project.
    # Please consider joining the pool (http://www.pool.ntp.org/join.html).
    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 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
    
    # 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

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

    vim /etc/chrony.conf
    
    pool ntp.aliyun.com iburst
    allow 172.16.1.0/24
    local stratum 10

    2.重启Chrony服务

    systemctl restart chronyd

    2.3.3 Chrony 客户端

    1.客户端使用ntpdatechronyc命令的方式进行手动同步

    2.png

    2.客户端使用chrony守护进程方式进行自动同步

    yum install chrony -y
    vim /etc/chrony.conf
    
    pool 192.168.159.129 iburst

    查看时间同步是否正常

    [root@server1 ~]# chronyc sources

    3.png

    【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
    • 点赞
    • 收藏
    • 关注作者

    评论(0

    0/1000
    抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。