zoukankan      html  css  js  c++  java
  • Linux 时间同步 05 chrony时间同步

    Linux 时间同步 05 chrony时间同步

    实现NTP协议的的自由软件。可使系统时钟与NTP服务器,参考时钟(例如GPS接收器)以及使用手表和键盘的手动输入进行同步。还可以作为NTPv4(RFC 5905)服务器和对等体运行,为网络中的计算机提供时间服务。设计用于在各种条件下良好运行,包括间歇性和高度拥挤的网络连接,温度变化(计算机时钟对温度敏感),以及不能连续运行或在虚拟机上运行的系统。通过Internet同步的两台机器之间的典型精度在几毫秒之内,在LAN上,精度通常为几十微秒。利用硬件时间戳或硬件参考时钟,可实现亚微秒的精度。

    chrony 的优势:

    • 更快的同步只需要数分钟而非数小时时间,从而最大程度减少了时间和频率误差,对于并非全天 24 小时运行的虚拟计算机而言非常有用。
    • 能够更好地响应时钟频率的快速变化,对于具备不稳定时钟的虚拟机或导致时钟频率发生变化的节能技术而言非常有用。
    • 在初始同步后,它不会停止时钟,以防对需要系统时间保持单调的应用程序造成影响。
    • 在应对临时非对称延迟时(例如,在大规模下载造成链接饱和时)提供了更好的稳定性。
    • 无需对服务器进行定期轮询,因此具备间歇性网络连接的系统仍然可以快速同步时钟。

    chrony官网:https://chrony.tuxfamily.org
    chrony官方文档:https://chrony.tuxfamily.org/documentation.html

    chrony包介绍

    两个主要程序:

    • chronyd:后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。
    • chronyc:命令行用户工具,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可在一台不同的远程计算机上工作。

    服务unit文件: /usr/lib/systemd/system/chronyd.service

    监听端口: 323/udp,123/udp

    配置文件: /etc/chrony.conf

    安装chrony

    yum -y install chrony
    

    配置与外部时间服务器进行时间同步的客户端主机

    1、修改chronyd配置文件 /etc/chrony.conf

    server 210.72.145.44 prefer      # 这是中国国家授时中心的IP
    server ntp1.aliyun.com iburst    # iburst代表快速同步时间
    server ntp2.aliyun.com iburst 
    
    # allow 172.16.1.0/24            # 允许此IP地址段访问
    allow 0.0.0.0/0                  # 允许所有主机访问
    local stratum 10                 # 本地局域网同步时间服务器(第十层的局域网主机),打开注释即可。
    

    2、启动chronyd服务,并设置为开机启动。

    systemctl start chronyd
    systemctl enable chronyd
    

    配置其他客户端与以上客户端主机时间同步

    其他客户端只需要与代表的客户端(即与服务器端时间同步的客户端主机)进行同步即可(即使用上面客户端IP地址:172.16.1.41进行时间同步)。

    1、修改chronyd配置文件 /etc/chrony.conf

    server 172.16.1.41 iburst    # 删掉其他的,添加要同步时间的客户端主机ip
    

    2、启动chronyd服务,并设置为开机启动。

    systemctl start chronyd
    systemctl enable chronyd
    

    chronyc命令

    chronyc -a makestep      立即手工同步
            accheck          检查是否对特定主机可访问当前服务器
            activity         显示有多少NTP源在线/离线
            sources [-v]     显示当前时间源的同步信息
            sourcestats [-v] 显示当前时间源的同步统计信息
            add server       手动添加一台新的NTP服务器
            clients          报告已访问本服务器的客户端列表
            delete           手动移除NTP服务器或对等服务器
            settime          手动设置守护进程时间
            tracking         显示系统时间信息
    

    /etc/chrony.conf 配置详解

    • server - 可以多次用于添加时钟服务器,必须以"server "格式使用。一般而言,你想添加多少服务器,就可以添加多少服务器
      • iburst 选项当服务器可达时,发送一个八个数据包而不是通常的一个数据包。 包间隔通常为2秒,可加快初始同步速度
    • driftfile - 根据实际时间计算出计算机增减时间的比率,将它记录到一个文件中,会在重启后为系统时钟作出补偿,甚至可能的话,会从时钟服务器获得较好的估值
    • rtcsync - 启用内核模式,系统时间每11分钟会拷贝到实时时钟(RTC)
    • allow / deny - 指定一台主机、子网,或者网络以允许或拒绝访问本服务器
    • cmdallow / cmddeny - 可以指定哪台主机可以通过chronyd使用控制命令
    • bindcmdaddress - 允许chronyd监听哪个接口来接收由chronyc执行的命令
    • makestep - 通常chronyd将根据需求通过减慢或加速时钟,使得系统逐步纠正所有时间偏差。在某些特定情况下,系统时钟可能会漂移过快,导致该调整过程消耗很长的时间来纠正系统时钟。该指令强制chronyd在调整期大于某个阀值时调整系统时钟
    • local stratum 10 - 即使server指令中时间服务器不可用,也允许将本地时间作为标准时间授时给其它客户端
  • 相关阅读:
    Android 使用html做UI的方法js与java的相互调用
    WebRequest之HttpWebRequest实现服务器上文件的下载(一)
    使用Json比用string返回数据更友好,也更面向对象一些
    DES加密与解密在GET请求时解密失败的问题解决(终级)
    中大型系统架构组合之EF4.1+ASP.NET MVC+JQuery
    说说标准服务器架构(WWW+Image/CSS/JS+File+DB)
    inline内联函数和宏的区别
    [C语言]mac下Des CBC加密
    x264和FFMPEG 编译后遇到的一些问题:UINT64_C,
    关于多线程的那些事
  • 原文地址:https://www.cnblogs.com/backups/p/linux_chrony.html
Copyright © 2011-2022 走看看