2015年1月6日火曜日

VMwareでのハードウェアクロックとソフトウェアクロックの関係

そもそもハードウェアクロックとシステムクロックとは

サーバーの電源が落ちたとしても、ある程度時間を刻むことができないと、次回起動時のOSの時間のずれが大きくなり、動作に支障をきたす可能性がある。したがって、外部電源に頼らずに、システムボード上のボタン電池にて時刻を刻む機能があり、それがハードウェアクロックとなる。

一方、システムクロックは、電源ON中の状態で利用するクロック。逆に言うと、ハードウェアクロックはOS起動時は利用されることは原則無く、システムクロックが利用されるということになる。

VMwareでのクロックの種類と管理主体

仮想環境では以下のような4階層構造となる。

[a. VM:システムクロック] ←仮想マシンのOSが持つ時間
[b. VM:ハードウェアクロック] ←仮想マシンのBIOSが持つ時間
------------------------------
[c. ESX:システムクロック] ←ESXのハイパーバイザーが持つ時間
[d. ESX:ハードウェアクロック] ←ハードウェアが持つ時間(通常は内蔵電池で時間を維持)

同期タイミング

同期タイミングは以下の通り。

[a. VM:システムクロック] ←VM起動時にb→aに同期、VM停止時にa→bに同期
[b. VM:ハードウェアクロック] ←VM起動時にc→bに同期
------------------------------
[c. ESX:システムクロック] ←ESX起動時にd→cに同期、ESX停止時にc→dに同期
[d. ESX:ハードウェアクロック] ←通常は内蔵電池で時間を維持

注目すべきは、以下の点。

  • VMにおけるハードウェアクロックは仮想BIOSが持つ時間
  • VM停止後のハードウェアクロック情報はBIOSは保持せず消失
  • VM起動時にESXのシステムクロックをVMのハードウェアクロックとして同期する