アルテッツァの造り方

最近ロードバイクとCitrixXenAppネタばかり

Windows Server 2008 R2 で「予期しないシャットダウン」が記録される

2014/04/05

XenAppのポリシーを使って自動再起動を実施しているのですが、何故か再起動ではなくシャットダウンしてしまう現象に遭遇しています。発生頻度は週に1~2台くらいでファーム全体のパフォーマンスには影響しませんが、気持ち悪いのでそのうち調べようと考えていました。なんせ忙しいので取りあえず起動して動作に問題がなさそうだったのでイベントログも見ずに放置ですよ。管理者として最悪ですな。。。

昔の経験が役立つ

Windowsのシャットダウンの流れは、ドライバやサービスを終了し最後にハードウェアに対し電源オフやリセットの信号を出します。
昔にクライアントPCの保守作業を担当していた時に一度だけ、サービスが終了する前に電源オフ信号が出てしまい毎回チェックディスクが実行されるという症状に出くわした事を思い出しました。これなら説明が付くぞ!

なぜ再起動しないのか

再起動を指示しておきながらシャットダウン後に起動しないのはおかしいのです。しかしサービスが落ちる前にリセット信号が出ているなら不正なシャットダウンが記録されているハズで、これが原因で再起動しない事は予想できます。
通常のクライアントPCの場合不正なシャットダウンが記録されると自動的に再起動しメモリダンプを取得する設定になっています。しかしサーバーの場合は勝手に再起動されると非常に困る場合が多いので、敢えて不正シャットダウン時の自動再起動を無効化しているのです。

予想した原因

サービスなりドライバが正常終了する前にハードリセットが実行される

不正シャットダウンのフラグが記録される

不正シャットダウン時は再起動しない設定になっている

永遠の眠りにつく

現象からの推定ですが矛盾点は無いのでコレが正解でしょう

実際に確認する

以上の事を踏まえて実際にイベントログを確認しました。
ID:41 Kernel-Power、ID:1001 BugCheckが記録されています。やはり不正なシャットダウンが記録されている様です。
コレが分かればシャットダウン信号を遅延させるレジストリを設定すれば良いわけです。って事でネットで該当するレジストリを調べました。

修正パッチが見つかる

頼りのGoogle先生に上記のIDを伝えて調べてもらったところ、マイクロソフトに次のナレッジが存在する事を教えてくれました。
レジストリの WaitToKillServiceTimeout 値は Windows 7 または Windows Server 2008 R2 で機能しません。
まさに今回の現象そのままです。なんや、答え載ってるやん・・・
本現象はOSのバグによるものだそうで、Hotfixを適用すれば対策完了です。もしまだ現象が残る様ならレジストリで「WaitToKillServiceTimeout」の値を伸ばして対応すれば良さそうです。

↓ブログ村のランキングに参加しています。ポチっと押して頂けると嬉しいです♪ にほんブログ村 自転車ブログ ロードバイクへ

-Citrix関連技術, お仕事