rebuild instance will require additional resource on current compute node

Bug #1835379 reported by WANG Qian
6
This bug affects 1 person
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

description: updated
Chris Dent (cdent)
tags: added: resource-tracker scheduler
Revision history for this message
Matt Riedemann (mriedem) wrote :

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?

Changed in nova:
status: New → Incomplete
Revision history for this message
Matt Riedemann (mriedem) wrote :

OK I found something which might be the reason you're hitting this.

There was a fix that was backported to newton upstream:

https://review.opendev.org/#/q/I11746d1ea996a0f18b7c54b4c9c21df58cc4714b

Which causes a regression which was fixed and backported through to ocata but not newton because newton was end of life at that point:

https://review.opendev.org/#/q/I7fde8ce9dea16679e76b0cb2db1427aeeec0c222

So it looks like you'd need to backport that ocata fix to your internal newton branch:

https://review.opendev.org/#/c/550560/

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.