Hyper-V クラスター環境で仮想マシンのオフライン時に予期せぬシャットダウンが発生する

こんにちは。Windows プラットフォーム サポートの加藤です。

本日は、Windows Server 2008~2016 のフェールオーバー クラスターの環境にて、仮想マシンリソースのオフライン時に予期せぬシャットダウンが発生する事象について説明いたします。

「事象」
仮想マシンにて予期せぬシャットダウン (EventLog(イベントID:6008)) が発生する

「発生条件」
フェールオーバー クラスター マネージャーの仮想マシンリソースのプロパティにて「クラスター制御されたオフライン操作」が「シャットダウン」に設定されており、かつ仮想マシンの状態が以下の 1 または 2 である場合

1. 仮想マシンの画面がロックされている (ロック画面の状態)
2. シャットダウン権限のない一般ユーザーがログオンしている

「トリガー」
フェールオーバー クラスター マネージャーから仮想マシンのシャットダウン
または、PowerShell やクラスター コマンドにてリソースの仮想マシンリソースのオフラインを実施

「原因」
通常は、仮想マシンリソースのオフライン時の動作が「シャットダウン」で設定されている場合、仮想マシンリソースをオフラインにすると、仮想マシンは正常にシャットダウンされます。

仮想マシンの画面がロックされている (ロック画面の状態) または、シャットダウン権限のないユーザーがログオンしている場合、Hyper-V マネージャーから通常のシャットダウンを実施するとシャットダウン拒否のエラーが返され、シャットダウンされません。
これは想定された動作です。
しかしながら、クラスター経由でオフライン (シャットダウン) を実行した場合は、上記のようにシャットダウンが拒否されてしまうと、仮想マシンリソースをオフラインにできないため、オフライン処理を継続するために、シャットダウンではなく、当該仮想マシンを強制停止させます。
このため、当該の仮想マシンは、予期せぬシャットダウンとなります。

「回避策」
この事象を回避するためには、オフライン時の動作を「シャットダウン(強制)」に設定します。
「シャットダウン(強制)」の場合は、仮想マシンが上記 1、2 の状況であっても、シャットダウン処理は継続されます。
「シャットダウン(強制)」は「シャットダウン」とは異なり、反応が遅いプロセスが終了するのを待たずに、仮想マシン上のオペレーティング システムのシャットダウンをクラスターで実行し、仮想マシンをオフラインにします。

もうひとつの回避としては、仮想マシンの画面をロックしない運用にしていただき、更に一般ユーザーでログオンする運用を変更していただくことでも回避できます。