ichikazu
Enthusiast
Enthusiast

ESXiの時刻設定について

こんにちは。

ESXiの時刻設定についてご教授ください。
(当たり前の事を聞いているかもしれませんが、ご了承ください)

ESXiでは、サーバのハードウェア(BIOS)クロックのタイムゾーンをUTCにする必要があると思います。

gowatana 様の書かれた、
https://communities.vmware.com/people/gowatana/blog/2012/12/03/%E5%9B%B3%E8%A7%A3-esxi-%E3%81%AEsysl...
に記載されているように、ESXiでの時刻の記録(syslog等に記録される時間)はUTCで行われると思います。

例えば、
・BIOSのタイムゾーン : UTC
・ESXi : NTPサーバを参照するように設定
・VM : NTPサーバを参照するように設定
・vCenter Server(Win) : NTPサーバを参照するように設定
となっている場合、

ESXiの時刻はBIOSで設定されているゾーン(UTC)の時刻で(ファイル等を)記録。
VMはNTPサーバを参照して、JSTの時刻で記録
vCenter Server(Win) : 日本語Win環境のため、vSphereWebClient経由で見た場合、ESXiのログをJST(+09:00)して表示くれる。

となる認識で合っているでしょうか。
(確認できる環境が手元に無いので確認させてください。。)

また、サポートにログを送る場合、vSphereWebClient経由でシステムログのExportを行いますが、
その場合はJSTに変換されずにUTCのままだけど、サポートはUTC時刻ということを知っているから、
ちゃんとJSTに(脳内?)変換して見てくれる、となるのでしょうか?

よろしくお願いします。

0 Kudos
6 Replies
gowatana
Leadership
Leadership

こんにちは。

ESXi の時間の記録や表示ですが、

基本的に、ESXiローカルのログと、それをエクスポートしたもの

(既に書き出されたファイルを読み込むようなもの)はタイムスタンプがUTCになります。

一方、vSphere Client / Web Client で表示されるもののタイムスタンプはJSTです。

Web Client(のWebブラウザ) / vSphere Client を実行しているOSの

ローカルタイム(日本時間)に変換して表示されます。

たとえば、

Web ClientのESXi「管理」→「設定」→「時間の構成」あたりはJSTに変換されます。

Web Client のタスクやイベントの時間もJSTに変換表示されます。

ただし、ログファイルをClientから表示しても、JSTに変換されません。

今回の例だと・・・

(VMのゲストOS、vCenterのOS、Web ClientのWebブラウザのOSはすべてタイムゾーンを日本にしていると思っています。)

ESXiの時刻はBIOSで設定されているゾーン(UTC)の時刻で(ファイル等を)記録。

→ESXiのdataコマンド等の時刻表示はUTCで、ESXiのログファイルもUTCで記録されます。

ただ、BIOSでの設定というわけではなく、ESXi自身がUTC設定となっているのでUTCになります。

仮にBIOSでUTCとしなかった場合も、UTCになります。

NTPで時刻同期していても、ESXiではUTCになります。

VMはNTPサーバを参照して、JSTの時刻で記録

→VM(ゲストOS)では、OSで設定したタイムゾーンの設定です。基本的にはゲストOSのSyslogなどはJSTで記録されます。

ただしOSやSyslogではなく、ソフトウェアが独自に出力するログは、UTC/JSTどちらかはそのソフトによるので、

かならず全てのログファイルがJSTかは微妙です。

vCenter Server(Win) : 日本語Win環境のため、vSphereWebClient経由で見た場合、ESXiのログをJST(+09:00)して表示くれる。

→ESXiで起きたアラート、タスク、イベント等の情報はJSTで表示しますが、

ログファイルは基本的にUTCの時間のままです。

※ログブラウザだと、UTCの時間文字列に「+0900」という文字列(JSTだと+9時間ということ)を付けて表示されます。

また、サポートにログを送る場合、vSphereWebClient経由でシステムログのExportを行いますが、

その場合はJSTに変換されずにUTCのままだけど、サポートはUTC時刻ということを知っているから、

ちゃんとJSTに(脳内?)変換して見てくれる、となるのでしょうか?

→システムログのエクスポート(通称vm-support)の中身はUTCのログファイルのままですが、

サポートの人は、JSTなど、しかるべき時間に読み替えて調査してくれます。

(最低限、NTPで同期していれば何とか突合せしてもらえると思います。)

ちなみに、ESXiのログファイルはUTCですが、

Syslogなどのタイムスタンプであれば、タイムスタンプの末尾に「Z」があるとUTCだとわかると思います。

2015-01-10T08:15:02Z syslog[4078399]: starting hostd probing.

2015-01-10T08:15:02Z syslog[4078399]: hostd probing is done.

以上です。参考になりますでしょうか・・・

