vCenter Server で仮想マシンが無効または親なしと表示される
search cancel

vCenter Server で仮想マシンが無効または親なしと表示される

book

Article ID: 332663

calendar_today

Updated On:

Products

VMware vCenter Server VMware vSphere ESXi

Issue/Introduction

この記事では、親なしの仮想マシンについて、その発生の仕組み、および修正方法について説明します。この記事では、親なしの仮想マシンに関連する最も一般的なエラーと、それらの問題の解決方法を解説します。

Symptoms:
免責事項:これは英文の記事「Virtual machines appear as invalid or orphaned in vCenter Server (1003742)」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。

  • vCenter Server で仮想マシンが無効または親なしと表示される
  • VMware High Availability(VMware HA)ホスト障害が発生したあと、仮想マシンが無効または親なしと表示される
  • ESX ホストのメンテナンス モードが終了したあと、仮想マシンが無効または親なしと表示される
  • DRS 移行が失敗したあと、仮想マシンが無効または親なしと表示される
  • ストレージ障害のあと、仮想マシンが無効または親なしと表示される
  • vCenter Server と仮想マシンが常駐しているホストとの間で接続が失われたあと、仮想マシンが無効または親なしと表示される
  • 仮想マシンを起動しようとすると、次のいずれかのエラーが表示される。

    • Could not power VM, no swap file, failed to power on VM.
    • VMControl error -11: No such virtual machine.
    • A general system error occurred. The system returned on error. Communication with the virtual machine may have been interrupted

  • C:\ProgramData\VMware\VMware VirtualCenter\Logs\vpxd.log ファイルに、次のようなエントリが記録される。

    [11916 error 'vpxdvpxdVmomi'] [SoapInitWritelocked] GetVpxaInfo failed for host esxi01.domain.com
    [11916 info 'vpxdvpxdVmomi' opID=HB-host-01@3777-1a2b429b] [SoapInitWritelocked] Attempting to get Vpxa version for host esxi01.domain.com
    [10060 warning 'Default' opID=HB-host-01@3777-1a2b429b] Closing Response processing in unexpected state: 3
    [11916 info 'vpxdvpxdHostAccess'] [VpxdHostAccess] Failed to get VpxaCnxInfo over SOAP version vpxapi.version.version1 for host esxi01.domain.com:Invalid response code: 503 Service Unavailable


    :前述のログの引用は単なる例です。日付、時間、および環境変数は、環境によって異なる場合があります。


Environment

VMware vCenter Server 4.1.x
VMware vSphere ESXi 5.5
VMware vSphere ESXi 5.0
VMware ESXi 3.5.x Installable
VMware VirtualCenter 2.5.x
VMware vCenter Server 5.0.x
VMware ESXi 4.0.x Installable
VMware ESXi 4.1.x Installable
VMware ESXi 4.1.x Embedded
VMware vCenter Server 4.0.x
VMware ESX Server 3.5.x
VMware ESXi 4.0.x Embedded
VMware ESXi 3.5.x Embedded
VMware vCenter Server 5.1.x
VMware ESX 4.1.x
VMware vSphere ESXi 5.1
VMware ESX 4.0.x
VMware vCenter Server 5.5.x

Resolution


vCenter Server で、ターゲットが親なしの仮想マシンあるいは無効となった仮想マシンが見つかる場合があります。親なしの仮想マシンは、vCenter Server データベースには存在しますが、ESX ホストには存在することがありません。また、vCenter Server が想定する ESX ホスト以外の ESX ホストにある仮想マシンも、親なしとして表示されます。

このような状況では、仮想マシンが無効または親なしとして表示される可能性があります。この問題を解決するには、それぞれの状況についてのトラブルシューティング手順を参照してください。

vMotion または VMware DRS 移行のあと


  1. SSH を使用してソースおよびターゲットの ESX/ESXi ホストに接続します。詳細は、「Opening a command or shell prompt (1003892)」を参照してください。
  2. vmware-cmd -l コマンドを使用して、親なしの仮想マシンが vCenter Server によって報告されたものと同じ ESX ホストに登録されていないかを確認します。これは、ソース マシンであると考えられます。仮想マシンがそのホスト上に登録されていない場合は、vmware-cmd -l コマンドを使用して、それがターゲット ESX ホストに登録されているかどうかを確認します。

    :ESXi では、vmware-cmd -l コマンドの代わりに vim-cmd vmsvc/getallvms コマンドを使用します。

  3. 仮想マシンがターゲット ESX/ESXi ホストに登録されている場合:

    1. 次のコマンドを実行し、vpxa および ESX ホスト管理サービスを再起動します。

      service mgmt-vmware restart

      詳細については、「Virtual machines unexpectedly reboot after issuing the "mgmt-vmware restart" command (7301769)」を参照してください。

      service vmware-vpxa restart

      :ESXi で、/sbin/services.sh コマンドを使用してホスト上の管理サービスを再起動します。

    2. vCenter Server Service を再起動します。詳細については、「Stopping, starting, or restarting vCenter services (1003895)」を参照してください。

  • ESX/ESXi 上の親なしの仮想マシンに関連する問題ではほとんどの場合、この手順で問題が解消します。
  • ソースとターゲットの ESX/ESXi ホスト間の時間差がないことを確認します。
