XenServerがオープンライセンスになったので、KVMと合わせてXenServerの動作も少し調べている。
ゲストがWindowsでは、KVMより軽い感じがしている。
しかし、XenServer上でWindowsを動作させるとOS時間において9時間のずれが発生するのでこれを調査。
9時間のずれなので、Windowsが見ている時間がUTC時間という想定はできるのだが、BIOSおよびXenServerではJST時間となっており9時間のずれを発生させる理由が見つからない。
想像だが、XenServerにおける仮想プラットホームにおいて、ホストにおけるタイムゾーンを考慮した計算がされてしまい、結果としてゲストOS上のBIOSではUTC時間となってしまっている事が予想される。 ゲストがLinuxであれば、タイムゾーンの設定においてBIOS時間がUTCなのかローカル時間なのかを指定できるので問題ないがWindowsではBIOS時間はJSTとなっている事を前提にしているので、これでは運用上困ったことになる。 で、いろいろと調べてみたがゲストOSにおけるvm-param上の platform という場所に timeoffset というものがある事が判明。 どうやら、これをいじることでホストであるXenServerの時間との差分を指定できるようなので、これを設定したら見事に時間が調整できました。
指定方法としては、XenServerのコンソールで
1)仮想ゲストのUUIDを調べる
> xe vm-list
2)仮想ゲストのplatform (MRW):の状態を確認
> xe vm-param-list uuid=上記1)で調べたUUID
3)timeoffsetの指定
> xe vm-param-set platform:timeoffset=32400 uuid=上記1)で調べたUUID
として、ゲストOSを起動すれば時間が合うようです。