巨大なクロックドリフトを示すCentos 5.3 VM(Proxmoxで実行)で停止しました。 5分ごとにntpdateを実行するように設定されていますが、クロックは実行中に最大20秒間同期していません。 ntpdを実行してcronジョブを停止しようとしましたが、エラーは報告されませんでした。 ntp.drift ファイルはどこにも生成されず、時計はドリフトし続けます。
クラスタで約30個のVMと同じ数のコンテナを実行していますが、他のものも同じ問題を示していません。 /etc/ntp.conf には、サーバーアドレス以外の設定はありません。
答え1
カーネルのタイミング調整のアイデアを修正する必要があります。プロセスntpd
は通常これを制限するため、時間が現実に近づくにつれて変化率は減少します。これは、修理時間ステップを使用しようとする相互作用の結果である可能性がありますntpdate
。
systemd
私の提案は、時間同期を使用しているのか、ntpd
その周りに構築されたbodgeのようなものを使用しているのかを確認することですntpdate
。
- すべて消して
- やけどしてください
/etc/adjtime
(あなたの質問に何が書かれているのか見るのは面白いでしょう) - 今再起動
同期の良いコンピュータには次の値が含まれており、/etc/adjtime
ファイル自体は2月に最後に変更されました。この値をコピーしないでください
0.001341 1613401384 0.000000
1613401384
UTC
値を見ると、man 5 adjtime
システムのシステムドリフトが0.001341秒/日(1秒のドリフトに2年かかります)で、最後に調整されたのは2月であることがわかります。かなり安定しています。ああ、そしてシステムクロックはUTCで正しく実行されます。
お客様の状況に応じて考慮すべきその他の事項
- カーネルはVMハイパーバイザーから日付/時刻を取得しようとしますか?
- その場合、仮想マシンで時間同期ツールを使用すると、時間保持が中断されます。
- 非アクティブ期間中に仮想マシンがスリープモードに入るか、遅くなりますか? VMハイパーバイザーで同期しないと、ウォールクロックが中断される可能性があります。
kvm-clock
カーネルモジュールのないCentOS 5.3を説明するいくつかの便利な参考資料があります。
- https://forum.proxmox.com/threads/time-drift-centos-5-3.10961/
- https://s19n.net/articles/2011/kvm_clock.html
このモジュールがないと、ハイパーバイザーが一時的に(そして不正確に)VMのCPUリソースが不足すると、VMのクロックが遅くなったり停止したりする可能性があります。このモジュールはVMカーネル時間の正確さを維持します。
次のコマンドを使用して自分の状況を確認できますkvm-clock
。
cat /sys/devices/system/clocksource/clocksource0/current_clocksource
これ最初どちらの参照も、タイミングの問題を解決するために最新のCentOS 5.3(当時関連)にアップデートすることをお勧めしました。しかし、2021年にはそれが現実的ではないかもしれません。
その他のソースdivider=10 clocksource=acpi_pm
カーネルブートラインに追加することをお勧めしますが、これはVMwareに適用され、kvmを持つProxmoxには適用されない可能性があります。