失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Linux服务器时间同步chrony详解+案例

Linux服务器时间同步chrony详解+案例

时间:2022-10-04 22:36:50

相关推荐

Linux服务器时间同步chrony详解+案例

前言

在实际项目部署中,时间同步很重要,必须确保服务器集群时间一致,不然会导致很多问题出现。

NTP(Network Time Protocol)网络时间协议基于UDP,用于网络时间同步的协议,使网络中的计算机时钟同步到UTC(世界统一时间),再配合各个时区的偏移调整就能实现精准同步对时功能。在Linux系统中,该NTP协议由运行在用户空间中的守护程序实现。

用户空间守护程序更新内核中运行的系统时钟。系统时钟可以通过使用各种时钟源来节省时间。通常,使用时间戳计数器(TSC)。TSC是一个CPU寄存器,用于计数自上次复位以来的周期数。它非常快,具有高分辨率并且没有中断。

chrony简介

Chrony是网络时间协议(NTP)的实现。您可以使用Chrony:

使系统时钟与NTP服务器同步,使系统时钟与参考时钟(例如GPS接收器)同步,要将系统时钟与手动时间输入同步,作为NTPv4(RFC 5905)服务器或对等方以向网络中的其他计算机提供时间服务。Chrony在各种条件下都表现良好,包括间歇性网络连接,网络严重拥塞,温度变化(普通计算机时钟对温度敏感)以及无法连续运行或在虚拟机上运行的系统。

通过Internet同步的两台计算机之间的典型精度在几毫秒内,而在LAN上的计算机则在几十微秒内。硬件时间戳或硬件参考时钟可以提高同步到亚微秒级别的两台计算机之间的准确性。

Chrony包含chronyd一个在用户空间中运行的守护程序,以及chronyc一个命令行程序,可用于监视其性能chronyd并在运行时更改各种操作参数。chronyd可以监测和由命令行实用程序来控制chronyc。该实用程序提供了一个命令提示符,该命令提示符允许输入许多命令来查询其当前状态chronyd并对其配置进行更改。默认情况下,chronyd仅接受chronyc本地实例的命令,但可以将其配置为也接受来自远程主机的监视命令。远程访问应受到限制。

安装

# Cneos7默认已安装,chrony守护程序 的默认位置是/usr/sbin/chronyd。命令行实用程序将安装到/usr/bin/chronycyum install chrony# 启动命令systemctl start chronydsystemctl status chronydsystemctl enable chronyd

配置文件

/etc/chrony.conf

# Use public servers from the project.# Please consider joining the pool (http://www./join.html).# 配置NTP服务器server 0.centos. iburstserver 1.centos. iburstserver 2.centos. iburstserver 3.centos. iburst# Record the rate at which the system clock gains/losses time.# 记录系统时钟获得/丢失时间的速率至drift文件中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.# 默认情况下,chronyd通过减慢或加快时钟速度来逐渐调整时钟。如果时钟与实际时间偏差太大,则需要很长时间才能纠正错误。这种方法叫做步进时钟(时间跳变)。# 此处表示如果调整值大于1000秒,则这将使系统时钟步进,但仅在前十个时钟更新中。makestep 1000 10# Enable kernel synchronization of the real-time clock (RTC).# 启用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.# 只允许192.168.网段的客户端进行时间同步#allow 192.168.0.0/16# Serve time even if not synchronized to a time source.# NTP服务器不可用时,采用本地时间作为同步标准#local stratum 10# Specify file containing keys for NTP authentication.# 指定包含NTP验证密钥的文件#keyfile /etc/chrony.keys# Specify directory for log files.# 指定日志文件的目录logdir /var/log/chrony# Select which information is logged.# 将对系统增益或损耗率的估计值以及所做的任何转换记录的更改记录到名为的文件中tracking.log。#log measurements statistics tracking# 其他未在默认配置文件的配置项# 在第一次时钟更新之后,chronyd将检查每次时钟更新的偏移量,它将忽略两次大于1000秒的调整,并退出另一个调整。maxchange 1000 1 2# 该rtcfile指令定义中的文件名chronyd可以保存跟踪系统的实时时钟(RTC)的精度相关的参数。rtcfile /var/lib/chrony/rtc

相关操作

检查时间是否同步

chronyc tracking

检查时间来源

chronyc sources

检查时间来源统计,-v可以指定 可选参数,表示冗长。在这种情况下,将显示额外的标题行,以提醒各列的含义。

chronyc sourcestats

手动调整系统时钟,要立即步进系统时钟,以通过回转来绕过正在进行的任何调整,如果使用该rtcfile指令,则不应手动调整实时时钟。随机调整会干扰chrony需要测量实时时钟漂移的速率。

chronyc makestep

案例

需求:搭建一台NTP服务器,同步阿里云时间,当阿里云可不用时,使用本地时间,其他服务器同步这台服务器上的时间,确保时间一致。

搭建服务端

# Centos7.6已默认安装,查看状态systemctl status chronyd# 注释其他server开头的配置,添加阿里云NTP公共时间同步服务器vim /etc/chrony.conf添加内容server iburstallow 0.0.0.0/0local stratum 10# 重启chronydsystemctl restart chronyd# 查看时间同步源,查看时间同步进度chronyc sources –v

配置客户端

# Centos7.6已默认安装,查看状态systemctl status chronyd# # 注释其他server开头的配置,添加本地NTP公共时间同步服务器vim /etc/chrony.confserver 192.168.58.201 iburst# 重启chronydsystemctl restart chronyd# 查看时间同步源,查看时间同步进度chronyc sources –v

如果觉得《Linux服务器时间同步chrony详解+案例》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。