Scheduler finds new host using targeted live migration
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Invalid
|
Undecided
|
Unassigned |
Bug Description
I'm using the master branch of Havana for the basis of this defect, although it's probably existed forever. :-)
Scenario
----------
1. Using the RetryFilter
2. In nova.conf, scheduler_
3. Invoke a live-migration in a multi-host environment via [nova live-migration <vm> <host>], indicating the destination host name that the VM should move to.
Problem
---------
The issue is that the specified host encountered an error for the live migration, but because RetryFilter was enabled, the "failed" host is added to the "exclusion list", so the VM winds up being migrated elsewhere. While this type of behavior is desirable for untargeted deployments and relocations (i.e., in which no host is specified), it's problematic when a very specific host is desired.
In this scenario, the migration ends up "succeeding", albeit it on an "unexpected" host. From an end-user perspective, I think that when targeted operations such as this are invoked, the operation should fail regardless of whether RetryFilter is enabled.
After a quick scan of the code in nova/conductor/ tasks/live_ migrate. py, it seems like we could update the conductor LiveMigrationTask such that if the destination is passed on the constructor, we could set a "targeted" flag or some such. And then the check_not_ over_max_ attempt( ) could take this into consideration as well.