diff --git a/doc/source/troubleshooting/troubleshooting-overcloud.rst b/doc/source/troubleshooting/troubleshooting-overcloud.rst index 440da2aaa..d4137b89e 100644 --- a/doc/source/troubleshooting/troubleshooting-overcloud.rst +++ b/doc/source/troubleshooting/troubleshooting-overcloud.rst @@ -150,8 +150,9 @@ are all run on the Undercloud and assume a stackrc file has been sourced. $ nova show The most common error shown will reference the error message ``No valid host - was found``. This error is a catch all failure scenario. In this case, look - at the following log files for further troubleshooting:: + was found``. Refer to `No Valid Host Found Error`_ below. + + In other cases, look at the following log files for further troubleshooting:: /var/log/nova/* /var/log/heat/* @@ -167,3 +168,62 @@ are all run on the Undercloud and assume a stackrc file has been sourced. package and then generate a report:: $ sudo sosreport --all-logs + +No Valid Host Found Error +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Sometimes ``/var/log/nova/nova-conductor.log`` contains the following error:: + + NoValidHost: No valid host was found. There are not enough hosts available. + +"No valid host was found" means that the Nova Scheduler could not find a bare +metal node suitable for booting the new instance. + +This in turn usually means some mismatch between resources that Nova expects +to find and resources that Ironic advertised to Nova. + +A few things should be checked in this case: + +#. Introspection should have succeeded for you before, or you should have + entered the required Ironic node properties manually. + For each node in ``ironic node-list`` use + :: + + ironic node-show + + and make sure that ``properties`` JSON field has valid values for keys + ``cpus``, ``cpu_arch``, ``memory_mb`` and ``local_gb``. + +#. Nova flavor that you are using does not exceed the Ironic node properties + above for a required number of nodes. Use + :: + + nova flavor-show + + to compare. + +#. Make sure that enough nodes are in ``available`` state according to + ``ironic node-list``. Nodes in ``manageable`` state usually mean they + have failed introspection. + +#. Make sure nodes you're going to deploy to are not in maintenance mode. + Again, use ``ironic node-list`` to check. A node automatically going to + maintenance mode usually means wrong power credentials for this node. Check + them and then remove maintenance mode:: + + ironic node-set-maintenance off + +#. If you're using advanced profile matching with multiple flavors, make sure + you have enough nodes corresponding to each flavor/profile. Watch + ``capabilities`` key in ``properties`` field for ``ironic node-show``. + It should contain e.g. ``profile:compute``. + +#. It takes some time for nodes information to propagate from Ironic to Nova + after introspection. Our tooling usually accounts for it, but if you did + some steps manually, there may be a period of time when nodes are not + available to Nova yet. Check that + :: + + nova hypervisor-stats + + correctly shows total amount of resources in your system.