如何安装和配置 Chrony

[ad_1]

网络时间协议

在服务器上保持正确的时间是必不可少的。 在处理需要按特定顺序处理的金融交易或其他重要功能时尤其如此。 使用网络时间协议(或 NTP),计算机可以将其内部时钟时间与互联网标准参考时钟同步。 本质上,NTP 是服务器的层次结构。 服务器的层数越高,计时越准确,服务器的层数越低,准确度和时间稳定性越低。 Stratus 由与初始参考时钟的距离定义。

  • Stratum 0 由原子钟、GPS 卫星和“国家时间和频率传输”无线电接收器组成,这些接收器经过调谐以接收原子钟广播的信号。 它们不直接连接到任何设备以提供时间同步。
  • Stratum 1 是主服务器,直接连接到 Stratum 0 服务器并将时间分配给 Stratum 2 及以下服务器。 一组 Stratum 0 和 Stratum 1 服务器被视为 NTP 服务器。
  • 一组 Stratum 2 级别的服务器被认为是 NTP Peers,可以相互共享,也可以与下面的 Stratum 共享。 Stratum 2 服务器是公开的,任何人都可以连接,并且它们为层 3 服务器提供时间,以此类推。
  • Stratum 3 服务器及以下,一直到 Stratum 15 服务器,根据需要将时间分配到它们下面的级别。 层 15 是最低层。

时空

要从远程 NTP 服务器获取正确时间,本地服务器需要使用 NTP 客户端。 Chrony 就是这样的客户之一。 Chrony 是用于此目的的绝佳选择,因为它旨在在各种条件下正常运行,例如间歇性和/或严重拥塞的网络连接或其他不利条件。 Chrony 在启动时将系统内部时钟时间与更高的 Stratum NTP 服务器、参考时钟或计算机的实时时钟同步。 它也可以通过使用手表和键盘手动与输入同步。 这种同步方法不是最准确的,因此不鼓励使用。

通常,LAN 上两台同步机器之间的精度在几毫秒内。 Chrony 由两个主要系统组成,chronyc 和 chronyd。

  • Chronyc 是一个命令行界面,用于监控 chronyd 的性能并在必要时进行更改。
  • Chronyd 是守护进程,它启动和启用 chrony NTP 服务,并在后台运行时监视时间服务器的时间和状态。

chronyd 监控的时间 NTP 服务器在 chrony.conf 文件中定义。 Chronyd 系统的主要功能是从主要 NTP 服务器源之一获取正确的时间。 如果服务器时间不准确,chronyd 会相应地更改系统时钟。

安装和启用 Chrony

Chrony 可以使用以下命令安装(取决于操作系统)。

在 Centos/RHEL 服务器上,可以使用 yum 或 dnf 安装 Chrony。

[[email protected] ~]# yum install chrony
[[email protected] ~]# dnf install chrony

在基于 Debian/Ubuntu 的系统上,可以使用 apt 安装 Chrony。

[[email protected] ~]# apt install chrony

安装 chrony 后,我们需要启动并启用守护程序,以便在服务器启动时自动启动。 完成此操作的命令如下。

[[email protected] ~]# systemctl start chronyd
[[email protected] ~]# systemctl enable chronyd

为了检查守护进程的状态,我们可以使用 systemctl 命令。

[[email protected] ~]# systemctl status chronyd

顺便说一句,Chrony 本身使用 Fedora NTP 池,而 CentOS 和 RHEL 有自己独特的 NTP 服务器池。

配置文件

Chrony 的配置文件位于 /etc/chrony.conf 文件中,安装的默认文件不需要任何修改,以便 Chrony 作为客户端正常工作。 这是 RedHat chrony.conf 文件的典型示例

# Use public servers from the pool.ntp.org project.

# Please consider joining the pool (https://www.pool.ntp.org/join.html).
pool 2.fedora.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).

# 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

配置文件中指定的第一个指令是计算机将用于同步的 NTP 服务器池列表。 在 CentOS 和 RHEL 系统上,默认列表将包含以下服务器:

  • 服务器 0.centos.pool.ntp.org iburst
  • 服务器 1.centos.pool.ntp.org iburst
  • 服务器 2.centos.pool.ntp.org iburst
  • 服务器 3.centos.pool.ntp.org iburst

除了服务器列表之外,配置文件还包含一些其他信息,例如 makestep、driftfile、logdir、keyfile 等。

验证时间同步

可以使用以下命令手动与 NTP 服务器同步时间:

[[email protected] ~]# chronyd -q ‘server {ntp_server_name} iburst’