これらの手順を完了したあと、仮想マシンを起動しようとすると次のエラーが表示される場合があります。
  • A general system error occurred. The system returned on error. Communication with the virtual machine may have been interrupted.
  • VMControl error -11: No such virtual machine.
次の手順にしたがって、エラーを解消してください。
  1. vmware-cmd -s コマンドを使用して、仮想マシンを登録します。

    :コマンドが VMControl error -11: No such virtual machine エラーで失敗しない場合は、手順 5 に進みます。

    また、データストア ブラウザで仮想マシンの .vmx ファイルを右クリックし、[ゲストの登録] を選択することで、仮想マシンを登録することもできます。

    詳細については、「Registering or adding a virtual machine to the inventory on vCenter Server or on an ESX/ESXi host (1006160)」を参照してください。

  2. 次のコマンドを使用して、コマンド ラインから仮想マシンを起動します。

    vmware-cmd config_path start

    ここで、config_path は、vmware-cmd –l で決定した構成ファイルのパスです。

    コマンド ラインを使用して ESXi ホスト上の仮想マシンをパワーオンする方法については、「Powering on an ESX/ESXi host's virtual machine (1003738)」を参照してください。

  3. 仮想マシンの .vmx ファイルを表示して、ファイルに有効な構成パラメータがあることを確認します。また、ファイルに含まれている文字が UTF-8 文字のみであることも確認します。

    :可能であれば、.vmx ファイルと別の仮想マシンの .vmx ファイルを比較します。

  4. 元の仮想マシンの仮想ディスクを使用して新しい仮想マシンを作成します。
  5. 新しい仮想マシンをパワーオンします。

VMware HA ホスト障害が発生したあと、あるいは ESX ホストのメンテナンス モードが終了したあと


  1. vCenter Server から ESX ホストを削除します。

    1. vCenter Server インベントリ内で指定された ESX/ESXi ホストを選択します。
    2. ESX/ESXi ホストを右クリックし、[切断] を選択します。
    3. ESX/ESXi ホストが切断されたら、ホストをもう一度右クリックし、[削除] を選択します。

  2. ESX ホストのサービス コンソールから次のコマンドを実行し、vCenter Server エージェントと VMware HA エージェントを削除します。

    export LGTO_AAM_VMWARE_REMOVAL=1
    rpm -e LGTOaama
    rpm -e LGTOaamvm
    rpm -e VMware-vpxa


  3. ESX/ESXi ホストを vCenter Server に再度追加します。

    1. ESX/ESXi ホストに追加するクラスタ、データセンターまたはファームを選択します。
    2. クラスタ、データセンター、またはファームを右クリックし、[追加] を選択します。
    3. ESX/ESXi ホストの IP アドレスを入力します。ホストを追加するために十分な権限を持つユーザー名とパスワードを入力する必要があります。
    4. [ホストの追加] ウィザードの手順を完了させます。
仮想マシンを起動しようとするときにこのエラーが表示される場合:
  • Could not power VM, no swap file, failed to power on VM when trying to start them
次の手順を実行します。
  1. 仮想マシンのプロセスを実行し、そのファイルをロックしているサーバ ホストが見つかるまで、各 ESX ホストで ps -auxwww | grep -i vm_name コマンドを実行します。

    :ESXi の場合のコマンドは次のとおりです。

    ps | grep vmx

  2. その ESX ホスト上で service vmware-vpxa restart コマンドを実行します。
  3. VMware VirtualCenter Server サービスを再起動します。
これらの手順を実行しても問題が解決しない場合:
  1. 仮想マシンをパワーオフします。
  2. SSH クライアントを使用して ESX/ESXi サービス コンソールにアクセスします。
  3. テキスト エディタを使用して、仮想マシンの構成ファイル (.vmx) を開きます。デフォルトの場所は、次のとおりです。

    /vmfs/volumes/datastore_name/vm_name/vm_name.vmx

  4. 構成ファイル内で参照されているスワップ ファイルの場所を削除します。これは、次のように表示されます。

    sched.swap.derivedName = ""

  5. ファイルを保存します。
  6. 仮想マシンのディレクトリから既存のスワップ ファイルの名前を変更するか、該当ファイルを削除します。
  7. 仮想マシンを登録解除し、変更を適用するために再登録します。詳細については、「Registering or adding a virtual machine to the inventory on vCenter Server or on an ESX/ESXi host (1006160)」を参照してください。
  8. 仮想マシンをパワーオンします。

