Allocations are not managed properly in all evacuate scenarios
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
High
|
Matt Riedemann | ||
Pike |
Fix Committed
|
High
|
Matt Riedemann |
Bug Description
Evacuate has some gaps with respect to dealing with resource allocations in Placement:
1. If the user specifies a host with evacuate, conductor bypasses the scheduler and we don't create allocations on the destination host:
https:/
This could eventually lead to the claim failing on the destination compute:
https:/
This is similar to bug 1712008 where forcing a host during live migration bypasses the scheduler so allocations are not created in placement on the destination node. Before Pike this would be handled via the update_
2. If the user does not specify a host with evacuate, conductor will ask the scheduler to pick a host, which will also create allocations for that host via the scheduler. If the claim (or rebuild) fails on the destination node, we don't cleanup the allocation on the destination node even if the instance isn't spawned on it:
https:/
^ is pretty obvious that we should cleanup because the claim for resources failed.
This generic exception handling is harder to know if we should cleanup though since we'd need to know if the guest was spawned on it:
https:/
But since we don't set the instance.host/node to the current host/node it won't be reported there anyway:
https:/
Changed in nova: | |
assignee: | nobody → Matt Riedemann (mriedem) |
Is there a difference between providing setting the force flag in the API request? I guess in case of force=False the scheduler is involved somehow.