見出し画像

S-003 [まとめ]仮想環境(ESXi)起動時の時刻の読み込み

時刻系設定の備忘録第3弾。
そもそも物理サーバから仮想マシン上のOSまで、どういう風に時刻を合わせているのかクエスチョンだった(汗)。これでは、次時刻設定したら何かやらかしそうだったので、調査。その調査した内容を忘れないようにメモしておく。なお、ご参考になさる方は自己責任でお願いします。

今回想定する環境はこんな感じ。

(1) vSphere ESXi→物理サーバへの時刻読み込み
 物理サーバはハードウェアクロック、別名リアルアイムクロックと呼ばれる時間を刻む機能を持っている。これは、水晶振動子(微量な電気を流してあげると規則正しく振動する)を使っている。サーバがパワーオンしているときはその電源から、パワーオフしている場合はマザーボード上の電池から電気の供給を受け、時刻設定を維持している。
 ESXiは起動時そのハードウェアクロックを見て、自身の持つシステムクロックを設定する。このとき、ESXiはハードウェアクロックをUTCと解釈する。

(2) 仮想マシン→ESXiの時刻読み込み
 続いて仮想マシンを起動するときの時刻の読み込み。この時は単純に仮想マシンがESXiの時刻を参照するのではなく、それに加えてnvramファイルの内容を加味して設定される。
 nvramファイルには仮想マシンが停止するとき、仮想マシンのハードウェアクロックとESXiのシステムクロックにどれだけ差があるか、ずれているかの情報が入っている。
 仮想マシンが起動すると、ESXiの時刻を読み、そこからどれだけずれていたかをnvramファイルから読みだして時刻を設定する。

(3) 仮想OS→仮想マシンの時刻読み込み
 ここは通常のOS→ハードウェアと同じ。今回の例ではWindowsのため、OSは仮想マシンの仮想ハードウェアクロックをローカルタイム(日本であればJST)と解釈して設定する。

(4) まとめ 仮想環境起動時の時刻の読み込み
 上記をまとめると以下の図のようになる。

※参考:
「Windows PC」で極めて珍しい事態、マイクロソフトが問題に言及
http://news.livedoor.com/article/detail/12900265/


いいなと思ったら応援しよう!