Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

15.6. "No Valid Host Found" エラーのトラブルシューティング

/var/log/nova/nova-conductor.log に、以下のエラーが含まれる場合があります。

NoValidHost: No valid host was found. There are not enough hosts available.

これは、Nova Scheduler が新規インスタンスをブートするのに適したベアメタルノードを検出できなかったことを意味します。このような場合、通常は、Nova が検出を想定しているリソースと Ironic が Nova に通知するリソースが一致しなくなります。その際には、以下の点をチェックしてください。

  1. イントロスペクションが正常に完了することを確認してください。または、各ノードに必要な Ironic ノードのプロパティーが含まれていることをチェックしてください。各ノードに以下のコマンドを実行します。

    $ source ~/stackrc
    (undercloud) $ openstack baremetal node show [NODE UUID]

    properties JSON フィールドの cpuscpu_archmemory_mb、および local_gb キーに有効な値が指定されていることを確認してください。

  2. 使用する Nova フレーバーが、必要なノード数において、上記の Ironic ノードプロパティーを超えていないかどうかを確認します。

    (undercloud) $ openstack flavor show [FLAVOR NAME]
  3. openstack baremetal node list の出力で、available の状態のノードの数が十分かどうかを確認します。ノードの状態が manageable の場合は通常、イントロスペクションに失敗しています。
  4. また、ノードがメンテナーンスモードではないことを確認します。openstack baremetal node list を使用してチェックしてください。通常、自動でメンテナーンスモードに切り替わるノードは、電源の認証情報が間違っています。認証情報を確認して、メンテナーンスモードをオフにします。

    (undercloud) $ openstack baremetal node maintenance unset [NODE UUID]
  5. Automated Health Check (AHC) ツールを使用して、自動でノードのタグ付けを行う場合には、各フレーバー/プロファイルに対応するノードが十分に存在することを確認します。openstack baremetal node show の出力で、properties フィールドの capabilities キーを確認します。たとえば、Compute ロールのタグを付けられたノードには、profile:compute が含まれているはずです。
  6. イントロスペクションの後に Ironic から Nova にノードの情報が反映されるには若干時間がかかります。これは通常、director のツールが原因です。ただし、一部のステップを手動で実行した場合には、短時間ですが、Nova でノードが利用できなくなる場合があります。以下のコマンドを使用して、システム内の合計リソースをチェックします。

    (undercloud) $ openstack hypervisor stats show