ケースファンを山洋電気の高回転モデルに交換して、温度を 4度下げ、再び稼働し始めた PC。しかし、再起動の嵐にまだ見舞われます。一体どうしてしまったのでしょうか。

イベントビューアでのトラブル履歴の発見や、こういう時仮想化は便利ですよという話。

朝起きたら一人足りない…

この PC、仮想化サーバとして 24時間稼働していて、

  • ホスト OS として Windows Server 2003 + Windows Server 2008 R2 デュアルブート
  • ゲスト OS としてサーバ用として 4つの OS

が動いています。Virtual Server 2005 R2 + VMWare Server が同居しているという、珍獣マシンとなっています。

ところが、朝起きると 4台中 1台のゲスト OS がシャットダウンされた状態になっています。まずは落ちたゲスト OS そのものを疑ってみるところですが、調べていくと、落ちたのはゲスト OS ではないことが判明しました。

イベントビューアで分かる再起動の痕跡

朝 2:00 前後に、ホスト OS が勝手に再起動しているようなのです。ホスト OS のイベントビューアで確認すると、STOP エラーによる BSOD (Blue Screen of Death: 画面が真っ青になって Windows が落ちるアレです)) が不定期に発生しています。

黄色い「!」マークの USER32 のエラーはすべて STOP エラーに関するものでした。

Windows 2003: イベントビューア: STOP エラー Windows 2003: イベントビューア: STOP エラー 1件

他のゲスト OS x 3 は、ホスト OS 起動時に自動起動するよう設定しているので、何食わぬ顔をして動いているように見えますが、残り 1台は手動だったので “シャットダウン” 状態で放置されていた、というわけ。

2:00 頃と言われて真っ先に思いつくのはホスト OS の Windows Update による再起動では? ですが、この期間中 WU は発生していないし、ログを見ると分かるように、その後のリブート時刻はランダムです。

原因は何か?

他に考えられる共通点としては、複数のゲスト OS に一斉に負荷がかかった時刻では…という点です。今まで同じ構成でずっと 24時間稼働し続けてきたので、PC の処理能力に対して、ゲスト OS を詰め込みすぎて正常に動作できなくなった、というわけでも無さそうです。となると、

  1. 冷却不足による熱暴走
  2. メモリ上限いっぱいまで使ったときに上位アドレスのメモリが起こすトラブル

という話になってきます。

2. は別の PC で過去に経験したことがあります。OS 起動直後はメモリを使わないので平然と動くのですが、アプリケーションやゲスト OS を色々と同時起動し、メモリを消費していくと、異常なメモリのところに差し掛かってドーン、というやつです。

とりあえずゲスト OS を別マシンに待避

まずこの状態ではサーバ運用しようにも話にならんので、古い PC を引っ張り出してきて、ゲスト OS のイメージを移動。引越先の CPU が Pentium 4 3.0GHz とかなので重いものの、再び稼働開始。

こういう (多分) ハードウェアのトラブル時には、サーバを仮想化しておくと引越しが手軽で便利です。

ゲスト OS の中には Active Directory のドメインコントローラー (以下 DC) があったりしましたが、別の DC が別マシンで稼働していて、「ちょっと遅いけどドメインにはログオンできる」状態を維持。引越先で起動後、何事もなかったかのように DC 同士の同期も復活しました。妙なところで Active Directory の耐故障性が実証されました 🙂

Nire.com の WordPress サーバも、もともと別ホスト OS 上で稼働していたので無傷。

一方、落ちた PC は再び Memtest86+ を走らせて、メモリテストをロングランしてみることにしました。

というわけで、次回は Memtest86 の話。

つづく。