11.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]
properties
JSON フィールドの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