Earlier  
Posted Nick Remark
#openstack-nova - 2021-02-04
19:10:34 sean-k-mooney as part of https://specs.openstack.org/openstack/nova-specs/specs/queens/implemented/return-alternate-hosts.html
19:10:52 sean-k-mooney alexe9191: so on rocky you can and should disable the retry filter
19:11:22 alexe9191 Ok! that's good to know
19:12:03 alexe9191 Is there a way to mitigate the effect of the retry filter right now? restarting the nova scheduler right now is probably something that's gonna cause a lot of grief
19:12:12 alexe9191 We have about 800~ hosts
19:12:20 alexe9191 9 schedulers
19:12:33 sean-k-mooney really why so manny?
19:12:49 alexe9191 we're thinking about cells but this is in the future plans
19:13:01 alexe9191 it's a big infrastructure
19:13:24 alexe9191 that's why I was wondering if I can empty that spec_obj from a cache/db table
19:13:34 sean-k-mooney still scduling is typeiclaly not the largets part of a but
19:13:43 sean-k-mooney infacti its typeiclly quite a small amount
19:13:53 sean-k-mooney 9 schdulers is quite a lot
19:14:27 sean-k-mooney alexe9191: no the previsouly tired host are only updated in memory
19:14:51 alexe9191 in the nova-scheduler I am guessing
19:15:02 sean-k-mooney yep
19:15:25 openstackgerrit Merged openstack/nova master: Fix invalid argument formatting in exception messages https://review.opendev.org/c/openstack/nova/+/763511
19:15:27 sean-k-mooney they only are tracked during the singel scheduling request
19:15:29 alexe9191 one more question, is that spec_obj also tied to the flavor ?
19:15:53 sean-k-mooney kind of
19:16:00 dansmith sean-k-mooney: should the retry filter even be used anymore? don't we pass selected_hosts down and have the conductor just iterate over them and then declare it dead?
19:16:35 sean-k-mooney dansmith: we do from queens
19:16:42 sean-k-mooney dansmith: thats whyi said to remove it
19:16:48 dansmith oh I see you said that above
19:16:57 sean-k-mooney dansmith: also i delete it on master a few release ago
19:17:14 sean-k-mooney alexe9191: this is the request_spec https://github.com/openstack/nova/blob/stable/rocky/nova/objects/request_spec.py#L50-L87
19:17:34 sean-k-mooney it has the flavor and image avaiabel which the filters can use
19:17:35 alexe9191 :)  So the flavor is a part of it
19:17:46 alexe9191 a combination of things then
19:18:03 sean-k-mooney its modeling all the requirements for scduling an instnace more or less
19:18:47 alexe9191 that's the reason why it's giving different results for different flavors
19:18:59 sean-k-mooney yes
19:19:16 alexe9191 :)  Many thanks! I am gonna go and schedule a remove of the retry filter since it's not needed
19:19:17 sean-k-mooney although on the first iteration thorugh the scudler it should do nothing
19:19:48 alexe9191 it's doing that on the retryfilter
19:20:11 sean-k-mooney https://github.com/openstack/nova/blob/stable/rocky/nova/scheduler/filters/retry_filter.py#L43
19:20:22 sean-k-mooney retry.hosts shoudl be empty
19:21:34 alexe9191 I am not sure I understand why?
19:21:41 alexe9191 https://github.com/openstack/nova/blob/stable/rocky/nova/scheduler/filters/retry_filter.py#L34
19:22:16 sean-k-mooney well spec_obj.retry will not be set
19:22:29 sean-k-mooney so it will return true on line 36
19:22:57 alexe9191 I am not quite sure how am I ending up with this number then:
19:22:57 alexe9191 2021-02-04 19:16:58.981 112479 DEBUG nova.filters [req-7daf5214-19ca-48bc-9240-7db0be15c304 03169685e1924a6fa4eee2da46335331 a0b22ddc828140beaf13bc3daaba4a93 - default default] Starting with 148 host(s) get_filtered_objects /usr/lib/python2.7/site-packages/nova/filters.py:70
19:22:58 alexe9191 2021-02-04 19:16:58.982 112479 DEBUG nova.filters [req-7daf5214-19ca-48bc-9240-7db0be15c304 03169685e1924a6fa4eee2da46335331 a0b22ddc828140beaf13bc3daaba4a93 - default default] Filter RetryFilter returned 148 host(s) get_filtered_objects /usr/lib/python2.7/site-packages/nova/filters.py:104
19:23:12 alexe9191 For that specefic flavor, though other flavors are returning different numbers
19:23:34 sean-k-mooney well in that case the RetryFilter return 148 hosts
19:23:45 sean-k-mooney and it was given 148 hosts
19:23:50 sean-k-mooney so they all were pased
19:24:02 alexe9191 where was it given 148 hosts from ?
19:24:14 sean-k-mooney from placment
19:24:28 alexe9191 does placement register the failed hosts?
19:24:29 sean-k-mooney you started with 148 hosts form placment
19:24:33 alexe9191 ow
19:24:34 sean-k-mooney no
19:25:06 sean-k-mooney placment basically says ( based on our request) here are the set of host that could fit the vm
19:25:13 sean-k-mooney then the filter refine that
19:25:32 sean-k-mooney placemtn in rocky is basically only lookign at ram disk and cpus
19:26:06 openstackgerrit Artom Lifshitz proposed openstack/nova master: WIP: libvirt: start tracking NUMACell.socket for hosts https://review.opendev.org/c/openstack/nova/+/766816
19:26:07 openstackgerrit Artom Lifshitz proposed openstack/nova master: WIP: extra specs/image pros: add `socket` PCI NUMA affinity https://review.opendev.org/c/openstack/nova/+/772748
19:26:07 openstackgerrit Artom Lifshitz proposed openstack/nova master: WIP: Add `socket` PCI NUMA affinity policy request prefilter https://review.opendev.org/c/openstack/nova/+/772749
19:26:08 openstackgerrit Artom Lifshitz proposed openstack/nova master: WIP: pci: implement the `socket` NUMA affinity policy https://review.opendev.org/c/openstack/nova/+/772779
19:26:08 openstackgerrit Artom Lifshitz proposed openstack/nova master: WIP: Track host NUMA topology in PCI manager https://review.opendev.org/c/openstack/nova/+/774149
19:26:11 alexe9191 not the availability zone or such then ?
19:26:13 sean-k-mooney it does a bit more but basically of your 800 comptue nodes it said here are the 148 that could fit your vm
19:26:28 sean-k-mooney not in rocky by deault at least
19:26:37 sean-k-mooney we did add the az later
19:26:53 alexe9191 ok... but the interesting thing then is, when i schedule the virtual machine directly on the host it works just fine
19:27:03 alexe9191 so from resources point of view there are plenty
19:27:05 sean-k-mooney actully it can do the az in rocky https://github.com/openstack/nova/blob/stable/rocky/nova/scheduler/request_filter.py#L63
19:27:59 sean-k-mooney but i think that is off by default and you use the az filter
19:28:12 alexe9191 I am using that
19:28:31 alexe9191 but I end up with hosts that are not usable for that specefic az
19:28:46 alexe9191 they are all from zone 2,3,4 for instance and the one i want is zone1
19:29:04 alexe9191 BUt this is happening only on this flavor.
19:29:18 sean-k-mooney the flavor wont change teh az interaction
19:29:23 alexe9191 indeed
19:29:53 alexe9191 if I drop the az I get more hosts to start with on the retry filter though.
19:30:10 sean-k-mooney yes so that is placment limiting the hosts
19:30:18 sean-k-mooney to only those in the requeted az
19:30:41 sean-k-mooney its likely that one of the later fiters is failing
19:31:00 sean-k-mooney can you paste the fule filter logs for the spwan to http://paste.openstack.org/
19:31:32 alexe9191 actually what I said was just wrong.. i end up with the same number of hosts 148 if I drop the az, the scheduling happen though cause az filter is not filtering anything out
19:31:41 alexe9191 yes one moment let me sanitise it
19:32:13 sean-k-mooney ya if you have enable the plamcent version you can also disable the az filter
19:32:31 alexe9191 indeed that will also be done since it can be used
19:32:36 alexe9191 so here is the version that works:
19:32:36 alexe9191 http://paste.openstack.org/show/802341/
19:32:37 sean-k-mooney over the release we have slowly been moving things too placment where it makes sense
19:33:15 sean-k-mooney yep so you went form 148 down to 104
19:33:25 sean-k-mooney then those would get weighed
19:33:58 alexe9191 http://paste.openstack.org/show/802342/ this is the one that does not (COmpute is reporting 0 cause those are disabled)
19:34:20 alexe9191 Filter AvailabilityZoneFilter returned 8 because 8 are only in zone1
19:34:28 alexe9191 so I am starting with less than I should
19:34:57 sean-k-mooney so the first following filters RetryFilter AvailabilityZoneFilter AggregateDiskFilter, AggregateCoreFilter and AggregateRamFilter can be removed
19:35:07 sean-k-mooney and NUMATopologyFilter should come last
19:36:07 sean-k-mooney so the one that faild had most of the host elimiated by the AvailabilityZoneFilter
19:36:29 alexe9191 indeed, because none of the hosts in zone1 reported it self to placement to be a good match for that flavor
19:36:40 alexe9191 though there are plenty of space on those hosts to cover the needed resources
19:36:47 alexe9191 and I have no max placement in the config
19:37:11 sean-k-mooney it sound like you have stale allocation in plamcent then

Earlier   Later