web-dev-qa-db-ja.com

KVMホスト再起動時のゲストタイムシフト

Ubuntuサーバー12.04をKVMホストとしてインストールし、Ubuntuサーバー12.04も実行しているUbuntuゲストを作成しました。サーバーはASTタイムゾーンにありますこれはUTC + 3時間です。date -sを使用してゲストの時刻を正しく設定した後、再起動の間に正しい時刻を保持しながら、ゲストを好きなだけ再起動できます。

ただし、KVMホストが再起動された場合(ホストには再起動の間に時間の問題がありません)、KVMゲストを起動すると、すべてのゲストは正確に3時間になります以下の出力は、ホストとゲストのシステム時刻とハードウェア時刻を示しています。

root@kvmhost1:~# date
Wed Jan 16 14:10:38 AST 2013
root@kvmhost1:~# hwclock 
Wed 16 Jan 2013 02:10:40 PM AST  -0.187899 seconds

root@kvmguest1:~# date
Wed Jan 16 11:10:45 AST 2013
root@kvmguest1:~# hwclock 
Wed 16 Jan 2013 02:10:47 PM AST  -0.521226 seconds

ゲストの時刻が修正されると、タイムシフトを誤って行うことなく再起動できます。

私が試した/テストしたもの

  • 私はこれを3つの別々の物理サーバーで試しましたが、すべて同じ正確な動作を示します。
  • Kvmホストの1つがUbuntu11.04を実行していて、同じ動作が発生しました。
  • 問題を解決するためにタイムサーバーを使用することを検討しましたが、 buntuはNTPゲスト でKVMを使用しないことをお勧めします。 KVMゲストクロック同期 でこれについての良い議論です。これは、ゲストで実行されているkvm-clockがこれを処理する必要があることを示唆しています。
  • ゲストでdmesg | grep kvm-clockを実行し、kvmクロックが使用されていることを確認しました。

更新

hwclockコマンドの--localtimeオプションを使用して、現地時間を使用するようにハードウェアクロックを設定しました。同じ問題が引き続き発生します。ただし、ソフトウェアとハ​​ードウェアのクロックが同時に設定されているため、出力は少し明確になります。

root@kvmhost1:~# date
Wed Jan 16 15:50:26 AST 2013
root@kvmhost1:~# hwclock 
Wed 16 Jan 2013 03:50:29 PM AST  -0.750378 seconds

root@kvmguest1:~# date
Wed Jan 16 12:50:29 AST 2013
root@kvmguest1:~# hwclock 
Wed 16 Jan 2013 12:50:31 PM AST  -0.849677 seconds

解決策

以下のマイケルハンプトンによる答えは問題を解決しました。ゲストは、デフォルトでUTC時間にハードウェアクロックを設定しないキックスタートファイルを使用して作成されました。キックスタートタイムゾーンオプションに--utcオプションを追加したところ、この問題は解決しました。キックスタートオプションは次のようになりました。

timezone --utc Asia/Bahrain
2

ハードウェアクロックが現地時間であると見なす方法でゲストをインストールしたようです。 KVMゲストは、Windowsゲストでない限り、常にUTC時間でハードウェアクロックを考慮する必要があります(ただし、UTCハードウェアクロックに設定することもできます)...

/etc/default/rcSファイルを編集し、UTC=noUTC=yesに変更します。次に、ゲストクロックをリセットします。

2
Michael Hampton