仮想化技術で甘く見ていると落とし穴になるもの、それは時刻が狂うことです。Microsoft Virtual Server 2005R2 で、バーチャルマシンにゲスト OS をインストールしっぱなしで対策を取らないでいると、バーチャルマシン内の時刻はどんどん狂っていきます。

これは特にサーバの場合は致命的です。nire が実際に遭遇した事例では、120秒以上外部と時刻がずれていると、dovecot (POP / IMAP サーバである) が落ちました (*1)。Kerberos 認証では時刻が合っていることが前提だし、メールサーバも送受信時にメールヘッダにタイムスタンプを残すので、実際とずれていると厄介です。

(*1) … 2007年頃の dovecot. Fedora 上で

バーチャルマシン内の時刻を合わせるには、親であるホスト OS から正確な時刻をもらってくるのがもっとも確実です。

ただし、Active Directory DC ではこの設定をしてはいけません。外部の NTP or SNTP サーバを利用して時刻合わせするべきです。
-> Virtual Server + Active Directory 構成の落とし穴 Part2 – 時刻同期編

Virtual Server: ホストの時刻の同期

ホスト OS の時刻同期

ホスト OS の時刻が合っていないことにはどうしようもありません。

  • ホスト OS を Active Directory ドメインに参加させる
  • ワークグループモードで動作させたいなら、外部の NTP or SNTP サーバを利用して時刻合わせする

ゲスト OS へのバーチャル マシン追加機能インストール

  • Virtual Server 管理 Web サイトを起動
  • [CD/DVD ドライブのプロパティ] を開く
  • [既知のイメージ ファイル] として、ホスト OS の C:\Program Files\Microsoft Virtual Server\Virtual Machine Additions\ の中から適切な xxxxx.iso をフルパスで指定
  • バーチャルマシンを起動後、ログオン / ログイン
  • CD/DVD ドライブをマウントするか、開くなどして、バーチャル マシン追加機能をインストール (Windows と Linux 系で違うので詳細略)

ホスト OS とゲスト OS 間の時刻同期設定

  • Virtual Server 管理 Web サイトを起動
  • バーチャルマシンを一度シャットダウン
  • [バーチャル マシン] -> [構成] -> バーチャルマシンを選択
  • [バーチャル マシン追加機能] をクリック
  • [追加機能の機能] -> [ホストの時刻の同期] にチェック

Virtual Server + Fedora では時刻同期できるのか?

なお、ゲスト OS は公式サイトには Windows 系 OS のみリストされていますが、
http://www.microsoft.com/japan/windowsserversystem/virtualserver/evaluation/virtualizationfaq.mspx

実際には  Linux 系 OS でも、Linux 用のバーチャルマシン追加機能である VMAdditionsForLinux.iso を入手できれば、RHEL 系など公式サポートしている OS ならインストールできます。VMAdditionaForLinux の中には vmadd-timesync-2.0.1.i386.rpm といった時刻同期用の rpm ファイルがあり、これで時刻同期できます。

Fedora Core も、RHEL 系なんだから大丈夫だろう、と思いますよね。私もそう思って試しました 🙂

結果を言うと最新の Fedora では NG でした。Fedora Core 7 (fc7) までは時刻同期できていましたが、8 以降は rpm の組み込み自体ができなくなりました。9 では試していません。

Fedora Core 8 では「バーチャルマシン追加機能」がダメでも、バーチャルマシン独自に NTP / SNTP サーバにアクセスして時刻同期して、かつ /etc/grub.conf に

clock=pit nosmp noapic nolapic

を書く方法が有効そうに思えます。しかしこれも、リアル 15分間で 4分遅れ、30分間で 9分遅れという惨憺たる結果でした。(Pentium4, メモリ4GB 搭載 PC で、他に 3台ほどバーチャルマシンが動いている環境にて)

ちなみに CentOS 5.1 では、バーチャルマシン追加機能が問題なくインストールできるようです。なお、CentOS も Fedora Core も、そもそもゲスト OS として Microsoft のサポート対象外ですので、hack したい人は your own risk でお試しください。人柱報告おわり。