| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-09-27 | |||
| 13:37:52 | mriedem | i guess you care about allocations for ports | |
| 13:38:16 | gibi | mriedem: even if flavor has granular groups I don't know if the host the instance is on are already reshaped to nested or not | |
| 13:38:26 | mriedem | right yeah | |
| 13:39:17 | gibi | mriedem: can we simply ignore the force flag for every instance not just for the nested ones? I mean the end user will not know if his instance is nested or not | |
| 13:40:22 | mriedem | it's not really about the owner of the instance (the user), force is for the admin | |
| 13:40:44 | gibi | mriedem: true, I missed that | |
| 13:41:01 | mriedem | if we're really going down a path of blatantly ignoring the force parameter, we should probably consider just deprecating it in the api | |
| 13:41:19 | mriedem | like i said, we kind of already ignore it today for ram/disk/vcpu | |
| 13:41:32 | mriedem | plus some other sanity checks that conductor does | |
| 13:41:53 | mriedem | caching scheduler is the only thing that would still truly force today since it doesn't create allocations | |
| 13:41:59 | mriedem | but we can maybe remove the caching scheduler now | |
| 13:42:10 | mriedem | mgagne: i've been meaning to follow up with you about the caching scheduler removal... | |
| 13:43:50 | gibi | mriedem: does this ignoring behavior needs to be guarded with a new api microversion? I hope not as maintaining the old behavior is not easily possible for nested | |
| 13:44:49 | mriedem | gibi: no i don't think so, | |
| 13:44:55 | mriedem | we're already ignoring force for some filters like i said | |
| 13:45:07 | mriedem | a microversion would be more of a signaling mechanism, | |
| 13:45:31 | mriedem | plus things like nova CLI that do version discovery and pass the latest microversion by default would simply opt into the new microversion where force is never passed | |
| 13:46:15 | mriedem | iow, force is legacy from when we just had claims in the compute and overcomitting was "simpler" | |
| 13:46:21 | gibi | mriedem: so there would be a microversion to remove the force flag from the API but ignoring the force flag would be retroactive in every version | |
| 13:46:44 | bauzas | mriedem: I'm in and out due to some customer issue, but I'll reply to you later on | |
| 13:46:54 | mriedem | well, i don't know if we should blatantly ignore it if we can help it | |
| 13:47:21 | mriedem | but i'm not sure how we determine if we should ignore it or not for nested RPs | |
| 13:47:28 | gibi | mriedem: we cannot easily help it in case of nested, and sooner or later (after NUMA) every instance will be nested | |
| 13:47:39 | mriedem | b/c like you said, the instance might have allocations on nested RPs on the source host but maybe not the forced dest? | |
| 13:47:52 | mriedem | well, every instance with numa allocations | |
| 13:47:57 | mriedem | not all instances are those kinds though | |
| 13:48:26 | gibi | mriedem: if VCPU resources are moved to NUMA RP then the simple instance will become nested | |
| 13:53:19 | mriedem | are we talking about doing that? | |
| 13:53:31 | mriedem | i guess for PCPU/VCPU modeling? | |
| 13:53:46 | mriedem | if so, shiiiiit that reshape is going to be big in a public cloud | |
| 13:53:52 | gibi | mriedem: honestly I don't know what will be the numa model in plaacement | |
| 13:55:27 | gibi | mriedem: https://review.openstack.org/#/c/555081/18/specs/stein/approved/cpu-resources.rst@261 | |
| 13:55:42 | gibi | mriedem: in this spec VCPU is under NUMA | |
| 14:00:39 | mriedem | gibi: ok left a comment / question in the upgrade impact section, | |
| 14:00:51 | mriedem | we also said at the ptg that that spec wouldn't be a priority for stein | |
| 14:00:58 | gibi | mriedem: correct | |
| 14:01:09 | mriedem | just getting vgpu reshaping done is going to be a big hurdle | |
| 14:01:48 | gibi | mriedem: yeah so vgpu and bandwidth using instance will be the first nested instances. So during this time it make sense to keep a separate code path for them | |
| 14:02:14 | gibi | mriedem: I try to implement what you described. checking the nestedness in conductor and ignoring the force flag for nested | |
| 14:24:36 | openstackgerrit | Christoph Manns proposed openstack/nova master: Fix stacktraces with redis caching backend https://review.openstack.org/605748 | |
| 14:24:57 | openstackgerrit | Artom Lifshitz proposed openstack/nova-specs master: Re-propose numa-aware-live-migration spec https://review.openstack.org/599587 | |
| 14:34:14 | openstackgerrit | Mark Goddard proposed openstack/nova master: Don't emit warning when ironic properties are zero https://review.openstack.org/605754 | |
| 14:36:56 | mnaser | filtering happens after placement, correct? | |
| 14:37:03 | mnaser | is there no warning message that says "i couldn't find anything?" | |
| 14:37:26 | mnaser | i guess i can just rely on conductor's "Setting instance to ERROR state." | |
| 14:37:39 | bauzas | mriedem: I'm still working on the vgpu reshape patch, and yes, it's a big hurdle :( | |
| 14:38:22 | bauzas | gibi: FWIW, I need to split https://review.openstack.org/#/c/552924/ in two, one targeted for Stein with no NUMA affinity | |
| 14:38:26 | openstackgerrit | Mark Goddard proposed openstack/nova master: Don't emit warning when ironic properties are zero https://review.openstack.org/605754 | |
| 14:38:48 | bauzas | mnaser: you're right, filters are called after we found an allocation candidate | |
| 14:38:56 | gibi | bauzas: ack | |
| 14:38:57 | openstackgerrit | Merged openstack/nova master: consumer gen: more tests for delete allocation cases https://review.openstack.org/591811 | |
| 14:39:21 | mnaser | thanks bauzas, im relying on this logstash query to monitor those: tags:nova AND message:"Setting instance to ERROR state." AND message:NoValidHost_Remote | |
| 14:39:29 | bauzas | mnaser: but you should at least still have the filtering logs | |
| 14:40:02 | mnaser | yeah the filter logs are there but if 0 computes match at the end, but i'm curious if there's any warning if no allocation candidates that come in the first place | |
| 14:40:05 | bauzas | hah, yeah, but we provide an INFO log saying "heh, 0 hosts found" | |
| 14:40:30 | mnaser | so i guess if its gets 0 allocation candidates, it'll just go through filters and end up with 0 anyways | |
| 14:40:32 | bauzas | I also think we tell in the logs whether we found no candidates after placement | |
| 14:40:39 | mnaser | let me verify | |
| 14:40:43 | bauzas | mnaser: sec, checking the gate | |
| 14:40:46 | bauzas | ok | |
| 14:40:58 | mriedem | i don't think we do, | |
| 14:41:20 | mriedem | we just pass an empty list to ComputeNodeList.get_by_uuids() which returns an empty list and passes that down to the filter scheduler driver which then raises NoValidHost | |
| 14:41:54 | mriedem | oh i guess we log something at debug, | |
| 14:41:58 | mriedem | but that won't be indexed by logstash | |
| 14:42:14 | mnaser | yeah we dont do that, too much data | |
| 14:42:20 | mriedem | https://github.com/openstack/nova/blob/master/nova/scheduler/manager.py#L150 | |
| 14:42:32 | bauzas | mnaser: yup, we do http://logs.openstack.org/72/585672/7/check/tempest-full-py3/f1d0b34/controller/logs/screen-n-sch.txt.gz#_Sep_26_19_02_54_285546 | |
| 14:42:59 | mriedem | mnaser: do you have a failure log to check? | |
| 14:43:03 | mriedem | placement should be logging some stuff now too | |
| 14:43:16 | mnaser | mriedem: i might if it hasnt rotated out | |
| 14:43:24 | bauzas | mriedem: see, we put an info log on how many hosts we got from placement ^ | |
| 14:43:31 | mriedem | as to which "filters" in placement resulted in 0 allocation candidates | |
| 14:43:43 | mriedem | Sep 26 19:02:54.285546 ubuntu-xenial-rax-ord-0002338068 nova-scheduler[18720]: DEBUG nova.filters [None req-8a6074ae-e62f-4ac7-a525-4c411c130c39 tempest-AutoAllocateNetworkTest-2112321998 tempest-AutoAllocateNetworkTest-2112321998] Starting with 1 host(s) {{(pid=20232) get_filtered_objects /opt/stack/nova/nova/filters.py:70}} | |
| 14:43:45 | bauzas | oh shit, that's DEBUG | |
| 14:43:47 | mnaser | mriedem: that is a LOG.debug() so a normal deployment wont see it | |
| 14:43:47 | mnaser | yeah | |
| 14:43:50 | mriedem | right | |
| 14:43:51 | bauzas | my bad | |
| 14:43:54 | mriedem | GAWD! | |
| 14:44:13 | mnaser | i think it's useful to get that warning because a lot of times when placement isnt returning anything | |
| 14:44:15 | bauzas | we info out when we have the filtering results | |
| 14:44:16 | mnaser | i would get really confused | |
| 14:44:19 | mriedem | logging https://github.com/openstack/nova/blob/master/nova/scheduler/manager.py#L150 at INFO might be ok | |
| 14:44:26 | mnaser | yeah but we don't even pass things down to filter | |
| 14:44:29 | bauzas | WTF | |
| 14:44:30 | mnaser | if we get 0 allocation candidates | |
| 14:44:39 | mnaser | if i understand what mriedem linked above | |
| 14:44:42 | bauzas | that's correct | |
| 14:44:50 | bauzas | we just said "meh, that's bad" | |
| 14:45:11 | bauzas | my point was, if we end up with 0 hosts from filtering, some INFO log is done | |
| 14:45:30 | bauzas | so, having the pre-filtering result to be INFO seems consistent and valid to me | |
| 14:45:30 | mnaser | yeah that scenario is taken care of i agree | |
| 14:45:44 | bauzas | lemme dig the code | |
| 14:45:47 | mnaser | i'd even go as far as say that's a warning | |
| 14:45:56 | mnaser | https://github.com/openstack/nova/blob/master/nova/scheduler/manager.py#L150 -- just switch that to warning ? | |
| 14:46:11 | bauzas | but I'm pretty sure we say it's INFO (and no ERROR or warning, because a capacity problem isn't a scheduling problem) | |
| 14:46:29 | mnaser | "change debug level for more info" | |
| 14:46:31 | bauzas | mnaser: I'd advocate for INFO | |
| 14:46:36 | bauzas | no WARN | |
| 14:46:48 | mnaser | it would be consistent with the other stuff | |