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 に通知するリソースが一致しなくなります。その際には、以下の点をチェックしてください。
イントロスペクションが正常に完了することを確認してください。または、各ノードに必要な Ironic ノードのプロパティーが含まれていることをチェックしてください。各ノードに以下のコマンドを実行します。
$ source ~/stackrc (undercloud) $ openstack baremetal node show [NODE UUID]
properties
JSON フィールドのcpus
、cpu_arch
、memory_mb
、およびlocal_gb
キーに有効な値が指定されていることを確認してください。使用する Nova フレーバーが、必要なノード数において、上記の Ironic ノードプロパティーを超えていないかどうかを確認します。
(undercloud) $ openstack flavor show [FLAVOR NAME]
-
openstack baremetal node list
の出力で、available
の状態のノードの数が十分かどうかを確認します。ノードの状態がmanageable
の場合は通常、イントロスペクションに失敗しています。 また、ノードがメンテナーンスモードではないことを確認します。
openstack baremetal node list
を使用してチェックしてください。通常、自動でメンテナーンスモードに切り替わるノードは、電源の認証情報が間違っています。認証情報を確認して、メンテナーンスモードをオフにします。(undercloud) $ openstack baremetal node maintenance unset [NODE UUID]
-
Automated Health Check (AHC) ツールを使用して、自動でノードのタグ付けを行う場合には、各フレーバー/プロファイルに対応するノードが十分に存在することを確認します。
openstack baremetal node show
の出力で、properties
フィールドのcapabilities
キーを確認します。たとえば、Compute ロールのタグを付けられたノードには、profile:compute
が含まれているはずです。 イントロスペクションの後に Ironic から Nova にノードの情報が反映されるには若干時間がかかります。これは通常、director のツールが原因です。ただし、一部のステップを手動で実行した場合には、短時間ですが、Nova でノードが利用できなくなる場合があります。以下のコマンドを使用して、システム内の合計リソースをチェックします。
(undercloud) $ openstack hypervisor stats show