| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2017-07-14 | |||
| 14:28:30 | cdent | leakypipes: these still the right ones for your current thrust: https://review.openstack.org/#/q/status:open+project:openstack/nova+branch:master+topic:bp/placement-claims+owner:%22Jay+Pipes+%253Cjaypipes%2540gmail.com%253E%22 ? | |
| 14:28:57 | sean-k-mooney | jangutter: understood, when you get to that point let me know and i may be able to connet you with some people on our vswitch team who. we have done some work in the past on mapping vhost-user to hadware accleration so perhaps ye can collaberate when adding that support to upstream ovs | |
| 14:28:59 | leakypipes | cdent: ya. currently investigating the tempest failures (they are valid failures) | |
| 14:29:13 | sean-k-mooney | jangutter: anyway got to run | |
| 14:29:18 | cdent | ✔ | |
| 14:29:25 | jangutter | sean-k-mooney: thanks very much again! | |
| 14:31:27 | leakypipes | cdent, figleaf, mriedem, superdan: so... something I didn't quite anticipate (or rather, was ignoring and hoping we wouldn't run into it.) is resize to same host. With the code I added, we're getting NoValidHosts returning because the resize to same host operations are not taking resource claiming into account. | |
| 14:31:48 | leakypipes | cdent, figleaf, mriedem, superdan: I'm wondering if we need to just disable the scheduler claiming thing for move operations. | |
| 14:32:11 | cdent | oh yeah. I _think_ that’s one of the ideas we talked about in the past | |
| 14:32:48 | cdent | Is a bit annoying that yet another small piece of state needs to travel around, but life is hard | |
| 14:32:59 | figleaf | leakypipes: yeah, the scheduler is just used in those cases to ensure that the new host satisfies the original request | |
| 14:33:43 | leakypipes | figleaf: yeah. | |
| 14:33:48 | figleaf | leakypipes: but then again, why would that make things easier? | |
| 14:34:14 | leakypipes | figleaf: not sure it would... just brainfarting right now :) | |
| 14:34:25 | leakypipes | figleaf: investigating these few tempest failures. | |
| 14:34:31 | figleaf | leakypipes: ah | |
| 14:34:52 | figleaf | It's always better to have a single code path if possible | |
| 14:34:58 | openstackgerrit | Andrey Volkov proposed openstack/nova master: PoC: Select PCI devices with distinct tag values https://review.openstack.org/448008 | |
| 14:36:03 | cdent | if we had perfect memory we could recall all the conversations we had about this particular topic because it sure seems like we had a plan (short and long term) but my brain is grasping at nothing | |
| 14:36:29 | figleaf | cdent: I think the problem is that we have had several plans :) | |
| 14:36:41 | figleaf | Hard to keep them distinct | |
| 14:36:57 | cdent | I thinkin back all the way to early 2016 | |
| 14:37:10 | cdent | lost to the sands of time | |
| 14:37:18 | leakypipes | cdent: you mean the Crustacean period of OpenStack? | |
| 14:37:29 | cdent | wasn’t that the precambrian? | |
| 14:37:34 | leakypipes | cdent: lemme get my archeological shovel handy | |
| 14:38:25 | cdent | no, couldn’t have been precambrian, because big tent would have been in the cambrian explosion | |
| 14:38:44 | mriedem | resize to same host shouldn't be double claimed, as we already claimed it once | |
| 14:38:46 | mriedem | same with rebuild | |
| 14:38:57 | openstackgerrit | Jan Gutter proposed openstack/os-vif master: Add support for VIFPortProfileOVSRepresentor https://review.openstack.org/483921 | |
| 14:38:59 | mriedem | you have to consider rebuild to same host vs evacuate to another host - where evacuate is going to claim on the other host | |
| 14:39:09 | mriedem | where rebuild to same host is not going to claim again on the same host | |
| 14:39:35 | cdent | mriedem: we can’t double claim can we (unless we explicitily create a single claim with double values) because consumer uuids stay the same? | |
| 14:39:42 | cdent | (or is that not true) | |
| 14:40:05 | cdent | /o\ | |
| 14:40:20 | mriedem | i mean, in the compute manager today, it does a NopClaim if it's on the same host | |
| 14:41:43 | cdent | if anyone has any things they want to remind me of for today’s rp update, send me some mail, I’m going to go hime and write it | |
| 14:41:50 | cdent | home | |
| 14:41:58 | leakypipes | mriedem: well, not even rebuild/evacuate. it's also any move operation. because when claiming for the instance, we will end up overwriting the allocations for that instance_uuid. | |
| 14:42:49 | openstackgerrit | Jan Gutter proposed openstack/nova master: Netronome SmartNIC Enablement https://review.openstack.org/483459 | |
| 14:42:57 | mriedem | leakypipes: aren't the allocations for the instance + some RP? | |
| 14:42:58 | leakypipes | mriedem: which means that the resources will be claimed against the destination host resource provider and no longer on the source host as soon as scheduling happens. | |
| 14:43:25 | leakypipes | mriedem: no, an allocation is a set of resource consumed on one or more resource providers for a specific consumer. | |
| 14:43:36 | mriedem | sure, one or more | |
| 14:43:49 | mriedem | until we move, aren't we consuming on 2 RPs? | |
| 14:44:01 | mriedem | there is the allocation we're consuming on the source RP node, and the claim for the dest RP node | |
| 14:44:25 | leakypipes | mriedem: no. the key is the consumer UUID. so we overwrite all allocations for the consumer when we call PUT /allocations/{consumer_uuid} | |
| 14:44:28 | figleaf | mriedem: a consumer can only consume one set of allocations at a time | |
| 14:44:52 | mriedem | so....if it's still one or more RPs, | |
| 14:44:55 | mriedem | i don't see the problem, | |
| 14:44:55 | figleaf | leakypipes: we would have to combine the two sets and PUT that | |
| 14:45:05 | leakypipes | figleaf: right. so as soon as the scheduler claims resources against the newly-selected destination host for a move operation, the old allocations for the original source host are replaced. | |
| 14:45:14 | mriedem | we have an allocaiton for the instance on source RP node, and then we update that allocation to include the dest RP node | |
| 14:45:18 | leakypipes | figleaf: yeah, that's about all I can think to do. | |
| 14:45:35 | leakypipes | figleaf: which means the scheduler is going to need to know whether this is a move operation. | |
| 14:45:39 | mriedem | right i'm thinking the same, worded differently | |
| 14:45:41 | figleaf | leakypipes: or add a PATCH resource | |
| 14:45:49 | figleaf | :( | |
| 14:46:07 | leakypipes | figleaf: potentially, but the scheduler would still need to know it's a move operation, right? | |
| 14:46:16 | figleaf | yeah | |
| 14:46:38 | mriedem | i was going to send this to cdent https://github.com/openstack/nova/blob/master/nova/compute/manager.py#L2779 | |
| 14:46:49 | mriedem | but ^ is what i was talking about with the nopclaim for rebuild on same host | |
| 14:46:58 | leakypipes | figleaf, mriedem: I think the "safest" thing to do is just disable claims in the scheduler for all move operations. so we'd just pass an indicator in the RequestSpec that this is a move operation and don't do any claiming if it is. | |
| 14:47:16 | mriedem | and then smartify it in queens? | |
| 14:47:20 | mriedem | because that's a short term hack right? | |
| 14:47:21 | leakypipes | yeah | |
| 14:47:36 | leakypipes | smartify it == the solution figleaf said above. | |
| 14:47:42 | figleaf | mriedem: I like smartifying stuff | |
| 14:47:57 | mriedem | can't we figure out if it's a move by checking if there are already existing allocations for that consumer? | |
| 14:48:12 | mriedem | or does that tread on retry territory | |
| 14:48:38 | leakypipes | mriedem: yes, but that would mean another set of HTTP communications for each scheduler request. | |
| 14:48:51 | leakypipes | mriedem: and we are already calling GET /allocation_candidates once per request. | |
| 14:48:53 | mriedem | yeah, so let's not do that then | |
| 14:49:11 | mriedem | if reqspec.movify: | |
| 14:49:12 | figleaf | leakypipes: true, but it might not mean dirtying as much code now | |
| 14:49:17 | melwitt | superdan: do you know if instance.old_flavor is a thing I can rely on to be there for an instance that's in VERIFY_RESIZE state? resized but not confirmed nor reverted? | |
| 14:49:27 | leakypipes | mriedem: especially since it's easy enough for the nova-api or conductor to add a field to the RequestSpec saying it's a move operation. | |
| 14:49:32 | mriedem | figleaf: it does mean a perf hit though | |
| 14:49:38 | mriedem | i'd rather pass a flag than take a perf hit | |
| 14:49:42 | mriedem | for ALL requests | |
| 14:49:43 | superdan | melwitt: yep, should be find if it's in any resize-related state I think | |
| 14:49:49 | melwitt | yesss | |
| 14:49:56 | figleaf | mriedem: yes, but small, but it will be smartified later! | |
| 14:50:13 | mriedem | figleaf: how do you know it would be small? | |
| 14:50:28 | leakypipes | mriedem: but do we have all that information during scheduling? I don't think the old flavor stuff is in the RequestSpec is it? | |
| 14:50:35 | figleaf | mriedem: GET /allocations is pretty lightweight | |
| 14:50:43 | mriedem | multicreate request with 100 instances for a new boot, would hit all of these 'do i already have allocations' requests for nothing | |
| 14:51:06 | mriedem | leakypipes: you'd put it on the request spec in conductor i thought | |
| 14:51:09 | mriedem | like you just said | |
| 14:51:17 | mriedem | migrate/resize/rebuild all go through conductor | |
| 14:51:23 | mriedem | with a reqspec | |
| 14:51:29 | leakypipes | mriedem: ah, sorry, I thought you were saying we should query that information for the instance within the scheduler. | |
| 14:51:45 | mriedem | leakypipes: that was an idea to avoid a flag being passed in on the reqsspec | |
| 14:51:51 | mriedem | but as noted it's extra overhead for perf | |
| 14:51:55 | leakypipes | right | |
| 14:51:57 | mriedem | which i don't tink we want long-term | |
| 14:52:20 | leakypipes | mriedem, figleaf: a simple flag "is_move" would be cool with me. I think that's actually pretty useful anyway. | |
| 14:52:32 | mriedem | seems that needs to be there anyway, long-term | |
| 14:52:41 | mriedem | if you don't want to make these GET /allocatoins calls in the shceduler to tell if you're moving | |
| 14:52:53 | figleaf | leakypipes: agreed | |