ESXi ホストで仮想マシンをパワーオフできない
search cancel

ESXi ホストで仮想マシンをパワーオフできない

book

Article ID: 327281

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

この記事では、ESXi 環境で仮想マシンを停止する方法について説明します。

: 応答しない仮想マシンの原因のトラブルシューティングを試みる場合、通常は、パフォーマンス メトリックを収集してから、仮想マシンをサスペンドまたはクラッシュして追加のトラブルシューティング情報を収集することをお勧めします。

詳細については、次を参照してください。

Symptoms:
免責事項:これは英文の記事「Unable to power off the virtual machine in an ESXi host (1014165)」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。

  • ESXi ホストで仮想マシンをパワーオフできない。
  • 仮想マシンが応答せず、停止あるいは強制終了を実行できない。


Environment

VMware vSphere ESXi 6.5
VMware vSphere ESXi 7.0.0
VMware vSphere ESXi 6.7

Resolution

ESXi ホストで仮想マシンをパワーオフできない場合のソリューション:

警告:この記事のセクションおよび手順を順序どおりに実行してください。それぞれの手順が仮想マシンに影響を与える可能性があるため、セクションや手順を省略しないでください。
  1. vSphere Client/vSphere Web Client を使用した仮想マシンのパワーオフ
  2. ESXi esxcli コマンドを使用して仮想マシンをパワーオフする
  3. esxtop を使用して仮想マシンを強制終了する
  4. ESXi コマンドライン ユーティリティ vim-cmd を使用して仮想マシンをパワーオフする
vSphere Client/vSphere Web Client を使用した仮想マシンのパワーオフ
クライアントを使用して仮想マシンの安全なパワーオフを試みます。
  1. vSphere Client または vSphere Web Client を VMware vCenter Server に接続します。
  2. 仮想マシンを右クリックし、[パワーオフ] をクリックします。「別のタスクがすでに進行中です」と表示されて電源操作が失敗する場合は、タスクが完了するまで待機するか、「Powering off a virtual machine fails with the error: Cannot power Off: Another task is already in progress (1027040)」または「vCenter operation times out with the error: Operation failed since another task is in progress (1004790)」を参照してください。
  3. 仮想マシンがまだ実行中の場合は、ESXi ホストから同じ操作を直接実行します。
  4. 仮想マシンを実行している ESXi ホストに vSphere Client または VMware Host Client を直接接続します。
  5. 仮想マシンを右クリックし、[パワーオフ] を選択します。
:vSphere 6.5 から、仮想マシンの暗号化を有効にして、仮想マシンとそのファイルを保護することができます。
暗号化が仮想マシン上で有効になっている場合は、一連の暗号化処理の権限が必要です。それがないと、仮想マシンをパワーオフできません。
 
権限の詳細については、『ESXi and vCenter Server 6.5 Documentation』の「暗号化タスクの前提条件と必要な権限」セクションを参照してください。
クライアントを使用して仮想マシンを正常にパワーオフできない場合は、いずれかのコマンドライン オプションを使用します。
ESXi esxcli コマンドを使用して仮想マシンをパワーオフする
esxcli コマンドは、ESXi 5.x 以降で実行されている仮想マシンをローカルあるいはリモートでパワーオフするために使用できます。
  1. 次のコマンドを実行して、ワールド ID、UUID、表示名、.vmx 構成ファイルへのパスで識別される、実行中の仮想マシンのリストを取得します。

    esxcli vm process list
  2. 次のコマンドを実行して、リストから仮想マシンをパワーオフします。

    esxcli vm process kill --type= [soft,hard,force] --world-id= WorldNumber

    • 3 つのパワーオフ方法があります。ソフトが最も安全なパワーオフ方法です。ハードは即時シャットダウンを実行します。強制は、最後の手段として使用してください。
  3. 手順 2 を繰り返し、仮想マシンが実行されていないことを確認します。
esxtop を使用して仮想マシンを強制終了する
esxtopk コマンドを使用して実行中の仮想マシン プロセスに信号を送信し、そのプロセスを強制終了することができます。
  1. ESXi コンソールで Tech Support モードにして、root としてログインします。詳細については、「Tech Support Mode for Emergency Support (1003677)」を参照してください。
  2. 次のコマンドを実行して、esxtop ユーティリティを実行します。

    esxtop
  3. C キーを押して CPU リソース使用率画面に切り替えます。
  4. Shift + V キーを押して、ビューを仮想マシンに限定します。これにより、手順 7 でリーダー ワールド ID が見つけやすくなります。
  5. F キーを押してフィールドのリストを表示します。
  6. c を押してリーダー ワールド ID の列を追加します。
  7. 名前とリーダー ワールド ID (LWID) でターゲット仮想マシンを特定します。
  8. k を押します。
  9. World to kill プロンプトで、手順 7 のリーダー ワールド ID を入力し、Enter キーを押します。
  10. 30 秒待機し、プロセスがリストに表示されていないことを確認します。
