VMware ESXiで応答しない(ハングした)仮想マシンを強制終了する4つの方法
はじめに
VMware ESXiホスト上の仮想マシンがフリーズし、vSphereクライアントからどの操作を行っても電源オフや再起動が受け付けなくなることがあります。仮想マシン1台のためにESXiホスト全体を再起動するのは得策ではありません。特に、ESXiホストが1台しかない環境や、DRSクラスタ内の他のホストに移行先の負荷余裕がない場合はなおさらです。本記事では、応答しなくなった(ハングした)仮想マシンをESXiホスト上で強制的に停止させる主な方法を解説します。
仮想マシンがハングした際に表示されるエラーメッセージ
ESXiサーバー上で仮想マシンのプロセスがフリーズすると、vCenterからのReset(リセット)やPower Off(パワーオフ)のコマンドに反応せず、操作のたびに以下のいずれかのエラーが返されます。
- Another task is already in progress(別のタスクがすでに実行中です)
- The virtual machine might be performing concurrent operations. Actions: Complete the concurrent operation and retry the power-off operation; The virtual machine is in an invalid state(仮想マシンが同時操作を実行中の可能性があります。同時操作を完了してからパワーオフを再試行してください。仮想マシンは無効な状態です)
- The attempted operation cannot be performed in the current state(現在の状態ではこの操作を実行できません)
このような場合は、ESXi ShellまたはPowerCLIのコマンドラインから、ESXiホスト上の仮想マシンのプロセスを手動で強制終了できます。
事前準備:稼働中のESXiホストの確認とSSHの有効化
まず、ハングした仮想マシンがどのESXiホストで稼働しているかを確認します。vSphere Clientで該当するVMを検索し、サマリータブの関連オブジェクト→ホスト欄に表示されているESXiホスト名を確認してください。

次に、そのESXiホストでSSHアクセスを有効にします。vSphereインターフェースから、ESXiホスト名をクリックし、構成→サービス→SSH→開始の順に選択します。

準備が整ったら、PuTTYなどのSSHクライアントでホストに接続し、以下のコマンドでESXiホスト上で稼働中の仮想マシン一覧を表示します。
esxcli vm process list

問題の仮想マシンの「World ID」を控えておきましょう。
方法1:esxcliコマンドで強制終了する
ESXiホスト上でハングした仮想マシンのプロセスを終了するには、次のコマンドを使用します。
esxcli vm process kill --type=[soft,hard,force] --world-id=WorldNumber
キルタイプには以下の3種類があります。
- soft – 最も安全なVMXプロセスの終了方法(kill -SIGTERM相当)
- hard – VMプロセスの即時終了(kill -9相当)
- force – 最も強力な強制停止モード。他の方法で解決しない場合の最終手段として使用します
注意: 実行前に、対象VMにアクティブなスナップショットやバックアップなどのタスクが実行されていないこと、また「仮想マシンのディスクの統合が必要です」状態になっていないことを必ず確認してください。これらを怠るとVMが破損し、バックアップからの復元が必要になる恐れがあります。
それでは、指定したIDのVMをsoftモードで停止してみます。
esxcli vm process kill --type=soft -w=20598249

これで仮想マシンの電源がオフになります。
方法2:PowerCLIで強制停止する
PowerCLIを使えばvCenterに接続するだけでよいため、VMが稼働しているホスト名を調べたり、SSHを有効化したりする必要がなく便利です。まず、VMが稼働中であることを確認します。
get-vm "web1" | select name,PowerStates
次のコマンドでVMプロセスを強制停止します。
stop-vm -kill "web1" -confirm:$false

方法3:esxtopユーティリティを使う
応答しないVMware仮想マシンは、esxtopユーティリティでも停止できます。SSHセッションを開いてesxtopと入力し、「c」キーでCPUリソース画面を表示した後、「SHIFT+V」を押して仮想マシンのプロセスのみを表示します。

続けて「f」(表示フィールドの選択)→「c」(LWID=Leader World IDの表示)の順に押し、ENTERキーを押します。

Name列から停止したい仮想マシンを見つけ、対応するLWID番号をメモします。次に「k」(kill)を押し、強制シャットダウンしたい仮想マシンのLWID番号を入力します。
方法4:killコマンドによる最終手段
最後の「ハード」な電源オフ方法はkillツールの使用です。この方法ではVM本体だけでなく、すべての子プロセスも停止される点に注意してください。
まず、VMの親プロセスIDを取得します。
ps | grep "web2"
取得したPIDを指定してVMプロセスを強制終了します。
kill -9 24288474

このような「ハードリセット」の後、ゲストOSはリカバリーモードで起動します。Windowsゲストの場合、画面は以下のようになります。
-
VMware ESXiで仮想マシンのクローンを作成する手順を徹底解説
本チュートリアルは、一般の家庭ユーザーにはあまり馴染みがないかもしれません。しかし、何らかの理由で環境にVMware ESXiを採用している方にとっては、きっと役立つ内容となるはずです。VMware ESXiは無料で提供されているベアメタル型ハイパーバイザーです。より多機能な有償製品「ESX Server」への購入を促すための、いわば導入版的な位置づけにあります。ESX Serverはあらゆる機能を備えている一方、価格も桁違いに高額です。ESXiは、ベアメタル仮想化における「低コストな選択肢」と言えるでしょう。そのため、上位製品にはある当たり前の機能がいくつか欠けており、クローン作成機能もその
-
VMware Serverで仮想マシンのクローンを作成する方法
はじめに仮想化がお好きな方なら、遅かれ早かれ「VMware Server」に行き当たることでしょう。VMware Serverは無料で利用できるソリューションで、既存のデスクトップ環境上に複数のOSインスタンスを実行できます。効率性、生産性、モジュール性、テスト、チューニングなど、さまざまな可能性が広がります。仮想化を使えば、実機ではなかなか試せないことも気軽に行えます。例えば、パーティションを壊す心配をせずにWindowsとLinuxのデュアルブート構成をテストしたり、実際の環境を汚さずに新しいソフトウェアを試したりすることが可能です。仮想化について仮想化についてさらに詳しく知りたい方は、当