0 Kudos
ichikazu
Enthusiast
Enthusiast

gowantaさん、こんにちは。

ご回答ありがとうございます。

> ESXiのdataコマンド等の時刻表示はUTCで、ESXiのログファイルもUTCで記録されます。
> ただ、BIOSでの設定というわけではなく、ESXi自身がUTC設定となっているのでUTCになります。
> 仮にBIOSでUTCとしなかった場合も、UTCになります。
> NTPで時刻同期していても、ESXiではUTCになります。

仮にBIOSの設定でJSTにしていたとしても、ESXiがNTPサーバを参照するようになっていれば、
お構いなしにUTC時刻で時間の記録を行う、ということでしょうか?
(BIOSの時刻のゾーン設定はESXiにとって、ある種無意味、ということでしょうか)

もし、ESXiにNTPサーバを参照させない場合、ハードウェアクロックがESXiの時刻になると思いますが、
BIOSでJSTと設定していた場合は、その時刻がUTCの時刻、という扱いになりますか?
(例えばハードウェアクロックが 10:00 の場合、ESXiはUTC時刻の 10:00 (-09:00せずに) と見てしまいますか?)


サポート方がちゃんとUTCを意識して見てくれるということで安心しました。

よろしくお願いします。

0 Kudos
gowatana
Leadership
Leadership

こんばんは。

仮にBIOSの設定でJSTにしていたとしても、ESXiがNTPサーバを参照するようになっていれば、

お構いなしにUTC時刻で時間の記録を行う、ということでしょうか?

(BIOSの時刻のゾーン設定はESXiにとって、ある種無意味、ということでしょうか)

はい。結局はそうなると思われます。

ESXiは、起動時にBIOSの時間(ハードウェアクロック)を見ても、

NTPで時刻同期する場合はUTCの時間(JST-9h)で時刻同期されて

date コマンドの結果や、ログファイルの記録もUTCになります。


ただ、BIOSは「UTCモード」で設定しておくとよいです。

UTCモードという表現が正しいかは微妙ですが、

BIOSで設定した時刻をUTCとして認識するモードがあります。

マニュアルの下記のあたりに、UTCにするように記載がありました。

対話形式での ESXi のインストール

vSphere 5.5 Documentation Center

サーバ ハードウェアのクロックが UTC に設定されていることを確認すること。この設定はシステム BIOS にあります。

あと・・・

もし、ESXiにNTPサーバを参照させない場合、ハードウェアクロックがESXiの時刻になると思いますが、

BIOSでJSTと設定していた場合は、その時刻がUTCの時刻、という扱いになりますか?

(例えばハードウェアクロックが 10:00 の場合、ESXiはUTC時刻の 10:00 (-09:00せずに) と見てしまいますか?)

これは、BIOSの時刻設定モード(UTCか、JSTか)の設定と、設定する時間の組み合わせによります。

ちなみにESXiの時間がずれてしまう例ですが、

UTCモードで、JSTの時間を設定してESXiを起動すると

NTPサーバを参照しない場合、ESXiの時間は JST+9h になってしまうことがあります。

(微妙なタイミングの問題もあるのですが・・・)

BIOSでUTC/JSTモードの切り替え設定ができない場合(そういうサーバもあります)も、

BIOSの時計は「JST - 9h」の状態にしておくと良いと思います。

以上です。ご参考まで・・・

0 Kudos
ichikazu
Enthusiast
Enthusiast

こんにちは。


調べてみたところ、今回のサーバ機はBIOSでの時刻設定において、JSTとかUTCとか選べるH/Wではありませんでした。
そのため、UTC時刻としてBIOS時刻は設定しようと思います。

ちなみに、ESXiは再起動や停止時にハードウェアクロックに現在の時刻情報を書き込みに行くのでしょうか?

0 Kudos
gowatana
Leadership
Leadership

こんばんは。

以前に気になって

マニュアル/KBなどを探したときは見つけられなかったのですが、

ESXiの時間を修正して、再起動(してBIOSで時間確認)した時には

ちゃんとESXiで設定した時間がBIOSの時計にも反映されていました。

※サーバもいろいろあるので、どのサーバでも必ずかどうかは微妙ですが・・・

ちなみにコマンドで時刻設定した時は、

ハードウェアクロックまで時刻変更しているようでした。(結構前のポストですが・・・)

esxcli での ESXi 時刻設定について

以上です。ご参考まで。

0 Kudos
ichikazu
Enthusiast
Enthusiast

こんばんは。

色々と確認していただき、ありがとうございます。

再来月(!)になれば実機が触れそうになるため、そこで実際に試してみたいと思います。

(それまで設計上はBIOSへの書き込み処理はグレーにしておこうかと。。)

また何かわからないことがありましたら教えてください。

よろしくお願いします。


0 Kudos