問題:ntpd
、Ubuntuを実行している仮想マシンにインストールした場合(KVMやVMware ESXなどのさまざまなハイパーバイザーを備えたホストでこれを実行したことがある)深刻なクロックドリフト。良い方法が見つかりませんでしたし、誰もがこれを経験しているとは限りません。
質問:どうすればこれを防ぐことができますか? VM内で時刻を同期する際にntpd
を強制的に強制する/etc/ntp.conf
に設定がありますか、または頻繁に実行されるcron
ジョブ内でntpdate -b timeserver
を使用する必要がありますか?
Ubuntu仮想マシン内で一般的にntpdate -b
またはクロックドリフトを使用する場合、飛躍を避けるためにどの方法が推奨されますか?
補足:Solarisだけでなく、AIXを実行しているvios(IBMハイパーバイザー)スレーブにも同様の効果が見られました。そのため、問題は非常に現実的であり、一般的にハイパーバイザーに関連しているようです。
VMware ESXで実行されているLinuxマシンでも同様の現象が見られました。ドリフト(1日に数分)は、NTPおよびVMwareツール内のVMの両方によって時刻同期が行われたために発生したようです。 VMwareツールのプロパティ (ESXのVMプロパティ)で時刻同期を無効にすることで問題を解決しました。その後、NTPは、リモートタイムサーバーとクロックの同期を保つことができました。 .vmx
ファイルを手動で編集する場合、 set tools.syncTime = "0"
。
NTP内のVMを停止し、少なくともサーバーのドリフトを修正するために、ツールで時刻を同期させることもおそらく機能します。 ESX自体はNTPデーモンを実行できます。 VMwareの計時のベストプラクティス 時刻の同期には、VMWareツールの代わりにNTPを使用することをお勧めします。
VMwareは長めの VMware仮想マシンの計時に関するペーパー を公開しています。最も関連する箇所は、サブセクション「クロックソースカーネル」です。 VMware KBには Linuxゲストでの時間管理のトラブルシューティングのヒント もあります。
少なくともVirtualBoxでは、次のことができます...以前に時間同期の問題がありましたが、 Guest Additionsの時間同期パラメーターの調整 は修正されたようです。
マニュアルの関連テキストは次のとおりです。
Guest Additionsの時刻同期パラメーターの調整
VirtualBox Guest Additionsは、ゲストのシステム時間がホスト時間と確実に同期するようにします。調整できるパラメーターがいくつかあります。次のコマンドを使用して、特定のVMにパラメーターを設定できます。
VBoxManage guestproperty set "VM name" "/VirtualBox/GuestAdd/VBoxService/PARAMETER" VALUE
ここで、PARAMETERは次のいずれかです。
--timesync-interval
時間をホストと同期する間隔を指定します。デフォルトは10000ミリ秒(10秒)です。
--timesync-min-adjust
調整を行うミリ秒単位で測定された最小絶対ドリフト値。デフォルトは、OS/2では1000ミリ秒、その他の場所では100ミリ秒です。
--timesync-latency-factor
動的最小調整時間を計算するためにクエリレイテンシを乗算する係数。デフォルトは8回です。これは、詳細を意味します。ホスト時間を決定するのにかかる時間を測定し(ゲストはVMホストサービスに連絡する必要があります)、この値に8を掛け、ホストとゲストの時間差がこの値よりも大きい場合にのみ調整を行います。それ以外の場合は、時間調整を行わないでください。
--timesync-max-latency
受け入れるホストタイマークエリの最大待ち時間。デフォルトは250ミリ秒です。
--timesync-set-threshold
時間をスムーズに調整しようとする代わりに、時間の設定を開始するミリ秒として指定される絶対ドリフトしきい値。デフォルトは20分です。
--timesync-set-start
時刻同期サービスを開始する時刻を設定します。
--timesync-set-on-restore 0|1
1をパラメーターとして渡すときに、VMが保存された状態から復元された後の時間を設定します(デフォルト)。 0を渡すことで無効にします。後者の場合、時間がスムーズに調整され、時間がかかることがあります。これらのパラメーターはすべて、
VBoxService
へのコマンドラインパラメーターとしても指定できます。ゲスト追加の時間同期を無効にする
VirtualBox Guest Additionsは、インストールして起動すると、ゲスト時間とホスト時間の同期を試みます。これは、ゲストサービスによるホストクロックの読み取りを禁止することで防止できます。
VBoxManage setextradata "VM name" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled"