ntpdとsystemd-timesyncd - 安定したNTP同期を達成するには?

ntpdとsystemd-timesyncd - 安定したNTP同期を達成するには?

NTPデーモンの状態を照会すると、ntpdc -c sysinfo次の出力が表示されます。

system peer:          0.0.0.0
system peer mode:     unspec
leap indicator:       11
stratum:              16
precision:            -20
root distance:        0.00000 s
root dispersion:      12.77106 s
reference ID:         [73.78.73.84]
reference time:       00000000.00000000  Thu, Feb  7 2036  7:28:16.000
system flags:         auth monitor ntp kernel stats
jitter:               0.000000 s
stability:            0.000 ppm
broadcastdelay:       0.000000 s
authdelay:            0.000000 s

これは、NTP 同期が失敗したことを示します。ただし、システム時間の精度は1秒以内です。今と同じ時間にネットワーク接続なしでシステムを実行すると、システム時間が約10秒ほど差があります。

この動作は、システムに時間を同期させる別の方法があることを示します。私もsystemd-timesyncd.service(設定ファイルがあります/etc/systemd/timesyncd.conf)あることに気づき、timedatectl status正確な時間を教えてくれました。

      Local time: Thu 2016-08-25 10:55:23 CEST
  Universal time: Thu 2016-08-25 08:55:23 UTC
        RTC time: Thu 2016-08-25 08:55:22
       Time zone: Europe/Berlin (CEST, +0200)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: yes
 Last DST change: DST began at
                  Sun 2016-03-27 01:59:59 CET
                  Sun 2016-03-27 03:00:00 CEST
 Next DST change: DST ends (the clock jumps one hour backwards) at
                  Sun 2016-10-30 02:59:59 CEST
                  Sun 2016-10-30 02:00:00 CET

それで、私の質問はこれら2つのメカニズムの違いは何ですか?そのうちの1つはもう使用されていませんか?並列に使用できますか? NTP同期状態を照会するには、どちらを信頼する必要がありますか?

(私は別のシステム(別のネットワークにあります)を持っており、どちらの方法も成功を示し、正確な時間を生成します。)

答え1

systemd-timesyncd は、基本的に最新の systemd バージョンとある程度バンドルされている小規模クライアント専用の NTP 実装です。完全なntpdよりも軽いですが、時間同期のみをサポートします。つまり、他のコンピュータに対してNTPサーバーとして機能することはできません。クライアント側でntpdを置き換えるためのものです。

理論的には、2つの間にわずかな遅延がある異なるタイムサーバーを選択できるため、2つを同時に使用しないでください。これにより、システムクロックが定期的に「ジャンプ」します。

ntpdc残念ながら、状態を取得するにはntpdを使用している場合はtimedatectltimesyncdを使用する必要があります。

答え2

systemd-timesyncdにはクロックルールはありません。時計は訓練または補償されず、時間の経過とともに内部時計のドリフトは減少しません。ポーリング間隔を調整する基本的なロジックがありますが、制限されない場合は、systemd-timesyncdが最近のドリフトに必要と思われる間隔でプッシュまたはプルされるため、ホストは常に不均一な時間になります。また、リモートタイムソースの品質も評価できません。 100ミリ秒以上の精度を得る可能性はほとんどありません。これは、ラップトップなどの単純なエンドユーザーデバイスには十分ですが、より高いタイミング精度を必要とする分散システムには確かに問題を引き起こす可能性があります。

関連情報