| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-10-09 | |||
| 14:00:18 | efried | Because in theory since we're using placement now, which is fast, that optimization buys us almost nothing. So if ^ is true, the force flag is basically obsolete anyway. | |
| 14:02:08 | mriedem | i can field this one... | |
| 14:02:21 | mriedem | efried: before the force flag, specifying a host at all bypassed the scheduler, | |
| 14:02:49 | mriedem | then a microversion was added which made passing a host go through the scheduler for validation, but apparently at least one person though we should preserve the ability to bypass the scheduler, so the force flag was added to do that backdoor | |
| 14:03:11 | efried | What was the motivation to "bypass the scheduler"? Because it was inefficient? | |
| 14:03:53 | mriedem | idk, i'm assuming to oversubscribe a host just to move things around | |
| 14:03:58 | mriedem | at least temporarily | |
| 14:04:10 | efried | is oversubscribe even possible at this point? | |
| 14:04:23 | efried | (Outside of allocation ratio, which doesn't count) | |
| 14:04:37 | mriedem | i don't think so, at least not for vcpu/ram/dis | |
| 14:04:38 | mriedem | *disk | |
| 14:04:52 | mriedem | as i noted in gibi's patch - we broke that in pike when force still goes through claiming resource allocations in conductor | |
| 14:04:54 | sean-k-mooney | efried: if it bypassed the scduer it proably bypassed the placement claim too but i have never check that | |
| 14:05:05 | mriedem | sean-k-mooney: incorrect | |
| 14:05:28 | efried | Yeah, that's the point. Since we started claiming from placement, you can't oversubscribe. | |
| 14:05:35 | mriedem | efried: in the old days, before placement, if you bypass the scheduler, conductor would not send limits down to the RT so it wouldn't fail the limits check on the resource claim | |
| 14:05:46 | sean-k-mooney | mriedem: was that unintentional however as you jsut said we "broke" that in pike | |
| 14:05:59 | efried | has anyone screamed about that breakage? | |
| 14:06:13 | efried | Or do we still not have enough serious operators on pike yet? :P | |
| 14:06:17 | mriedem | there are like 3 people i now on >= pike but no... | |
| 14:06:47 | mriedem | *know | |
| 14:06:51 | edleafe | efried: one reason for the force option was that admins wanted to be able to say "I know what I'm doing, dammit!". It wasn't about code efficiency | |
| 14:07:17 | efried | edleafe: But IIUC, the destination host is observed regardless. | |
| 14:07:32 | mriedem | observed? | |
| 14:07:41 | efried | meaning you either get on the suggested host or you die | |
| 14:07:50 | mriedem | correct | |
| 14:07:51 | efried | I'm not sure how we would "fix" the oversubscribe thing at this point, without adding a placement feature to allow it. | |
| 14:08:22 | efried | which I doubt we want to do | |
| 14:08:22 | mriedem | i don't think adding features to support shooting yourself is something we want to do at this point | |
| 14:08:40 | efried | "Hey placement, you know that one thing you're supposed to be designed to do? Yeah, don't do that." | |
| 14:08:42 | edleafe | efried: it isn't just oversubscription that would cause the scheduler to reject it. Things like affinity, etc., would also cause it to fail | |
| 14:08:52 | mriedem | note that even with forced live migration, conductor still runs some checks that could cause us to reject the host | |
| 14:09:05 | mriedem | edleafe: nope | |
| 14:09:12 | mriedem | we don't do any affinity checks outside of the scheduler for live migration | |
| 14:09:12 | efried | you mean besides the allocation claim? | |
| 14:09:30 | edleafe | mriedem: without the force option, we do | |
| 14:09:36 | mriedem | in the scheduler | |
| 14:10:01 | mriedem | but that's more to my point - force is bad | |
| 14:10:15 | efried | I think what I'm getting at is, force isn't so much bad as... obsolete? | |
| 14:10:20 | mriedem | you could screw up AZs too | |
| 14:10:22 | efried | Like, it doesn't do anything useful anymore. | |
| 14:10:24 | edleafe | well, yeah, but admins wanted to be able to override | |
| 14:10:28 | mriedem | efried: agree | |
| 14:10:35 | edleafe | I'm not saying it's right | |
| 14:10:38 | mriedem | efried: it made a bit more sense pre-placement | |
| 14:10:42 | edleafe | Just that that was the pushback at the time | |
| 14:10:46 | efried | because oversubscribe | |
| 14:11:11 | efried | Okay, thanks, this helps validate my response to gibi's thread. | |
| 14:13:47 | openstackgerrit | Merged openstack/os-vif master: Remove IPTools deprecated implementation https://review.openstack.org/605422 | |
| 14:15:51 | openstackgerrit | Jan Gutter proposed openstack/os-vif master: Extend port profiles with datapath offload type https://review.openstack.org/572081 | |
| 14:17:43 | belmorei_ | hi. I'm having an issue with Ironic allocations in placement | |
| 14:18:58 | belmorei_ | What I see is that allocations are only done for the resource class, and not vcpus, ram, disk. I imagine this intentional? | |
| 14:18:58 | belmorei_ | We define the Ironic flavors with resources:VCPU=0, ... as documented in "https://docs.openstack.org/ironic/queens/install/configure-nova-flavors.html". | |
| 14:20:10 | efried | what do you mean, only done for the resource class? | |
| 14:20:43 | belmorei_ | the allocation for the resource_provider is only the ironic resource_class | |
| 14:20:54 | dansmith | belmorei_: yes, expected | |
| 14:21:22 | belmorei_ | great. Let me describe the issue | |
| 14:24:13 | belmorei_ | The problem is that we enable the ironic flavors per project (these projects are only for baremetal) (projects are mapped to a cell that only has the baremetal nodes) | |
| 14:24:59 | belmorei_ | However, users also have access to the "default" flavors that are for VMs in these projects (we can't remove public flavors) | |
| 14:26:37 | belmorei_ | If a user makes the mistake to use a default flavor in these projects (flavor for VMs) placement can return already in use baremetal nodes because they have cpu, ram, ... | |
| 14:27:30 | dansmith | belmorei_: the baremetal nodes should be exposing no cpu,ram,etc inventory | |
| 14:27:40 | dansmith | belmorei_: they should expose one inventory item of the baremetal resource class and nothing else | |
| 14:28:43 | belmorei_ | dansmith: Good to know I would expect that, but it's not happening. Maybe a conf issue in my side | |
| 14:29:10 | dansmith | belmorei_: yeah, I'm not sure how that could be happening anymore.. jroll dtantsur ? | |
| 14:29:34 | mriedem | https://github.com/openstack/nova/blob/stable/queens/nova/virt/ironic/driver.py#L790 | |
| 14:29:47 | mriedem | we still reported cpu/ram/disk inventory for ironic nodes in queens | |
| 14:30:26 | mriedem | https://github.com/openstack/nova/commit/a985e34cdeef777fe7ff943e363a5f1be6d991b7#diff-1e4547e2c3b36b8f836d8f851f85fde7 removed that in stein | |
| 14:31:33 | dansmith | mriedem: um, we should have had a cutover so we're not exposing both right? | |
| 14:31:39 | dansmith | I thought that was like pike | |
| 14:31:57 | dansmith | comment there says zero in pike | |
| 14:31:58 | jroll | dansmith: we didn't do the cutover so people could migrate their flavor | |
| 14:32:08 | dansmith | jroll: right, but in queens? | |
| 14:32:19 | jroll | this is the first I've heard of this, fwiw, though it makes sense | |
| 14:32:24 | jroll | dansmith: people were scared to remove it | |
| 14:32:50 | dansmith | hmm | |
| 14:33:01 | jroll | a quick workaround would likely be to set 0 for cpu/ram in ironic node.properties | |
| 14:33:14 | dansmith | I thought this was long since sorted | |
| 14:33:14 | jroll | and then it will report 0 | |
| 14:33:24 | jroll | yeah, I thought it just worked as well | |
| 14:33:39 | dansmith | what was the plan during the overlap to avoid exposing the old values once everything was migrated? | |
| 14:33:47 | dansmith | override properties in ironic? | |
| 14:33:53 | dansmith | s/everything/flavors/ | |
| 14:33:57 | jroll | I don't remember, sorry | |
| 14:34:15 | belmorei_ | jroll: that means updating all ironic nodes... can't do it. | |
| 14:34:43 | belmorei_ | How about if I remove the "resources:VCPU=0", ... from the flavors? | |
| 14:34:57 | mriedem | your bm flavors aren't the problem | |
| 14:35:11 | mriedem | the problem is the bm flavors are getting scheduled to the ironic nodes right? | |
| 14:35:13 | mriedem | *vm flavors | |
| 14:35:15 | dansmith | right | |
| 14:35:24 | jroll | that would prevent VMs from landing on an active ironic node, but not an inactive one | |
| 14:35:28 | mriedem | and that's because the bm nodes are reporting ram/cpu/disk inventory | |
| 14:35:47 | belmorei_ | jroll: true | |
| 14:39:22 | belmorei_ | ok, so for me the best is to backport the commit mentioned by mriedem | |
| 14:39:26 | mriedem | belmorei_: you might be able to just patch https://github.com/openstack/nova/blob/stable/queens/nova/virt/ironic/driver.py#L797 to be 0 | |
| 14:39:37 | belmorei_ | yeah, thanks | |
| 14:39:38 | mriedem | belmorei_: i'm guessing that's not going to backport cleanly to queens | |
| 14:39:47 | bauzas | gibi: thanks for the email recap | |
| 14:39:54 | belmorei_ | any plan to still include this in rocky? | |
| 14:40:10 | bauzas | gibi: I now understand the problem :) | |
| 14:40:12 | belmorei_ | because for me is a bug | |