シャットダウンが進まない時には停止処理中のサービスに注目

メンテナンス中にトラブルがあってかなり無駄に時間を使ってしまったので反省も兼ねてメモしておきます。

Hyper-Vクラスタで予備ノードが無いテスト系のノードにhotfixを適用して再起動する作業をしていました。再起動を実行した所…Remote Desktopからはすぐにログオフさせられたもののいつまでたってもシャットダウンしない状況になってしまいました。結局起きていたことは以下の様なことでした。

  • Hyper-Vのホストなので、稼働していた仮想マシンの状態を保存
  • iSCSI接続に障害を併発しており(そもそもその対応のメンテナンスだったのですが)、ディスクへの書き込みパフォーマンスが出ていなくて時間がかかっていた
  • さらにディスクが見えなくなりHyper-V Virtual Machine Managementサービスが異常停止
  • Hyper-V Virtual Machine Managementサービスはしばらくして自動的に開始
  • その間にClusterサービスが停止中のままになる(デッドロック?)

結局Remote PowerShellでは接続できたので、Enter-PSSessionで該当ノードに入り、clusterサービスの実体であるclussvcを殺すことで再起動処理が先に進みました。

get-process clussvc | kill

シャットダウンプロセスが進まない場合には、停止処理中で止まってしまっているサービスを見つけてそのプロセスを切るというのはすぐに思いつけないといけないですね。今日はこれに気がつくまでに1時間くらいかかってしまいました。反省です。また、そもそもHyper-Vクラスタでは予備ノードが無いとメンテナンスが非常に厳しいですね。

子供3人。家族優先。都内SIer勤務。Windows系中心のインフラよりの何でも屋。脱原発。 Microsoft MVP for Cloud and Datacenter Management.

コメントを残す

メールアドレスが公開されることはありません。