Revision history [back]

click to hide/show revision 1
initial version

nova scheduler scheduling instance on invalid host

I have an openstack setup with 1 controller and 2 computes. One of the compute nodes is "out-of-service", meaning there is not nova-compute running on the host. The host is still up and accessible.

Now, I have an automated script which exercises the stack by trying to create instances on the hosts. It uses the python nova client APIs to get the available list of of hosts, which still returns the bad compute, and when trying to create an instance on the compute, it hangs.

I tried following the nova-scheduler and nova-api code paths, and I see that in the scheduler, the filter_properties are set with forced_host set to the bad compute node, which is used to start the instance.

I have verified that all my filters on the controller are turned on, and I can see that it is able to get the host details like available RAM, disk etc, but the compute is not running on the host.

From my client script, I have no way of figuring out if the host is bad or not. So what is the correct behavior here. The current behavior is definitely not correct, as there is no indication of error except for going to the controller and going through the logs.

Ideally I would like to see that in the hypervisor list, the bad host is not shown up so I don't pick it. Also is there a way manually to remove a compute from the stack in this case.

regards, Behzad

nova scheduler scheduling instance on invalid host

I have an openstack setup with 1 controller and 2 computes. One of the compute nodes is "out-of-service", meaning there is not nova-compute running on the host. The host is still up and accessible.

Now, I have an automated script which exercises the stack by trying to create instances on the hosts. It uses the python nova client APIs to get the available list of of hosts, which still returns the bad compute, and when trying to create an instance on the compute, it hangs.

I tried following the nova-scheduler and nova-api code paths, and I see that in the scheduler, the filter_properties are set with forced_host set to the bad compute node, which is used to start the instance.

I have verified that all my filters on the controller are turned on, and I can see that it is able to get the host details like available RAM, disk etc, but the compute is not running on the host.

From my client script, I have no way of figuring out if the host is bad or not. So what is the correct behavior here. The current behavior is definitely not correct, as there is no indication of error except for going to the controller and going through the logs.

Ideally I would like to see that in the hypervisor list, the bad host is not shown up so I don't pick it. Also is there a way manually to remove a compute from the stack in this case.

regards, Behzad