controller nova resize instance dont' work openstack Pike
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Invalid
|
Undecided
|
Unassigned |
Bug Description
Openstack Pike OpenSUSE 42.3 with KVM Hypervisor.
command exec:
nova --debug resize --poll 99624d22-
OUTPUT:
DEBUG (session:727) POST call to compute for http://
DEBUG (shell:951) No valid host was found. No valid host found for resize (HTTP 400) (Request-ID: req-638be505-
Traceback (most recent call last):
File "/usr/lib/
OpenStackCo
File "/usr/lib/
args.
File "/usr/lib/
server.
File "/usr/lib/
return self.manager.
File "/usr/lib/
return self._action(
File "/usr/lib/
info=info, **kwargs)
File "/usr/lib/
return self.api.
File "/usr/lib/
return self.request(url, 'POST', **kwargs)
File "/usr/lib/
raise exceptions.
BadRequest: No valid host was found. No valid host found for resize (HTTP 400) (Request-ID: req-638be505-
ERROR (BadRequest): No valid host was found. No valid host found for resize (HTTP 400) (Request-ID: req-638be505-
Log service:
nova.scheduler.
Got no allocation candidates from the Placement API. This may be a temporary occurrence as compute
nodes start up and begin reporting inventory to the Placement service. select_destinations
...
File "/usr/lib/
return func(*args, **kwargs)
File "/usr/lib/
raise exception.
NoValidHost: No valid host was found.
: NoValidHost_Remote: No valid host was found.
Traceback (most recent call last):
Configuration:
Enable in Controller and Compute node:
allow_migrate_
allow_resize_
nova-status upgrade check => work
+------
| Upgrade Check Results |
+------
| Check: Cells v2 |
| Result: Success |
| Details: None |
+------
| Check: Placement API |
| Result: Success |
| Details: None |
+------
| Check: Resource Providers |
| Result: Success |
| Details: None |
+------
when deploy a instance work don't problem... but didn't resize flavor. the quota is fine, the service also for example nova-placement-api, nova-conductor, nova-compute, nova-scheduler all state up.
nova service-list
+------
| Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason | Forced down |
+------
| 19d81123-
| 42b9268b-
| 498724bf-
| 5f0fb48f-
| 3f2a0a8b-
| a6bcc0a0-
| 590c6d3b-
+------
...
Repositorio : Pike
Nombre : openstack-
Versión : 16.1.1~dev63-1.1
Arquitectura : x86_64
Repositorio : Pike
Nombre : openstack-nova-api
Versión : 16.1.1~dev63-1.1
Arquitectura : x86_64
Repositorio : Pike
Nombre : openstack-
Versión : 16.1.1~dev63-1.1
Arquitectura : x86_64
Repositorio : openSUSE-
Nombre : qemu-kvm
Versión : 2.9.1-41.1
Arquitectura : x86_64
This is the main issue:
"Got no allocation candidates from the Placement API. This may be a temporary occurrence as compute destinations"
nodes start up and begin reporting inventory to the Placement service. select_
Starting in Pike, the FilterScheduler is asking the Placement service for eligible compute nodes as destinations for the resize based on the new flavor. The error is saying that Placement can't find any eligible target hosts for the resize.
You might be hitting a known issue in Pike, see the last point in the second bullet here:
https:/ /docs.openstack .org/nova/ latest/ user/placement. html#pike- 16-0-0
"For a resize to the same host, allocations are summed on the single compute node. This could pose a problem if the compute node has limited capacity. Since resizing to the same host is disabled by default, and generally only used in testing, this is mentioned for completeness but should not be a concern for production deployments."
You could attempt to debug this using the "openstack resource provider inventory list" CLI:
https:/ /docs.openstack .org/osc- placement/ latest/ cli/index. html#resource- provider- inventory- list
The resource provider UUID is the same as the compute node UUID, which you can get from the os-hypervisors API starting with microversion 2.53:
https:/ /developer. openstack. org/api- ref/compute/ #list-hyperviso rs
So if you're resizing to the same host, you'd want to find out which compute node the instance is currently running on, get it's UUID and then query the "openstack resource provider inventory list" CLI to check the current inventory on that node, and you can also get the current allocations against that node using:
https:/ /docs.openstack .org/osc- placement/ latest/ cli/index. html#resource- provider- show
Using the --allocations option. If (inventory - allocations) < new_flavor for resize, then that's why you're getting NoValidHost for that compute node.