You might see the no valid host was found error message when a VM deployment fails. This problem might be a partial deployment failure even though a node should be able to satisfy the request based on available resources and hypervisor type required to deploy this image.
To determine the root cause, ensure that the compute node is in debug mode by setting debug=true and verbose=true in the /etc/nova/nova.conf file.
If debug mode is disabled, add the following lines to the /etc/nova/nova.conf file:
debug=true verbose=true
Restart the nova-compute service:
nova# svcadm restart nova-compute
For each compute node, search for DEBUG: run_method: spawn() in the compute node's log to determine whether the compute node received the request. Run this command on your active compute nodes.
nova# tail -f `svcs -L nova-compute` | grep "DEBUG: run_method: spawn()"
If you see a line like the following, the request is reaching the compute node and you have identified the likely location of the problem:
2016-07-07 13:48:58.319 29186 DEBUG nova.virt.ldoms.driver [req-1440679a-771d-4e21-aca7-7b42f6a35648 d225a5a7434f4685a9f47326a2e5ff9f 3255d9556a354e8589b9a0a8475d7c0e - - -] DEBUG: run_method: spawn() spawn /usr/lib/python2.7/vendor-packages/nova/virt/ldoms/driver.py:954
If a spawn() occurs, continue to debug the problem. See Troubleshooting Nova Compute Service Issues.
If you receive the No valid host found error but never see a spawn() line, the problem is probably on the cloud controller. To continue debugging this failure, see Troubleshooting Other OpenStack Issues.