ntp VS chrony
对比
NTP(Network Time Protocol)和Chrony都是用于同步计算机时钟的协议,它们都可以在计算机集群中实现时间同步。但是,它们有一些不同之处:
-
算法:NTP使用一种复杂的算法来同步时钟,而Chrony使用一种叫做"temporal median"的算法,该算法可以在更短的时间内同步时钟。
-
精度:Chrony通常比NTP更准确,尤其是在网络延迟较高的情况下。Chrony可以在网络延迟较高的情况下保持更好的同步精度。
-
配置:Chrony的配置比NTP简单,而且可以自动适应网络环境。另外,Chrony可以在没有网络连接的情况下使用本地时钟源进行同步。
-
安全性:NTP在安全性方面存在一些问题,因为它没有内置的身份验证机制。而Chrony支持加密和身份验证机制,可以提供更好的安全性。
综上所述,Chrony通常比NTP更适合在计算机集群中使用,因为它可以提供更好的同步精度和安全性,并且配置更简单。
举例
这是一个chrony的配置文件示例,下面是每一行的解释:
server 127.127.1.0 iburst
: 使用本地时钟作为NTP服务器的源,并使用iburst选项尝试快速同步时钟。server x.x.x.x iburst
: 使用指定的IP地址( x.x.x.x)作为NTP服务器的源,并使用iburst选项尝试快速同步时钟。driftfile /var/lib/chrony/drift
: 定义存储本地时钟漂移率的文件路径。makestep 1.0 3
: 如果时钟偏移超过3秒,chrony将采取一次1秒的时间步进来快速同步时钟。rtcsync
: 启用硬件时钟同步。allow all
: 允许所有客户端连接到这个chrony服务器。local stratum 5 orphan
: 定义本地时钟为stratum 5级别(假设本地时钟不太准确),或者作为孤儿时钟。logdir /var/log/chrony
: 定义chrony日志的存储路径。
需要注意的是,chrony的配置文件中还可以包含其他选项和指令,这只是一个示例。通常,配置文件应该根据特定的需求进行修改。
chronyc sources -v
“chronyc sources -v” 命令用于显示 chrony 正在从哪些来源获取时间同步的详细信息。该命令的输出包括以下信息:
- 来源的 IP 地址或主机名
- 来源的参考 ID(通常是源的 IP 地址)
- 来源的层级(距离参考时钟的跳数)
- 来源的类型(例如,NTP、PTP 等)
- 上次轮询源的时间
- 来源的延迟和偏移量,它们表示本地时钟和来源时钟之间的时间差异。
以下是该命令的示例输出:
210 Number of sources = 4MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* time.nist.gov 1 6 377 195 -1049us[-1099us] +/- 12ms
^- time1.google.com 1 6 377 197 -1232us[-1282us] +/- 24ms
^- time2.google.com 1 6 377 197 -1099us[-1149us] +/- 21ms
^- time3.google.com 1 6 377 196 -1232us[-1282us] +/- 22ms
在此示例中,chrony 与 time.nist.gov 和三个 Google NTP 服务器同步。 “^ *” 符号表示 time.nist.gov 是当前参考源,延迟和偏移值在可接受范围内。在 “chronyc sources -v” 命令的输出中,“^-” 符号表示该源不是当前的参考源,但仍然是可用的时间同步源。这些源可能在层次结构上比当前参考源更远,或者它们的延迟和偏移值可能比当前参考源更大。在这个例子中,time1.google.com、time2.google.com 和 time3.google.com 都是可用的时间同步源,但当前的参考源是 time.nist.gov。