web-dev-qa-db-ja.com

ntpによって行われた時間修正を塗りつぶす方法はありますか?

現在管理しているサーバーにクロックドリフトがあり、サーバー上で時間を遡ることなく差異を修正したいと考えています。

うるう秒スミアリングの手法について読んだことがありますが、ntp補正をスミアするのと同様の方法があるかどうか(特に、補正によってシステムクロックが戻るかどうか)疑問に思いましたか?

6
sysadmiral

NTPは、残酷なクロックジャンプなどを発生させることなく、これを自動的に処理する必要があります。

ntpd -qを実行して、時間を1回同期し、終了することができます。

クロックスキューが大きすぎる(> 1000秒)場合、NTPはパニックになり、終了します。NTPデーモンをntpd -gで実行してください。その場合でも、強制的に時計を調整してください。

非推奨のntpdateの使用は避けてください。

3
dr_

Dr01からのポインタのおかげで、私はメーリングリストの応答で答えを見つけました ここ 。主な違いは、私が使用していた用語でした。 ntpは、「ジャンプ」ではなく「ステップ」を使用し、「スミア」では「スルー」を使用します。

ステッピング:時間は大きな単位ですばやく変化します。「ステップ」方式(settimeofday)を使用すると、時間はより高いレートで徐々に変化するか、時間はすぐに変化して正しい時刻になります。

step ==one瞬間ステップで時計を正しい時刻にリセットします。ステップクロックは「後方に移動」できます。

slew ==時計を速くしたり遅くしたりして、時計を調整します。回転した時計が「後方に移動」することはありません

要約すると、ntpは、差がしきい値(128ms)を下回っている場合は時間をスルーし、差がそのしきい値を上回っている場合は時間をステップします。

ntpdドキュメント では、-xオプションを使用すると、差がデフォルトのしきい値を超えている場合でも、ntpに常に修正をスルーさせることができます。

-x通常、オフセットがステップしきい値(デフォルトでは128ミリ秒)よりも小さい場合、時間はスルーされ、しきい値を超える場合はステップされます。このオプションは、すべての場合に時間を強制的にスルーします。ステップしきい値がゼロに設定されている場合、値や-xオプションに関係なく、すべてのオフセットがステップされます。一般に、これは、大きな時間および周波数エラーに対処するように設計されたクロックステートマシンをバイパスするため、お勧めできません。注:スルーレートは0.5 ms/sに制限されているため、調整の1秒ごとに償却間隔が必要です。 2000秒のしたがって、数秒の調整は、償却するのに数時間または数日かかる場合があります。このオプションは、-qオプションと一緒に使用できます。

ただし、最大スルーレートが500ppm(parts-per-million)の場合、これは5分の差を修正するのに約7日かかることを意味します。

3
sysadmiral