<embed allowfullscreen="true" allowscriptaccess="always" height="385" src="https://www.youtube.com/v/RmSB2s1lWvg&hl=en_US&fs=1&" type="application/x-shockwave-flash" width="640">
警告:この記事に記載されているセクションとステップを順番どおりに実行してください。セクションまたはステップをスキップしないでください。各ステップは仮想マシンに影響を及ぼす可能性があります。
仮想マシンをパワーオフする
コマンド ラインを使用する必要があるかどうかを調べるため、仮想マシンをパワーオフします。
- Virtual Infrastructure Client または vSphere Client で vCenter Server に接続します。仮想マシンを右クリック して、「パワーオフ」 をクリックします。
- vSphere Client で直接 ESX ホストに接続します。 仮想マシンに右クリック して、「パワーオフ」 をクリックします。
これらの効果がない場合、コマンド ラインの方法を使用する必要があります。
仮想マシンの状態を調べる
- 仮想マシンがどのホスト上で稼動しているだを調べます。vSphere Client のページにある、仮想マシンの 「サマリ」 タブでこの情報を表示します。
- SSH クライアントを使用して、root アカウントで ESX ホストにログインします。
- 今のホストで仮想マシンが稼動していることを調べるため、次のコマンドを実行 します。
# vmware-cmd -l
このコマンドは ESX ホストで稼動している各仮想マシンへのフル パスを出力します。仮想マシンがリストに表示されていることを確認して、この手順で使用するフル パスを記録してください。
例:
# /vmfs/volumes/<UUID>/<仮想マシンのディレクトリ名>/<仮想マシン名>.vmx
- ESX ホストが認識している仮想マシン稼動状況を調べるには、次のコマンドを実行します。
# vmware-cmd <パス<SPAN style="FONT-FAMILY: Courier New">.vmx> getstate
コマンド の出力が 「getstate() = on」の場合、vCenter Server はホストとの通信に不具合がある可能性があります。シャット ダウン手順を完了するため、この問題点を修正する必要があります。
コマンドの出力が 「getstate() = off」の場合、ESX ホストが仮想マシンを実行していることを認識していない可能性があります。この記事では、問題点を修正するさらなる手がかりを提供しています。
「vmware-cmd」 コマンド を使用して仮想マシンをパワーオフする
注意:トラブルシューティングのために仮想マシンのログを収集したい場合はこのセクションのステップは実行しないでください。
この手順は ESX のコマンド ライン ツールを利用して、仮想マシンを正常にパワーオフしようとします。仮想マシンのプロセスが正常に稼動していて、アクセスできる状況であれば、このコマンドは成功に終わります。失敗で終わった場合、仮想マシンのプロセスが正常に稼動していない可能性があります。さらなるトラブルシューティングが必要になることもあります。
- ESX ホストのサービス コンソールで次のコマンドを実行してください。
# vmware-cmd <パス<SPAN style="FONT-FAMILY: Courier New">.vmx> stop
注:<パス<SPAN style="FONT-FAMILY: Courier New">.vmx> は前述のセクションで調べた構成ファイルへのフル パスです。次のコマンドを使用して、終了したかどうかを確認します。
vmware-cmd <パス<SPAN style="FONT-FAMILY: Courier New">.vmx> getstate
- ESX ホストのサービス コンソールで次のコマンドを実行してください。
# vmware-cmd <パス<SPAN style="FONT-FAMILY: Courier New">.vmx> stop hard
注:<パス<SPAN style="FONT-FAMILY: Courier New">.vmx> は前述のセクションで調べた構成ファイルへのフル パスです。次のコマンドを使用して、終了したかどうかを確認します。
vmware-cmd <パス<SPAN style="FONT-FAMILY: Courier New">.vmx> getstate
- まだ仮想マシンにアクセスできない状態であれば、次のセクションに進んでください。
「vm-support」 スクリプトを使用して、診断情報の収集中に仮想マシンをパワーオフする
問題点の原因を調べるには、次の手順を実行してください。 このコマンドの目的は、診断情報を収集中に仮想マシンをパワーオフさせることです。誤って実行した場合、システムに影響を与えることがあるので、ステップを順番どおりに実行してください。
まずこの手順を行なってください。
- 次のコマンドを使用して、ワールド ID を特定します。
# vm-support -x
- 次のコマンドを使用して、ホストのルート ディレクトリで仮想マシンのワールド ID を強制終了します。
# vm-support -X <ワールド <SPAN style="FONT-FAMILY: Courier New">ID>
仮想マシンを終了させるまで 30 分以上かかることがあります。破損することを回避するため、根気を持ち行ってください。
注:このコマンドは仮想マシンを終了させるためのいくつかの異なる方法を試みます。その際、このコマンドはあらかじめ設定された期間を待機します。タイムアウト値を 0 に構成するには、「vm-support」 コマンドに 「-d0」 オプションを渡します。
ESX 3.x のホストで前述の手順が失敗した場合は、次の手順を実行してください。
- 対象仮想マシンの VMID を調べるため、次のコマンドを使用してすべての稼動している仮想マシンをリストします。
# cat /proc/vmware/vm/*/names
- 次のコマンドを使用して、マスターのワールド ID を調べます。
# cat /proc/vmware/vm/####/cpu/status | less
- 矢印キーを使ってグループ フィールドが見えるまで右方向にスクロールします。次のように表示されます。
Group
vm.####
- グループ ID を次のコマンドで使用して、仮想マシンを終了させます。
# /usr/lib/vmware/bin/vmkload_app -k 9 ####
ESX 4.x のホストの場合で前述の手順が失敗した場合は、次の手順を実行してください。
- 対象仮想マシンの vmxCartelID を調べるため、次のコマンドを使用してすべての稼動している仮想マシンのリストします。
# /usr/lib/vmware/bin/vmdumper -l
- 仮想マシン名が見えるまで下方向にスクロールします。次のように出力されます。
vmid=5151 pid=-1 cfgFile="/vmfs/volumes/4a16a48a-d807aa7e-e674-001e4ffc52e9/mdineeen_test/vm_test.vmx" uuid="56 4d a6 db 0a e2 e5 3e-a9 2b 31 4b 69 29 15 19" displayName="vm_test" vmxCartelID=####
- vmxCartelID を次のコマンドで使用して、仮想マシンを終了させます。
# /usr/lib/vmware/bin/vmkload_app -k 9 ####
ESX のコマンド ラインを使用して仮想マシンを強制終了する
この記事に記載されているステップを使用しても仮想マシンがパワーオフしない場合、プロセスが制御できなくなっている可能性があります。コマンド ラインにて手動でプロセスを強制終了させる必要があります。
注意:この手順は ESX ホストに障害を発生させる可能性があります。適切なプロセス ID (PID)を特定しないと、別のプロセスを強制終了してしまい、予期しない結果になる可能性があります。次の手順に不安がある場合、VMware テクニカル サポートに問い合わせし、サービス リクエスト (SR) を発行してください。SR の作成時に、この記事番号を記入してください。
- ESX ホスト上で仮想マシンのプロセスが稼動しているかどうかを確認するには、次のコマンドを実行します。
# ps auxwww |grep -i <仮想マシン名>.vmx
「.vmx」 のプロセスが稼動している場合、コマンドの出力は次のように表示します。
root 3093 0.0 0.3 2016 860 ? S< Jul30 0:17 /usr/lib/vmware/bin/vmkload_app /usr/lib/vmware/bin/vmware-vmx -ssched.group=host/user -# name=VMware ESX Server;version=3.5.0;licensename=VMware ESX Server;licenseversion=2.0 build-158874; -@ pipe=/tmp/vmhsdaemon-0/vmx569228e44baf49d1; /vmfs/volumes/49392e30-162037d0-17c6-001f29e9abec/</SPAN><仮想マシンのディレクトリ名>/<仮想マシン名>.vmx
プロセス ID (PID) はボールドで表示されています。この例では、PID が 3093 です。次の手順に使用しますので、この番号を記録してください。
注意:修復したい仮想マシンの行のみを確実に特定してください。他の仮想マシンにこの手順を続けると、他の仮想マシンのダウンタイムにつながる可能性があります。
「.vmx」 プロセスがリストに表示されている場合、仮想マシンがプロセスを制御できなくなっている可能性があり、手動でプロセスを強制終了させる必要があります。
- プロセスを強制終了するには、次のコマンドを実行します。
# kill <PID>
- 30 秒を待って、もう一度プロセスを確認します。
- 終了していない場合、次のコマンドを実行します。
# kill -9 <PID>
- 30 秒を待って、もう一度プロセスを確認します。
- 可能な場合は、仮想マシンを別のホストに移行して、そのホストから kill 命令を試みる必要がある場合もあります。
- 終了していない場合、プロセスをクリアするように ESX ホストの再起動が必要になる可能性があります。これは最後の手段となりますので、この記事の前述にあるステップが効果がなかった場合に実行してください。