仮想マシンが vCenter Server の外側で削除された場合


vCenter Server がダウンしている場合は、VMware Management Interface、ESX/ESXi ホストに直接接続された vSphere Client、またはサービス コンソールを使用して仮想マシンの構成ファイルを削除することで、仮想マシンを削除できます。これらの仮想マシンは、仮想マシンを右クリックして [削除] を選択することで、vCenter Server から削除することができます。削除オプションが使用できない場合は、「Deleting an orphaned virtual machine when the Remove option is not available (1011468)」を参照してください。

:構成ファイルが削除されても仮想ディスクが残っている場合は、VMware Management Interface または vSphere Client を使用して仮想マシンを再度作成し、既存の仮想ディスクを新たに作成された .vmx ファイルに添付することもできます。

移行中に vCenter Server が再起動された場合


これは一時的な状況です。起動中、vCenter Server はすべてのホストに再接続します。vCenter Server がダウンしている間に移行が完了している場合、vCenter Server がその仮想マシンのターゲット ホストへの接続を確立するまで、仮想マシンは、親なしとして報告される可能性があります。

同時に再配置するようスケジュール設定された仮想マシンが多すぎる場合


ODBC のタイムアウトが、データベース内のエラーの原因となる可能性があります。ODBC のタイムアウトを解決するには:
  1. 元の仮想マシンをパワーオンできることを確認したあと、親なしの仮想マシンを削除します。
  2. vCenter Server のコンソールで [仮想マシンの削除] をクリックし、仮想マシンとその親なしの仮想マシンを vCenter Server データベースから削除します。

ESX/ESXi ホストのローカル ディスク(特に root パーティション)がいっぱいになったときに仮想マシンを削除しようとした場合


親なしの仮想マシンは、[インベントリ] で仮想マシンを右クリックして削除する必要があります。

ホストの訂正の詳細については、「Investigating disk space on an ESX or ESXi host (1003564)」を参照してください。

仮想マシンの移動またはパワーオンの 1 時間以内にホストを再起動した場合


仮想マシンが移動またはパワーオンされてから 1 時間以内にホストを再起動すると、vmInventory.xml ファイルが保存されず、hostd は、これらの仮想マシンをホストに登録されているという報告を行いません。HA 対応クラスタで、この状態が影響するのは HA の再起動を無効にしている仮想マシンのみです。

詳細については、「Virtual machines are orphaned after rebooting the ESXi host on which they reside (2013301)」を参照してください。

.vmx ファイルに特殊文字または不完全な行項目のエントリが含まれている場合


テキスト ビューアを使用して、.vmx ファイルの内容を確認します。不完全な行や末尾のスペース、あるいは特殊文字が含まれている場合:
  1. .vmx ファイルのバックアップ コピーを作成します。
  2. テキスト エディタを使用し、不完全な行を削除したり、末尾のスペースや特殊文字を削除します。
  3. vCenter で、仮想マシンを右クリックし、[インベントリからの削除] を選択します。
  4. vCenter Server で、データストアを参照し、仮想マシンの .vmx を見つけます。
  5. 仮想マシンを右クリックし、[インベントリへの追加] をクリックします。
この手順を終えたあと、仮想マシンは正常に表示されるようになります。パワーオンしようとしたときに「仮想マシンの質問」プロンプトが表示された場合は、デフォルトで回答すると、仮想マシンが正常にパワーオンします。

単一ホスト上にあるすべての仮想マシンを同時に再ロードする場合

次のスクリプトは、単一ホスト上の無効な仮想マシンをすべて同時に再ロードします。

for a in $(vim-cmd vmsvc/getallvms 2>&1 |grep invalid |awk '{print $4}'|cut -d \' -f2);do vim-cmd vmsvc/reload $a;done




Additional Information

再配置オプションを使用して vSphere Client で親なし仮想マシンをリカバリするなどの、親なし仮想マシンのトラブルシューティングの詳細については、『vSphere Troubleshooting Guide』を参照してください。

トラブルシューティングの詳細については、「Troubleshooting a failure to deploy or undeploy a virtual machine in VMware vCenter Lab Manager (1006336)」を参照してください。Virtual machines appear as invalid or orphaned in vCenter Server