こんにちは。日本マイクロソフトの永野です。
弊社クラスター製品には、リソースの操作時にそのリソースの応答を待ち続けることで、
クラスターの動作が停止することを防ぐため、設定されたタイムアウト期間で応答が
得られなかった場合には、デッドロックのような状態が発生したと判断し、リソースを
再起動する機能が備えられています。
タイムアウト期間は、各リソースの以下のプロパティに格納されています。
DeadlockTimeout : IsAlive や LooksAlive など一般的な操作のタイムアウトに利用
PendingTimeout : オンラインやオフライン時の Pending 状態のタイムアウトに利用
このタイムアウトによるリソース再起動に伴って、Windows Server 2003 では resrcmon.exe が、
Windows Server 2008, Windows Server 2008 R2 では rhs.exe が再起動し、
Windows Server 2008 の場合には、イベント ログに
Microsoft-Windows-FailoverClustering ID:1230 のエラーが記録されます。
Event ID 1230 — Cluster Service Startup
http://technet.microsoft.com/en-us/library/cc773436%28v=ws.10%29.aspx
その際、どういった処理で止まっていたのか確認するため、プロセス ダンプから
調査することが有効ですが、Windows Server 2008 にはプロセス ダンプを出力する
機能がありませんでした。
※ Windows Server 2003 と Windows Server 2008 R2 にはプロセス ダンプを出力する機能があります
2013 年 1 月に Windows Server 2008 でもデッドロック発生時にプロセス ダンプを
出力する機能が実装された rhs.exe が以下の技術情報で公開されました。
Hotfix enables a dump file to be generated when the Rhs.exe process detects a deadlock condition in Windows Server 2008
http://support.microsoft.com/kb/2782761/en-us
こちらを適用していただくことで、Windows Server 2008 R2 と同様に
Windows Error Reporting (WER) の機能を利用して以下のパスに
プロセス ダンプが作成されます。
%LOCALAPPDATA%\Microsoft\Windows\WER\ReportQueue
もし、Microsoft-Windows-FailoverClustering ID:1230 が記録される問題が
発生しているようであれば、前述の技術情報で公開されているモジュールを
適用していただき、プロセス ダンプを採取することをご検討ください。