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