chronyとsystemd-timesyncd – NTPクライアントの違いとユースケースは何ですか?

chronyとsystemd-timesyncd – NTPクライアントの違いとユースケースは何ですか?

どういうわけか、しかし、正確に古い質問に基づいて構築することはありません。「ntpdとsystemd-timesyncd - 安定したNTP同期を達成するには?」、NTPの観点からchronyとsystemd-timesyncdの違いについて問い合わせたいと思います。顧客

systemd-timesyncdは最小限のntpクライアント実装ですが、chronyはNTPクライアントを含む完全なNTPデーモンソリューションであることがわかります。

Ubuntuバイオニックビーバー修正情報記録以下を述べてください。

単純な時間同期が必要な場合、基本システムにはすでに systemd-timesyncd が付属しています。 Chronyは、タイムサーバーとして機能する場合、またはより正確で効率的な同期が必要な場合にのみ必要です。

私はあらかじめインストールされている最小限のツールを使って何かをするのが好きです。

  • 2つの間の実際の精度の違いは何ですか?
  • 効率の違いは何ですか?
  • 「簡単ではない」時間同期要件、NTPクライアントとしてchronyのユースケースは何ですか?

答え1

これsystemd NEWSファイルのsystemd-timesyncdに関するお知らせChrony と同様のツールと比較して、このツールの違いの良い説明です。 (強調):

新しいもの「システム時刻同期」ネットワークのシステムクロックを同期するデーモンが追加されました。それSNTPクライアント。 NTPの実装とは対照的に、たとえば次のようになります。慢性病患者または、クライアントだけを実装し、全体のNTP複雑性に関連しないNTP参照サーバー、リモートサーバーで時間を照会し、ローカルクロックを同期することに焦点を当てます。。ネットワーククライアントにNTPサービスを提供する予定がない場合、またはローカルハードウェアクロックに接続したい場合を除き、この単純なNTPクライアントはほとんどのインストールに適しています。 [...]

この設定は、サーバーファーム内のほとんどのホストの一般的なユースケースです。通常、ハードウェアを含む可能性のある複数のソースから独自に同期されるローカルNTPサーバーで同期されます。 systemd-timesyncd は、これらの一般的なユースケースに対して使いやすいソリューションを提供しようとします。


特定の問題を解決してください。

2つの間の実際の精度の違いは何ですか?

複数のソースから同期データをインポートすると、より良い精度が得られると思います。これは、systemd-timesyncdで特にサポートされていないユースケースです。ただし、これを使用して信頼性の高い内部ネットワークに接続された中央NTPサーバーから同期データを取得する場合、複数のソースを使用することは実際にはあまり関係がなく、単一のソースで良い精度を得ることができます。

ローカルネットワークと同じデータセンターにある信頼できるサーバーでサーバーを同期する場合、NTPとSNTPの精度差はほとんど存在しない。 NTPはRTTを説明し、時間の滲みを行うことができますが、RTTが非常に小さい場合(たとえば、高速ローカルネットワークや近くのコンピュータなど)にはあまり役に立ちません。また、使用しているソースを信頼できる場合は、複数のソースは必要ありません。

効率の違いは何ですか?

単一のソースからの同期は、複数のソースからの同期よりもはるかに簡単です。これは、どのソースが他のソースよりも優れているかを判断したり、複数のソースの情報を組み合わせたりする必要がないためです。アルゴリズムははるかに簡単で、単純な場合はCPU負荷が少なくて済みます。

「簡単ではない」時間同期要件、NTPクライアントとしてchronyのユースケースは何ですか?

これは上記の引用で解決されていますが、それにもかかわらず、以下はsystemd-timesyncdでカバーされていないChronyのユースケースです。

  • NTPサーバーを実行します(他のホストがこのホストを同期ソースとして使用できるようにします)。
  • 複数のソースからNTP同期情報を取得します。これは、インターネット上のパブリックサーバーからこの情報を取得するホストにとって重要です。
  • 通常、GPSデバイスなどの特別なハードウェアを搭載したローカルクロックから同期情報を取得すると、衛星から正確な時刻情報を取得できます。

これらのユースケースには、Chronyまたはntpdなどが必要です。

答え2

他の答えが正しく指摘したように、chronyNTPとsystemd-timesyncdSNTPを実装してください。

タイミングクライアントの観点から見ると:

SNTPは実装が簡単なプロトコルです。
NTPは時間の経過とともに徐々に増加/修正することができます。 NTPの最大の利点の1つは、より正確な時間を得るために回答のRTTも考慮することです。

~からhttps://www.meinbergglobal.com/english/faq/faq_37.htm

すべての機能を備えたNTPサーバーまたはクライアントは、さまざまな数学的、統計的方法、およびスムーズなクロック速度調整を使用して非常に高い精度を達成し、急激な時間ステップを最大限に回避しますが、SNTPは単純なアプリケーションにのみ推奨できます。精度と信頼性の要件はあまり高くありません。ドリフト値を無視し、単純化されたシステムクロック調整方法(通常は単純な時間ステップ)を使用することで、SNTPは完全なNTP実装と比較して低品質の時間同期のみを達成できます。

SNTPはより簡単なアプローチをとります。 NTPアルゴリズムの複雑さは大部分排除されました。多くのSNTPクライアントは時間をかけずにステップ時間に従います。これは、単純なタイムスタンプを必要とする多くのアプリケーションに適しています。さらに、SNTP には複数の NTP サーバーを監視およびフィルタリングする機能がありません。通常、単純なラウンドロビンアプローチが使用され、1つのサーバーでエラーが発生した場合は、リスト内の次のサーバーが使用されます。

~からhttps://www.masterclock.com/company/masterclock-inc-blog/ntp-vs-sntp

NTPはSNTPよりも正確かつ正確なため、ほとんどの企業アプリケーションでは事実上の勝者になります。一方、SNTPの簡素性により、IPカメラ、DVR、一部のネットワークスイッチなどのデバイスに適しています。このタイプのハードウェアには、より複雑なプロトコルを処理できる処理リソースが不足していますが、接続されているデバイスがより強力になるにつれて状況が変わることがあります。

SNTPの主な弱点の1つは、Network Time Protocolがデフォルトで実行するのと同じように、複数のソースから時間を取得して時間をより正確にすることができないことです。

もう1つの重要な点は、ハイパーバイザーとNTPデーモンの両方が仮想マシンの時間を変更しようとすると、SNTP実装がNTPよりも多くの問題を引き起こすことです。特に、時間が一致せず、一部の構成エラーが原因で両方がアクティブになると、大きな問題が発生する可能性があります。 (有効なシステム管理者は1つの時間同期方法のみをアクティブに保ちますが、構成エラーのために2つの方法を同時に有効にすることもできます。)

systemd-timesyncd使用しない場合は、PSを代替として推奨しませんsystemd

答え3

chrony分岐形式ではなく、ntpd最初から実装されました。両方を達成します。顧客そして仕える人フルNTPv4プロトコルのモード(RFC5905)。エンタープライズレベルのユーザーの間では、レガシーから離れてntpdおりchrony、Red Hat(RHEL 7以降)やSuSE(SLES 15以降)などの傾向が見られます。

systemd-timesyncdSNTPプロトコルのみを実装します(RFC4330)顧客モデル。したがって、複雑なユースケースは属しませんsystemd-timesyncd。たとえば、SNTP は、デフォルトでは NTP のように複数のソースから時刻を取得し、より正確にすることはできません。したがって、systemd-timesyncd同じ高精度時間を提供することはできませんchrony

関連情報