ntp
ゲストにインストールできることはわかっていますが、これまでに検索した内容を混乱させることで、これは必要ないことがわかります。
ホストはCentOS 6.3で、ゲストはDebian Wheezyで、kvmクロックをタイムソースとして使用しているようです。
# cat /sys/devices/system/clocksource/clocksource0/current_clocksource
kvm-clock
ゲストがホスト時計を使用できるようにするには、特別な措置を講じる必要がありますか?
答え1
ゲストなし直接ホスト時計にアクセスします。代わりに、ホストクロックに基づいてホストの更新されたメモリ領域を指すkvm-clockを使用します。そうです。はいホスト時計を使用してください。問題は、このメモリ領域が絶えず更新されず、仮想マシン「イベント」が発生したときにのみ更新されるため、ゲストがドリフトして正しい時間に戻ることができることです。
私が知る限り、一般的なアドバイスは、仮想マシンが定期的にタスクを実行し、ホストクロックを定期的に読み直すことです。
いくつかのソース、
答え2
前述のように、ホストはゲストが読み取ることができるメモリページに時間を書き込みます。これは、通常、ホストが重要なイベント(CPU速度の調整など)中にそのページにエラーを記録しない限り、仮想マシンのハードウェアクロックがホストのハードウェアクロックと一致することを意味します。問題は通常、オペレーティングシステムがハードウェアクロックが変更/調整されていることを認識していないことです。一般的な「hwclock --hctosys」は、現在のハードウェアクロックに基づいてOSを更新し(私の考えでは)、NTPデーモンを実行するよりもきれいです。
kvm-clock guestで同様のコマンドを実行して、実際にそれを確認できます。
date && hwclock --hctosys && date
Sun Jan 5 23:40:44 MST 2014
Sun Jan 5 23:40:06 MST 2014
答え3
kvm-clockについて説明した内容に加えて、標準的なベストプラクティスを試すことができます。チックレスカーネルを避け、カーネルチックを約10に下げてアクティブにし、ntpclient
ホストが過負荷になっていないことを確認してください。時間ドリフトがたくさん発生します。 CPUがひどく過度に使用されています。仮想マシンに多くの仮想CPUが割り当てられている場合は、この数字も数レベル下げてください。