| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-10-09 | |||
| 18:59:43 | dansmith | but one downstream hack tries to find the migration, determine if it's a live one, so it can make better choices | |
| 19:00:09 | dansmith | which is icky for other reasons, but.. finding out what kind of migration is currently going on and what those details are seems like a good thing to me | |
| 19:00:45 | dansmith | so, not a real helpful opinion, but....there it is | |
| 19:01:17 | mriedem | i can do it either way, it's mostly just a question of how gorby we want the RT resize_claim flow to become when we're unshelving during a cross-cell resize....since as noted we have to do some things manually if we're not doing an instance_claim | |
| 19:01:23 | mriedem | *gorpy | |
| 19:01:34 | dansmith | do we not have any places where we might need to look at a late-stage migration and know if it was cross-cell before we allow or disallow something? | |
| 19:02:18 | dansmith | well, fwiw, the migration context setting via instance_claim never made sense to me, and continues to confuse me and others when we try to remember where it gets set (and why not for things like live migration) | |
| 19:02:34 | mriedem | it's not set in instance_claim, it's in resize_claim | |
| 19:02:43 | dansmith | you know what I mean gdi :) | |
| 19:02:46 | dansmith | in the claim process | |
| 19:03:27 | mriedem | i'm not aware of late stage thingies that rely on the migration_context, maybe there are in the actual finish_resize/finish_revert_resize/confirm_resize flows...which i'm not using | |
| 19:03:49 | dansmith | I'm saying things we'd need to handle in this process, not existing ones | |
| 19:03:54 | mriedem | when we revert/confirm the API looks up the migration directly, not via the migration_context: https://review.openstack.org/#/c/603930/9/nova/compute/api.py@3244 | |
| 19:04:17 | dansmith | yeah, which is kinda silly | |
| 19:04:31 | mriedem | which, i guess ^ works because we have the finished status and then it goes to 'completed' or something in the compute | |
| 19:04:33 | dansmith | that would be much nicer as "get the instance and get the current migration" instead of "sort and assume the last one is legit" | |
| 19:04:35 | mriedem | which sound the same to me | |
| 19:05:09 | dansmith | I should just stop talking. No, I don't have any good reasons. | |
| 19:05:15 | mriedem | oh i guess on revert the migration status goes to 'reverted' | |
| 19:05:33 | mriedem | and 'confirmed' on confirm | |
| 19:05:51 | mriedem | alright, well, it's just a drop in the bucket of questions in here | |
| 19:06:00 | mriedem | i just wanted to plant the seed of doubt in someone else's mind about this | |
| 19:06:05 | mriedem | you're welcome | |
| 19:18:53 | sean-k-mooney | so can i ask a dumb question related to that converstation. | |
| 19:19:24 | sean-k-mooney | what is the difference logically between a migration context, a migtion object and migration_data | |
| 19:19:50 | sean-k-mooney | i know all three exists but not sure why there is not jsut one datastructure | |
| 19:20:14 | sean-k-mooney | mriedem: dansmith is the answer to ^ documented anywhere | |
| 19:20:52 | dansmith | migration context is attached to an instance and contains a link to the migration record (i.e. the current one) and some other current details | |
| 19:21:04 | dansmith | migration objects are the in-progress and archival history of an instance's movements | |
| 19:21:33 | dansmith | migrate data is transient virt-specific detailage about the low-level bits that is ferried back and forth but never persisted | |
| 19:22:25 | sean-k-mooney | oh ok that actully kind of makes sence. the nameing is unfortuate but the reason for having 3 distinct entities makes sense | |
| 19:23:15 | mriedem | migrate_data is also only for live migration | |
| 19:23:38 | mriedem | hence the name, LiveMigrateData | |
| 19:24:02 | dansmith | yeah, left that detail out | |
| 19:24:24 | sean-k-mooney | mriedem: yes but for cold migrtion we kindo of abuse the migration_context for associting claim with the active migration too right | |
| 19:25:59 | sean-k-mooney | so we dont actully stuff the resocetrack claims into the migration_context as far as i know but i think we must the uuid of the migration_context when claiming the resouce or somthing like that. | |
| 19:27:28 | mriedem | based on my questions above, i'm clearly not the person to ask about the intracacies of how the migration_context is used during resize | |
| 19:27:39 | mriedem | *intricacies even | |
| 19:27:48 | dansmith | sean-k-mooney: migration context has no uuid, it's attached to the instance | |
| 19:28:17 | mriedem | MigrationContext.migration_id could be used to find the migration object if needed | |
| 19:28:22 | mriedem | within the same cell | |
| 19:28:24 | sean-k-mooney | sorry the migrtion record/object reffrence by the migration_context has a uuid which we use | |
| 19:28:24 | dansmith | sean-k-mooney: it has things that we don't need to persist after completion, unlike things we store in the migration record for posterity, like what flavor it was and what flavor it is now | |
| 19:28:46 | dansmith | mriedem: I meant the context doesn't have its own identifier | |
| 19:28:57 | mriedem | ah yeah | |
| 19:29:25 | dansmith | and, unfortunate that we used the id there I guess, as it makes it potentially less helpful for the cross-cell case | |
| 19:29:26 | mriedem | laura is home, the 2:30 vacuuming has started | |
| 19:29:53 | mriedem | for cross-cell everything is scoped to the cell db, so it's not a big deal | |
| 19:30:04 | dansmith | well, | |
| 19:30:07 | mriedem | conductor orchestrates the db switching when needed | |
| 19:30:17 | dansmith | once we want cross-cell live migration it'll probably be relevant | |
| 19:30:47 | mriedem | i think i'll probably be back at ibm working on php / xenapi by the time that happens.. | |
| 19:31:03 | mriedem | you know, the up and coming tech | |
| 19:31:04 | dansmith | it's a thing people want though | |
| 19:31:27 | mriedem | yeah, huawei's public cloud has a beta for cross-cell live migration, | |
| 19:31:28 | dansmith | especially if it were to make it easier to migrate from an older cloud to a newer one by making one a cell of the other until it's emptied | |
| 19:31:30 | mriedem | i'm not sure how they do it but... | |
| 19:31:34 | dansmith | that's been requested since icehouse or so | |
| 19:32:52 | sean-k-mooney | dansmith: we all know livemigration never works :P also if i get sirov live migration working this cycle i have no plan to test cross cell, sriov, nuam aware live migration between different releases during upgrade :) | |
| 19:33:14 | openstackgerrit | Matt Riedemann proposed openstack/nova stable/rocky: WIP: Test report_ironic_standard_resource_class_inventory=False https://review.openstack.org/609107 | |
| 19:33:40 | mriedem | there is no cross cell live migration... | |
| 19:34:51 | sean-k-mooney | mriedem: didnt you jsut say huawei's public cloud has beta supprot. i would assume they will ask you to upstream it a some point or is that complete different devision form yours? | |
| 19:35:40 | mriedem | completely different | |
| 19:35:54 | mriedem | their public cloud is still using cascading, which is their proprietary cells v1 | |
| 19:36:17 | mriedem | they are working on migrating off that to cells v2 | |
| 19:36:22 | dansmith | that's more like cross-deployment live migration | |
| 19:36:50 | sean-k-mooney | dansmith: is that still an ask from the edge working group? | |
| 19:37:06 | dansmith | is what? cross-deployment live migration? | |
| 19:37:12 | dansmith | I'm sure it'll be on their list at some point | |
| 19:37:27 | dansmith | I can see the cross-cell thing being fine, but I dunno about cross-deploy | |
| 19:38:17 | sean-k-mooney | ya when i was in the edge room in dublin i spent 15 minute explaining why cross cloud inter hyperviror live migration was never going to be a thing and should not be in the phase 1 basic feature support for edge | |
| 19:39:15 | sean-k-mooney | they litrally wanted to live migrate form libvirt + ceph in one edge site to vmware on another | |
| 19:39:56 | jaypipes | dansmith, mriedem, melwitt: is there a reason we don't pass instance metadata to the RequestSpec? | |
| 19:40:18 | dansmith | jaypipes: why would we need to? | |
| 19:40:34 | jaypipes | dansmith: so that scheduler filters can look at the instance metadata? :) | |
| 19:40:40 | dansmith | they should never do that | |
| 19:40:46 | dansmith | instance metadata is owned by the user not nova | |
| 19:40:52 | jaypipes | dansmith: oh, but Oath disagrees strongly. ;) | |
| 19:40:54 | dansmith | looking at it, especially for placement would violate | |
| 19:40:58 | dansmith | jaypipes: -2 | |
| 19:41:02 | jaypipes | hehe | |
| 19:41:03 | melwitt | but what about... custom filters YALL | |
| 19:41:13 | jaypipes | dansmith: what melwitt said :) | |
| 19:41:17 | dansmith | yeah | |
| 19:41:19 | jaypipes | dansmith: example... | |
| 19:41:23 | sean-k-mooney | jaypipes: jay just stuff the info in a schduler hint and use the json fileter | |
| 19:41:57 | mriedem | the request spec has an instance_uuid on it, you can get the instance from that and pull the metadata off the instance; that won't work for multi-create, but you probably don't care at oath | |
| 19:42:11 | dansmith | yup | |
| 19:42:15 | jaypipes | dansmith: nova boot --property ytag=SOME_CUSTOM_YAHOO_GOOP; nova scheduler has a filter that does an external lookup to our inventory management system of the ytag to grab the availability zone (really, just a power domain) to send the instance to | |
| 19:42:22 | dansmith | or hint yourself to an external artifact, fetch it and go nuts | |
| 19:42:44 | dansmith | jaypipes: yep, I got it, but metadata is off limits | |
| 19:43:17 | dansmith | --hint ytag-fml -> look up fml externally, do a thing | |
| 19:43:19 | jaypipes | mriedem: you can't do that. the instance_uuid is for the mapping, but the metadata doesn't exist yet, so if you try to call Instance.get_by_uuid(instance_uuid) from the filter, that's a dead end. | |
| 19:43:34 | mriedem | jaypipes: get the build request then | |
| 19:43:43 | jaypipes | mriedem: build request doesn't store metadata. | |
| 19:43:44 | melwitt | last I heard, oath does use multi-create. there's auto-scale stuff that boots several instances at once | |
| 19:43:47 | mriedem | jaypipes: sure it does, | |
| 19:43:49 | mriedem | it stores the instance | |
| 19:43:52 | mriedem | which stores the metadata | |
| 19:44:23 | dansmith | right, that's how we know what to create when we've picked a host :) | |