問題
私は同じ問題を抱えていますが、良い解決策は見つかりませんでした。私が見つけたものは次のとおりです。
問題は、再開後、ゲストのシステムとハードウェアのクロック時間が異なることです。
root @ guest:〜#date; hwclock
2014年10月11日(土)13:09:38 UTC
2014年10月11日(土)13:10:42 -0.454380秒
ホストで、彼らは同意します:
root @ four:〜#date; hwclock
2014年10月11日(土)13:11:35 UTC 2014
2014年10月11日(土)13:11:36 -1.000372秒
解決策はhwclock --hctosys
、再開後にゲストで実行することです。ただし、ゲストが中断および再開されたことにゲストが気付かないため、ゲストシステムでの変更のみでこれを行う方法を見つけていません。
QEmuゲストエージェント
ゲストでQEmuゲストエージェントと呼ばれるソフトウェアを実行し、ホストからゲストハードウェアクロックからゲストシステムクロックを更新するように通知する可能性があります。ただし、ページには、ゲストエージェントが JSONパーサーの問題のためにホストとゲストを相互の攻撃に対して脆弱にしていると記載されています(少なくとも、影響を受けるコードはホスト上でも実行されると思いますが、それについてはわかりません)。とにかく、これを設定する方法は次のとおりです。
libvirt wikiで説明されているように、エージェントのvirtioシリアルチャネルをセットアップします(libvirtドメイン形式のドキュメントも参照)。
シリアルチャネルが使用可能になったら、ゲストにQEmuゲストエージェントをインストールして起動します。(Debian:。apt-get install --no-install-recommends qemu-guest-agent
)
中断、待機、再開することにより、クロックオフセットをトリガーします。次に、ホストで次のコマンドを実行して修正しvirsh qemu-agent-command backup '{"execute":"guest-set-time"}'
ます。using virsh qemu-agent-command
がサポートされていない wikiページですが、ジョブを実行する他のコマンドが見つかりません。
libvirt内でguest-set-time
、サスペンドからの再開時に呼び出しを自動化することに関する2つの議論を見つけました。
しかし、私が見る限り、まだ何も実装されていません。
stoney-cloud.orgのwikiでゲストエージェントにコマンドを送信する方法に関する情報を見つけました。
またtickpolicy="catchup"
、libvirtタイマー構成の設定を試みましたが、これで問題は解決しませんでした。
NTP
エージェントを使用する代わりに、ntpデーモンを使用するか、cronジョブからntpdateを定期的に呼び出すこともできます。時間を遅らせるとプログラムが混乱する可能性があるため、後者はお勧めしません(たとえば、Dovecot IMAPサーバーは時間をさかのぼって処理しようとしないため、終了する可能性があります)。
次のntpデーモンを試しました。
openntpd:私のテストでは、60分あたり約2秒の割合で非常にゆっくりと時間を修正しています。時間オフセットは120秒でした。また、時間オフセットが大きすぎる場合、openntpdはエラーをスローし、私のテストでは、その場合、時間の修正に完全に失敗します。openntpdの利点:chrootで通常のユーザーとして実行できます。
chrony:テストの30分で120秒の時間オフセットを修正します。chronyは、通常のユーザーとして実行するように構成できます。chrootサポートは実装されていません。NTPサーバーのポーリング間隔は、NTPサーバーごとに構成できます。
systemd-timesyncd:テストの30秒で120秒の時間オフセットを修正します。デフォルトで通常ユーザーとして実行されます。ただし、NTPサーバーのポーリング間隔は最大2048秒まで増加するため、最悪の場合、再開後34分までサスペンド/再開は検出されません。これは設定可能ではないようです。また、timesyncdが時間をさかのぼるステップを観察しました。これにより、cronでntpdateを呼び出すのと同じ問題が発生します(上記を参照)。
chronyは問題を解決します。Openntpdは、修正率が低すぎて構成できないため、適切ではありません。systemd-timesyncdは、ポーリング間隔を構成できないため、問題を完全には解決しません。
NTPデーモンの次のDebianバージョンをテストしました:openntpd 20080406p-10、chrony 1.30-1およびsystemd 215-5 + b1。