ESXi コマンドライン ユーティリティ vim-cmd を使用して仮想マシンをパワーオフする
  1. ESXi コンソールで Tech Support モードにして、root としてログインします。詳細については、「Tech Support Mode for Emergency Support (1003677)」を参照してください。
  2. 次のコマンドを実行して、VMID、表示名、.vmx 構成ファイルへのパスで識別される、登録されたすべての仮想マシンのリストを取得します。

    vim-cmd vmsvc/getallvms
  3. 次のコマンドを実行して、仮想マシンの現在の状態を取得します。

    vim-cmd vmsvc/power.getstate VMID
  4. 手順 2 で取得した VMID を使用して仮想マシンをシャットダウンし、次のコマンドを実行します。

    vim-cmd vmsvc/power.shutdown VMID

    :仮想マシンがシャットダウンに失敗した場合は、次のコマンドを実行します。

    vim-cmd vmsvc/power.off VMID

:上記の手順を実行しても問題が解決されず、ESXi ホストが応答する場合は、再起動して仮想マシンをパワーオフ状態にする必要がある可能性があります。すべての仮想マシンを vMotion を使用して他の ESXi に移行すると、ダウンタイムを回避できます。

Additional Information

ESXi へ仮想マシンをパワーオフする信号を送信する

仮想マシンは、プロセスに信号を送信することでコマンドラインから停止できます。

警告: この手順は、ESXi ホストにとって危険な場合があります。適切なプロセス ID(PID)を特定せず、誤ったプロセスを強制終了すると、予期せぬ結果となる場合があります。これらの手順を実行したあとでも問題が解決されない場合は、VMware テクニカル サポートにサポート リクエストを提出し、このナレッジ ベースの記事 ID(1014165)を問題の説明の中に記入してください。詳細については、「How to Submit a Support Request」を参照してください。


kill コマンドを使用して実行中の仮想マシン プロセスに信号を送信し、そのプロセスを停止することができます。
  1. ESXi コンソールで Tech Support モードにして、root としてログインします。詳細については、「Tech Support Mode for Emergency Support (1003677)」を参照してください。
  2. 次のコマンドを実行して、仮想マシン プロセスが ESXi ホスト上で実行しているかどうかを特定します。

    ps | grep vmx

    出力は次のようになります。

    7662 7662 vmx /bin/vmx
    7667 7662 vmx /bin/vmx
    7668 7662 mks:VirtualMachineName /bin/vmx
    7669 7662 vcpu-0:VirtualMachineName /bin/vmx


    vmx プロセスごとに 1 つずつ、いくつかの行が返されます。ターゲット仮想マシンの vmx 親プロセスを特定します。最初の列には PID が含まれており、2 つめの列には親 PID が含まれています。親プロセスのみを終了するようにしてください。各プロセスの親プロセス ID(PID)は、2 列目に一覧表示されており、この例では太字で示されています。次の手順のためにこの数字をメモしておきます。

    注意:修正を試みる仮想マシンのみに特有の行を特定していることを確認してください。問題となっている仮想マシン以外の仮想マシンでこのプロセスを続行すると、他の仮想マシンのダウンタイムの原因となります。
  3. vmx プロセスがリストに表示されている場合は、次のコマンドを実行してプロセスを終了します。

    kill ProcessID
  4. 30 秒待機してから手順 2 を繰り返し、プロセスを再度確認します。
  5. プロセスが終了していない場合は、次のコマンドを実行します。

    kill -9 ProcessID
  6. 30 秒待機し、プロセスを再度確認します。

これらのいずれかの方法を使用して仮想マシンをパワーオフできない場合、通常は ESXi ホストやバッキング ハードウェアなど、基盤のインフラストラクチャに問題があります。

ESXi ホストの問題が仮想マシンのシャットダウンを妨げていることが疑われる場合は、影響を受けていないすべての仮想マシンを vMotion でホストから移動し、パープル スクリーンでホストを強制終了します。詳細については、Using hardware NMI facilities to troubleshoot unresponsive hosts (1014767) を参照してください。

詳細については、次を参照してください。