rebuild instance will require additional resource on current compute node
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Incomplete
|
Undecided
|
Unassigned |
Bug Description
Hi,
I have a question about resource claim during instance rebuild.
Description
===========
We have a stack with two VMs (each flavor is 2 vCPU) located on compute node A, and after that, compute node A now has only 1 vCPU left free.
Then, try to rebuild VM1.
Expected result
===============
VM1 rebuild successfully.
Actual result
=============
VM1 rebuild failed.
The fault message looks like:
"Build of instance xxxx aborted: Insufficient compute resources: Free vcpu 1.00 VCPU < requested 2 VCPU."
It seems rebuild will claim resource on the current compute node A with same flavor (i.e. 2 vCPU), right?
Since there is only 1 vCPU left, VM1 rebuild failed, and VM1's status became "Error".
Is this the expected behavior? If so, it means instance rebuild requires additional resources, correct?
And a further question is, if we rebuild these two VMs together, will the resource claim occurred one by one for each instance, or claim all at the same time (that is double of all VMs to be rebuilt on this host)?
Environment
===========
Openstack Newton
Please help to clarify.
Thank you.
Qian
Are you doing a rebuild or an evacuate operation? Rebuild should not perform a new claim since the flavor and host is not changing:
https:/ /github. com/openstack/ nova/blob/ newton- eol/nova/ compute/ manager. py#L2668
https:/ /github. com/openstack/ nova/blob/ newton- eol/nova/ compute/ manager. py#L2692
Newton has been end of life upstream for awhile, so there might be related fixes for some edge case on later branches like ocata or pike - are you able to recreate on a new branch, ideally something more recent like stable/stein or rocky?