システムクロックをハードウェアクロックと同期したままにする

システムクロックをハードウェアクロックと同期したままにする

状態:

  • コンピューティングタスクを実行するいくつかのLinux仮想マシンがあります。
  • VMはインターネット(NTPを含む)にアクセスできません。
  • ハイパーバイザーは正確な時間を知っています。
  • ハイパーバイザーの時間は、ハードウェア時計を介して仮想マシンに公開されます。
  • ハイパーバイザーはQEMU / KVMベースのようです。私たちはハイパーバイザーを制御しません(クラウドVPS製品です)。

質問:

  • VMのシステムクロックが正しい時間/ハードウェア時計と異なります。

質問:

  • システムクロックをハードウェアクロックと常に同期させることは可能ですか?

  • または、システムクロックのドリフトを説明するためにハードウェアクロックを参照として使用するようにntpdに指示できますか?

私が試したこと:

  • しかし、cronjobを使用すると、0 * * * * hwclock --hctosysドリフトが大きすぎて時間ごとの同期だけでは不十分であり、この時点でcronjobの頻度を増やすことが回避策のようです。

答え1

【ここでは記憶に基づいて作業中なので後で確認してみましょう。 ]

QEMU / KVM仮想マシンは、仮想化層を介してクロックをホストと同期できます。

ゲストがホストを使用しているかどうかを確認する方法は次のとおりです。

cat /sys/devices/system/clocksource/clocksource0/current_clocksource
kvm-clock

その値を返さない場合は、カーネルモジュールの一部であるkvm-clockゲストに半仮想化クロックモジュールをロードする必要があります。virtio

ntpdVMがホストと同期している場合は、VM(または他の外部同期)を実行しないでください。

関連情報