以上面提到的NTP服务器池列表为例,与指定NTP服务器同步时间的命令如下所示:

[[email protected] ~]# chronyd -q 'server 0.centos.pool.ntp.org iburst'

我们还可以通过运行以下命令立即步进或重新启动系统时钟,同时忽略当前正在运行的应用程序和调整:

[[email protected] ~]# chronyc -a makestep

为了验证服务器的时间是否使用 Chrony 同步,我们可以使用命令 chronyc tracking。 此命令的输出将显示信息,如下面的代码所示。

[email protected] [~]# chronyc tracking
Reference ID    : 32CDF416 (ntp3.doctor.com)
Stratum         : 3
Ref time (UTC)  : Fri Apr 03 18:51:09 2020
System time     : 0.001277962 seconds fast of NTP time
Last offset     : +0.001406281 seconds
RMS offset      : 0.001406281 seconds
Frequency       : 18.132 ppm fast
Residual freq   : +0.000 ppm
Skew            : 25.616 ppm
Root delay      : 0.024071140 seconds
Root dispersion : 0.020099793 seconds
Update interval : 65.6 seconds
Leap status     : Normal
[email protected] [~]#

作为参考,这里是对上述值及其含义的细分。

  • 参考编号 该值表示系统时间当前同步到的NTP服务器的名称和ID。
  • 地层 指定服务器级别到 NTP 层次结构的跃点数。
  • 参考时间 是处理参考源的最后一次测量时每个 UTC 的时间。
  • 系统时间 表示来自同步服务器的系统时钟的延迟量。
  • 上次偏移 是自上次时钟更新以来的估计时间偏移。
  • 均方根偏移 表示时间偏移的长期平均值
  • 频率 是如果 chronyd 没有更正服务器时钟将关闭的值。 该值以 ppm(百万分之几)为单位
  • 剩余频率 表示对下一级 Stratum 源与当前使用的频率之间的差异的测量。
  • 歪斜 是频率误差的估计方差,以百万分之一为单位
  • 根延迟 是到本地服务器正在同步的更高级别层计算机的网络路径内的总延迟时间。
  • 根分散 是计算从根延迟和根色散导出的值的等式的一部分,如跟踪命令报告的那样
  • 更新间隔 是前两次时钟更新之间的距离。
  • 飞跃状态 是可以具有以下设置之一的值
    • 普通的
    • 插入第二个
    • 删除第二个
    • 不同步。

“chronyc tracking”命令中的“System Time”是chronyd对当前真实时间的估计与系统时间之间的差值。 这种差异与根延迟和色散一起为您提供了根据 UTC 估计的最大误差 NTP RFC 信息.

delta 和 epsilon 统计数据在每个层级从参考时钟累积,以产生:

root delay (DELTA) and root dispersion (EPSILON) statistics or abs(System_time) + Root_delay / 2 + Root_dispersion <= target

为了获取有关 chronyd 正在使用的当前时间源的信息,我们可以运行命令 chronyc sources 并将提供我们在下面的代码中看到的示例输出。

[email protected] [~]# chronyc sources
210 Number of sources = 4
MS Name/IP address         Stratum Poll Reach LastRx Last sample
================================================================
^+ 134.209.141.224     2 6 377 307 +7645us [+7686us] +/- 72ms
^* ntp3.doctor.com     2 7 377 50  +1520us [+1493us] +/- 31ms
^+ anaheim.capsaic.in  2 7 377 114 +293us  [+256us]  +/- 62ms
^+ mis.wci.com         2 7 377 113 -11ms   [-11ms]   +/- 77ms
[email protected] [~]#

NTP 服务器旁边的符号表示以下信息。

  • 这些是 chronyd 当前同步到的选定源 (+)
  • 这些是与所选来源组合的可接受来源 (-)

这些是排除的可接受来源

此外,我们可以通过运行命令 chronyc sourcestats 列出有关漂移速度的信息以及 chronyd 使用的每个源的偏移估计。

结论

总的来说,chrony 是我们可以在我们的服务器上实施的优秀计时资源。 从上面的信息可以看出,我们对网络时间协议(第4版)以及所包含的协议和算法规范的深入研究程度,让我们在几毫秒内达到了基于基态超精细的原子钟我们目前的计时结构建立在铯 133 原子的跃迁频率上。

学到更多!

如果您有任何问题,我们的 3 级系统管理员随时待命,协助您设置此软件。 只需拨打我们的电话 800.580.4985,或打开一个 聊天

或与我们联系,与我们知识渊博的 Linux 技术人员或经验丰富的托管顾问交谈,以了解您现在如何利用这项技术!

[ad_2]

Related Posts