This is intentional. As described in the code comment above the code you linked. When the migration is forced Nova does not use the scheduler / placement and therefore does not have knowledge what to do with allocations that are not on the root provider. The allocation on the root provider just blindly copied from src to dest.
Please note that providing a target host for live migration does not mean such migration needs to be forced. See https://docs.openstack.org /api-ref/compute/?expanded=live-migrate-server-os-migratelive-action- detail : host body string The host to which to migrate the server. If this parameter is None, the scheduler chooses a host. Warning Prior to microversion 2.30, specifying a host will bypass validation by the scheduler, which could result in failures to actually migrate the instance to the specified host, or over-subscription of the host. It is recommended to either not specify a host so that the scheduler will pick one, or specify a host with microversion >= 2.30 and without force=True set. -- So when you specify a host with microversion >= 2.30 and without force=True, then the scheduler and placement will be used so and you will not hit the limitation of complex allocations. Still please note that nova does not officially support sharing disk providers as we are not test that. So other issues might pop up. I'm closing this as Invalid as it is not a bug but an intentional behavior. If you disagree please set it back to New. ** Changed in: nova Status: New => Invalid -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to OpenStack Compute (nova). https://bugs.launchpad.net/bugs/1932213 Title: live migration failed with: The instance has complex allocations on the source host so move cannot be forced Status in OpenStack Compute (nova): Invalid Bug description: we are having 2 compute nodes and we want to those 2 compute nodes using nfs to share disk so there are 3 resource providers compute node1 for cpu/mem compute node2 for cpu/mem disk pool for shared storage now we want to live migrate the VM from compute 1 to compute 2 it's facing this issue live migration error: No valid host was found. Unable to move instance a0b9c704-ad31-4be7-8f39-6ccf399807c4 to host kvm4ci10. The instance has complex allocations on the source host so move cannot be forced https://github.com/openstack/nova/blob/master/nova/scheduler/utils.py#L802 seems this only happen when the live migration dest is specified (not given the dest is ok) but live migraiton to given host is a common use case as far as we can tell.. To manage notifications about this bug go to: https://bugs.launchpad.net/nova/+bug/1932213/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

