Earlier  
Posted Nick Remark
#openstack-nova - 2018-03-19
19:58:16 mriedem i only see apply_migration_context called in evacuate and resize flows, not live migration,
19:58:19 mriedem is it set in the RT?
19:58:37 dansmith not that I know of, so maybe we never set it for live migration?
19:59:09 sean-k-mooney[m] Right so it kindof makes sense when you activate the binding on the destination it deactivates the binding for the source which i guess results in vif unbound for the old host. How are we getting the vif on the source node that we pass to _nova_to_osvif_vif_unbound we should probably be cache the original vif object in the migration object
19:59:35 mriedem right we don't do a move_claim for live migration,
19:59:41 mriedem and RT.move_claim is what sets migration_context on the instance
20:00:22 mriedem sean-k-mooney[m]: heh way ahead of you https://review.openstack.org/#/c/515423/10/nova/objects/migrate_data.py@47 :)
20:01:43 sean-k-mooney[m] :)
20:02:13 mriedem artom: fyi re the migration_context thing, since you wrote https://review.openstack.org/#/c/371048/
20:02:28 mriedem but i think ^ was just for evac cases,
20:02:34 mriedem where the source is dead so we can't rpc there
20:02:42 dansmith blast from ye olde past
20:03:37 mriedem reminds me i need to touch up some dings in the woodwork with olde english
20:12:22 SamYaple other than a --hard reboot, is there a way to regenerate the libvirt.xml config? we changed the vnc listening address but we cannot migrate/live-migrate some instances due to pci passthrough of a sata controller
20:14:13 sean-k-mooney2 SamYaple: there is no way via nova to regenerate the xml that wont be equivalent to a reboot if you cant live migrate
20:14:44 sean-k-mooney2 SamYaple: you could likely just do a domain xml update out of band.
20:15:02 SamYaple yea unfortunately not, but not for technical reasons
20:15:07 SamYaple sean-k-mooney2: awesome. thought not. thanks for confirming
20:16:13 sean-k-mooney2 SamYaple: if you update the vnc adress in the nova.conf you will also need to restart nova compute as i dont think that is one of the mutable config options either.
20:17:35 SamYaple oh no worries. its all rolled out, just in the "applying" phase
20:17:42 SamYaple we already live-mgirated 90% of the instances
20:26:54 mriedem sean-k-mooney[m]: yeah so i think changing the port binding changes the status,
20:27:07 mriedem this is the source host neutron agent 2 seconds after nova updated the port binding to point at the dest host
20:27:09 mriedem http://logs.openstack.org/71/551371/6/check/legacy-tempest-dsvm-multinode-live-migration/4d466b2/logs/screen-q-agt.txt.gz#_Mar_19_14_25_08_374523
20:27:15 mriedem binding host and status changes on the port in there
20:28:25 mriedem which according to this: https://github.com/openstack/neutron/blob/f2dced777acb7d87dc7048c3efec59dadf37930d/neutron/notifiers/nova.py#L186 will trigger a network-vif-unplugged event
20:29:39 sean-k-mooney2 right so looking at that ports binding_details its an ovs vif with ovs_hybrid_plug": true so os-vif will plug the vif on the destination ovs during pre livemigrate and neutron will emit the vif plugged events as it wires them up
20:30:01 mnaser does anyone know if there's some sort of variable you can use in docs to output the current version/release
20:30:11 mnaser reason - https://docs.openstack.org/nova/queens/cli/nova-manage.html -- this doc and many others have old versions listed
20:30:21 mnaser i can update it manually but it'll probably be forgotten again :>
20:31:34 mriedem mnaser: https://review.openstack.org/#/c/553903/
20:32:45 mnaser mriedem: oh well there you go, that's a solution
20:33:58 sean-k-mooney2 mriedem: ok so the vif plugged event is coming from the pre livemigrate when os-vif adds the port to ovs and the unplug event is coming form activateing the binding on the destenation host. is that the order it happens in
20:35:14 openstackgerrit Merged openstack/nova master: Don't filter out sibling sets with one core https://review.openstack.org/537361
20:37:11 mriedem sean-k-mooney2: yes i think so,
20:37:25 mriedem sean-k-mooney2: i'm confused as to why neutron thinks the port is unbound though
20:37:34 mriedem this is on both the source and dest neutron agent
20:37:35 mriedem http://logs.openstack.org/71/551371/6/check/legacy-tempest-dsvm-multinode-live-migration/4d466b2/logs/screen-q-agt.txt.gz#_Mar_19_14_25_08_821754
20:37:38 mriedem http://logs.openstack.org/71/551371/6/check/legacy-tempest-dsvm-multinode-live-migration/4d466b2/logs/subnode-2/screen-q-agt.txt.gz#_Mar_19_14_25_09_150483
20:38:33 sean-k-mooney2 subnode-2 is the source node correct
20:38:44 mriedem yes
20:38:59 sean-k-mooney2 this is where the vif is pulled on the destination in prelivemigrate http://logs.openstack.org/71/551371/6/check/legacy-tempest-dsvm-multinode-live-migration/4d466b2/logs/screen-n-cpu.txt.gz#_Mar_19_14_25_03_105245
20:41:35 mriedem this is where the source n-cpu changes the port binding host_id to the dest host http://logs.openstack.org/71/551371/6/check/legacy-tempest-dsvm-multinode-live-migration/4d466b2/logs/subnode-2/screen-n-cpu.txt.gz#_Mar_19_14_25_06_838681
20:41:44 mriedem in q-svc, i see this http://logs.openstack.org/71/551371/6/check/legacy-tempest-dsvm-multinode-live-migration/4d466b2/logs/screen-q-svc.txt.gz#_Mar_19_14_25_06_991106
20:41:52 mriedem Device cd0afcf3-c654-488e-b578-6d3c45f3a5a5 not bound to the agent host ubuntu-xenial-rax-dfw-0003055550
20:42:09 mriedem so i guess that's why the vif type is 'unbound'?
20:42:22 mriedem but i'm not sure why that is because we plugged the vif on the dest host before all that
20:48:04 sean-k-mooney2 well this is where we plug it on the destination in the q-agt log http://logs.openstack.org/71/551371/6/check/legacy-tempest-dsvm-multinode-live-migration/4d466b2/logs/screen-q-agt.txt.gz#_Mar_19_14_25_03_126952
20:49:08 sean-k-mooney2 and then right after it updates the vif_type to unbound http://logs.openstack.org/71/551371/6/check/legacy-tempest-dsvm-multinode-live-migration/4d466b2/logs/screen-q-agt.txt.gz#_Mar_19_14_25_04_008234
20:49:50 openstackgerrit Merged openstack/nova master: Ensure emulator threads are always calculated https://review.openstack.org/537363
20:50:13 openstackgerrit Merged openstack/nova master: [libvirt] Add _get_numa_memnode() https://review.openstack.org/529906
20:50:41 mriedem sean-k-mooney2: hmm yeah wtf
20:50:46 sean-k-mooney2 so its the neutron agent on the destination that is seting the status to down and vif_type to unbound.
20:51:25 sean-k-mooney2 it kind of makes sense. at this point the vif is still bound on the host and we have not activated the vif on the dest but we just plugged it
20:51:29 mriedem this is all before nova hits the lifecycle post-copy event and switches the port binding, so presumably this already all happens today during live migration
20:51:57 openstackgerrit Ed Leafe proposed openstack/nova master: Address issues raised in adding member_of to GET /a-c https://review.openstack.org/554357
20:51:59 edleafe efried: ^^ gift-wrapped just for you
20:52:58 sean-k-mooney2 mriedem: do we do the vif plugging in pre_livemigrate today or is it down after we bind the port on the destination after livemigration completes
20:53:34 mriedem the dest host plugs the vif in pre_live_migration today
20:53:55 mriedem source rpc calls to dest pre_live_migration, and then once that rpc call returns, the source starts live migrating the guest in the hypervisor
20:54:03 sean-k-mooney2 ok so ya we should be seeing the same bevavior.
20:54:09 mriedem this was part of the thing where the source host needs to wait for the vif plugged event from the dest
20:54:23 mriedem before it starts transferring the guest
20:54:30 mriedem i haven't coded that part up yet
20:55:15 mriedem for all i know, given https://review.openstack.org/#/c/553035/ - can we even reliably wait for vif-plugged on the source if the host binding hasn't changed?
20:55:28 sean-k-mooney2 when you call self.network_api.migrate_instance_finish(context, instance,...) does that activate the port binding on the dest
20:55:30 mriedem or will opendaylight never send a vif-plugged event in that case?
20:55:50 mriedem sean-k-mooney2: it switches the binding host_id yeah, sec
20:56:18 mriedem https://github.com/openstack/nova/blob/master/nova/network/neutronv2/api.py#L2577
20:56:27 mriedem in this case, that host variable is the dest host
20:56:48 mriedem that's what we see here http://logs.openstack.org/71/551371/6/check/legacy-tempest-dsvm-multinode-live-migration/4d466b2/logs/subnode-2/screen-n-cpu.txt.gz#_Mar_19_14_25_06_838681
20:56:52 mriedem on the source host
20:57:01 sean-k-mooney2 mriedem: im not sure if odl will remit the event but i dont think that would be an unreasonable expectation.
20:57:40 mriedem sean-k-mooney2: from what i remember of the discussion leading up to https://review.openstack.org/#/c/553035/ with mnaser, ODL will only emit events for host binding changes, not vif unplug/plug
20:58:24 mriedem which really kind of kills us as the consumer of this workflow...
20:58:45 sean-k-mooney2 yes and when we activate the binding for the dest that should be considered a binding change as we update the host_id in the port bindings_details field on the port
21:00:05 mriedem yeah, but the plan was to not start migrating the guest in the hypervisor until the source got the event that the plug, initiated from the dest, is done
21:00:45 _ix Good afternoon, folks. Can anyone explain the pipeline from the fine work that's going into nova and the end repositories at say http://mirror.centos.org/centos/7/cloud/x86_64/openstack-pike/
21:01:14 sean-k-mooney2 mriedem: right so we might have to start the migrate on a timeout and have the event short circute it, instead of waiting
21:01:15 mriedem really kind of need an admin-only field on the port to tell clients, like nova, if we can expect vif plug events or not
21:02:03 _ix I'm only seeing latest as 16.0.3 in that repo -- is there a different repository that you mgith be able to recommend for 16.1.0 ?
21:02:10 mriedem sean-k-mooney2: we could, but then anyone using ODL is going to wait up to 5 minutes for an event that's not going to come
21:02:50 mriedem _ix: you could try asking in #openstack-rpm-packaging
21:03:03 sean-k-mooney2 mriedem: ill double check the odl code. ill be back in the office tomorrow so i can try and set up an odl environment
21:03:13 mriedem _ix: or maybe #rdo
21:03:34 mriedem sean-k-mooney2: ok for now i'm just going to neuter this lifecycle event callback code that calls migrate_instance_finish
21:05:02 sean-k-mooney2 well we can still activate the dest binding when we get the hyperviors event that it just paused the source and is about to unpause the dest right
21:05:20 sean-k-mooney2 we just dont wait for the vif plugged event
21:05:52 mriedem two separate issues,
21:06:11 mriedem i'm going to neuter the first right now because it's causing this vif unbound explosion in _post_live_migrate
21:06:32 mriedem the latter issue is not something we're hitting right now, but was in the plan as part of this spec
21:06:52 sean-k-mooney2 ah ok
21:17:48 openstackgerrit Merged openstack/nova master: Move placement exceptions into the placement package https://review.openstack.org/549862
21:17:51 _ix mriedem: Thanks for the tips.
21:27:28 jaypipes phew, my brain is melting today...
21:38:28 cdent was it the videophone jaypipes ?
21:40:14 edleafe efried: ugh - I had all those changes, and then rebased poorly after the original member_of patch merged. Fixing...
21:41:01 efried edleafe: Here to keep you honest. I feel your rebase pain, homey.
21:42:02 edleafe efried: heh, trying to keep things straight while half-paying attention to meetings
21:45:58 cdent efried: "I have looked at this." beyond that and the typos, do you think I'm on the right track?

Earlier   Later