首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >时间和系统-时间同步-作为NTP客户端的区别和用例是什么?

时间和系统-时间同步-作为NTP客户端的区别和用例是什么?
EN

Unix & Linux用户
提问于 2019-03-04 23:46:03
回答 3查看 21K关注 0票数 32

不知何故,但不是完全建立在较老的问题"ntpd与d-timesyncd-如何实现可靠的NTP同步?“上,我想问一下在NTP客户机方面,chrony和systemd之间的区别。

我知道systemd-timesyncd或多或少是一个最小的ntp客户端实现,而more是一个成熟的NTP守护进程解决方案,恰好包括一个NTP客户端。

ubuntu 仿生海狸发行说明声明如下:

对于简单的时间同步需要,基本系统已经附带了。只需要作为时间服务器,或者如果您想要广告中的更准确和有效的同步。

我喜欢使用最小的预装工具来完成工作的想法,而且我非常肯定systemd会为我的用例完成工作,但我还是很好奇:

  • 在准确性方面,两者之间的真实世界有什么不同?
  • 效率有什么不同?
  • 什么是“非简单”的时间同步需要,也就是用例作为NTP客户端?
EN

回答 3

Unix & Linux用户

回答已采纳

发布于 2019-03-05 00:27:29

在systemd新闻文件中宣布systemd-timesyncd很好地解释了这个工具与时间和类似工具的区别。(强调地雷):

添加了一个新的“systemd”守护进程,用于在整个网络中同步系统时钟。它实现了一个SNTP客户机。与NTP实现(如chrony或NTP参考服务器)不同的是,这只实现了客户端,而不涉及整个NTP复杂性,只关注从一个远程服务器查询时间和将本地时钟同步到它。除非您打算向联网客户端提供NTP服务,或者希望连接到本地硬件时钟,否则这个简单的NTP客户端应该非常适合大多数安装。...

对于服务器机群中的大多数主机来说,此设置是一个常见的用例。它们通常会从本地NTP服务器获得同步,而本地NTP服务器本身也会从多个源(可能包括硬件)获得同步。systemd-timesyncd试图为该通用用例提供一个易于使用的解决方案。

试图解决你的具体问题:

在准确性方面,两者之间的真实世界有什么不同?

我相信,通过从多个源获取同步数据,您可以获得更高的精度,这对于systemd-timesyncd来说不是一个支持的用例。但是,当您使用它从连接到可靠内部网络的中央NTP服务器获得同步数据时,使用多个源并不是很相关,而且您可以从单个源获得很好的精度。

如果您在本地网络和同一数据中心中从受信任的服务器同步服务器,则NTP和SNTP之间的准确性几乎不存在差异。NTP可以考虑RTT并进行时间分配,但当RTT确实很小时,这并不是什么好处,这是快速本地网络和附近机器的情况。如果您可以信任所使用的源,您也不需要多个源。

效率有什么不同?

从单个源获得同步比从多个源获得同步要简单得多,因为您不必决定哪些源比其他源更好,并且可能需要组合来自多个来源的信息。算法要简单得多,对于简单的情况,需要更少的CPU负载。

什么是“非简单”的时间同步需要,也就是用例作为NTP客户端?

这在上面的引号中得到了解决,但在任何情况下,这些都是没有包含在systemd-timesyncd中的慢性用例:

  • 运行NTP服务器(以便其他主机可以使用此主机作为同步源);
  • 从多个来源获取NTP同步信息(这对于主机从Internet上的公共服务器获取该信息非常重要);以及
  • 从本地时钟中获取同步信息,这通常涉及到诸如GPS设备这样的专用硬件,这些硬件可以从卫星上获得精确的时间信息。

这些用例需要时间或ntpd或类似的。

票数 25
EN

Unix & Linux用户

发布于 2019-03-05 00:58:27

正如另一个答案正确指出的那样,chrony实现了NTP和systemd-timesyncd SNTP。

从时间服务客户端的角度来看:

SNTP是一个简单得多的协议来实现;

NTP允许一步一步地按期递增/修正.NTP的一个主要优点是它还考虑到了答案的RTT,以获得更准确的时间。

来自https://www.meinbergglobal.com/english/faq/faq_37.htm

虽然功能齐全的NTP服务器或客户端达到了非常高的精度水平,并通过使用不同的数学和统计方法以及平滑的时钟速度调整尽可能避免了突然的时间步数,但SNTP只能推荐给简单的应用程序,在这些应用中,对精度和可靠性的要求并不太高。通过忽略漂移值和使用简化的系统时钟调整方法(通常是简单的时间步进),SNTP与完全NTP实现相比只实现了低质量的时间同步。SNTP采用一种简单得多的方法。消除了NTP算法的许多复杂性。许多SNTP客户端没有倾斜时间,而是分步骤执行时间。对于许多需要简单时间戳的应用程序来说,这是很好的。此外,SNTP缺乏监视和过滤多个NTP服务器的能力。通常使用简单的循环方法,其中如果一个服务器失败,则使用列表中的下一个服务器。

来自https://www.masterclock.com/company/masterclock-inc-blog/ntp-vs-sntp

NTP比SNTP精确得多,这使得它在大多数企业应用程序中成为事实上的赢家。另一方面,SNTP的简单性使得它更适合于IP相机、DVR和一些网络交换机。这些类型的硬件缺乏处理更复杂协议的处理资源,但是随着连接的设备变得越来越强大,这可能会发生变化。SNTP的一个主要缺点是无法通过从多个源检索时间来使其更精确,就像默认情况下网络时间协议所做的那样。

我还可以看到,SNTP实现带来了比NTP更多的问题,这就是虚拟化,因为虚拟机管理程序和NTP守护进程都试图更改VM时间。特别是在他们没有及时同意一些错误配置导致他们都很活跃的情况下,这可能会造成很大的问题。(虽然有能力的系统管理员只会保持一种与时间同步的方法,但由于配置错误,它们可能都处于活动状态)。

当不使用systemd-timesyncd时,P.S. systemd不应该是一种建议的替代方案。

票数 17
EN

Unix & Linux用户

发布于 2019-04-15 04:03:19

chrony不是分叉形式的ntpd,但它是从零开始实现的。它实现了完全NTPv4协议(RFC5905)的客户端模式和服务器模式。在企业级用户方面,我们看到了一种趋势,即从传统的ntpd转向chrony,比如Red (RHEL 7以后)和SuSE (从SLES 15开始)。

systemd-timesyncd只实现SNTP协议(RFC4330)客户端模式。因此,复杂的用例不包括在systemd-timesyncd中。例如,SNTP无法通过从多个源检索时间来使其更准确,就像默认情况下NTP所做的那样。因此,systemd-timesyncd不能像chrony那样提供高精度的时间。

票数 4
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/504381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档