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
ゲストの時刻が修正されると、タイムシフトを誤って行うことなく再起動できます。
私が試した/テストしたもの
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
ハードウェアクロックが現地時間であると見なす方法でゲストをインストールしたようです。 KVMゲストは、Windowsゲストでない限り、常にUTC時間でハードウェアクロックを考慮する必要があります(ただし、UTCハードウェアクロックに設定することもできます)...
/etc/default/rcS
ファイルを編集し、UTC=no
をUTC=yes
に変更します。次に、ゲストクロックをリセットします。