| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-10-09 | |||
| 19:44:39 | jaypipes | mriedem: where exactly does the build request store the instance metadata? | |
| 19:44:40 | mriedem | instance=instance | |
| 19:44:50 | dansmith | it's in instance | |
| 19:44:51 | dansmith | heh yeah | |
| 19:45:00 | mriedem | instance.update(base_options) | |
| 19:45:08 | mriedem | build request stores a serialized instance object | |
| 19:45:13 | jaypipes | ah.. | |
| 19:45:19 | jaypipes | I missed that. sorry. | |
| 19:45:30 | jaypipes | ok, so I'll change the filter to pull the build request by instance_uuid. | |
| 19:45:34 | mriedem | https://github.com/openstack/nova/blob/stable/ocata/nova/compute/api.py#L936 | |
| 19:45:35 | jaypipes | thanks y'all | |
| 19:45:45 | mriedem | performance will suck | |
| 19:45:47 | mriedem | but... | |
| 19:45:52 | dansmith | but you're going to hell anyway? | |
| 19:45:53 | dansmith | yah. | |
| 19:45:57 | jaypipes | mriedem: yes, understood. | |
| 19:46:01 | sean-k-mooney | hum in that case the json fileter and compute capablity filters can already read it and do stuff... | |
| 19:46:25 | jaypipes | sean-k-mooney: we already have a custom IronicCapabilitiesFilter. don't get me started :) | |
| 19:46:48 | melwitt | jaypipes: yeah, you might probably run into perf problems during a db lookup in a filter (but I guess you said earlier you're doing an external system lookup in a filter already and that wasn't hurting perf?) | |
| 19:46:58 | sean-k-mooney | jaypipes: are you thinking of pulling this suff out in a pre placement filter or post out of interest | |
| 19:47:27 | jaypipes | this one's actually a network availability filter that looks for num_additional_ipv4 and num_ipv6 custom metadata key/values, calls out to our IPAM system from within the filter itself, and determines if the target system has enough IP addresses available. | |
| 19:47:31 | jaypipes | dansmith: you're welcome ^ | |
| 19:47:35 | melwitt | I remember when I worked at yahoo, we ran into perf issues with an in-tree filter that was doing db lookups and had to patch it out (and upstream fixed it soon after) | |
| 19:48:04 | jaypipes | melwitt: this is even worse. :) it's doing out of band calls to a REST API from within the in-tree filter :) | |
| 19:48:11 | sean-k-mooney | jaypipes: for l3 routeded network we are storing that kindo of info in placement | |
| 19:48:16 | melwitt | yeah. interesting that it's not causing perf issues | |
| 19:48:34 | jaypipes | melwitt: well, it's not like the traffic to the scheduler is huge... | |
| 19:49:00 | sean-k-mooney | jaypipes: any way you could jsut write some kind of bridge between neutron and the ipam to model it in placement and not use a scheduler filter | |
| 19:49:00 | jaypipes | melwitt: I mean, it's not like there's thousands of concurrent callers of nova boot for ironic hosts. | |
| 19:49:06 | melwitt | it used to be, is what I'm saying. but that was back before we had placement filtering the set of compute nodes down | |
| 19:49:14 | jaypipes | sean-k-mooney: baby steps :) | |
| 19:49:43 | jaypipes | melwitt: we're getting there.. slowly :) | |
| 19:50:07 | sean-k-mooney | jaypipes: hehe ok it just seam like some of that code might already exists for the l3 routed network and with gibis resouce stuff you might be able to have neutron pass say a host aggreage and ip reouce request back | |
| 19:50:29 | sean-k-mooney | * placement aggreate | |
| 19:51:20 | melwitt | oh, ironic. I don't know much about that. I think what I was referring to was VMs. it was since there were 1000 compute nodes, have a db lookup once per the 1000 and having concurrent requests caused the problems | |
| 19:51:27 | jaypipes | sean-k-mooney: ALL of that code already exists in the L3 routed net segments stuff :) we just need to get there first.. | |
| 19:51:46 | melwitt | *db lookup for each of the 1000 | |
| 19:53:51 | sean-k-mooney | jaypipes: so playing devils advocate here if you wrote a neutron ipam plugin driver and and we had a way to get the info from neutron to nova via the port you would not need the filter right. | |
| 19:54:35 | jaypipes | sean-k-mooney: correct. | |
| 19:54:46 | sean-k-mooney | jaypipes: im just thinking this would be generically useful out side oath too but for mass reuse we would not want to go the schduler filter route | |
| 19:54:48 | jaypipes | sean-k-mooney: I welcome your imminent pull request to our repo. | |
| 19:55:35 | sean-k-mooney | :) well have you talked to any neutron folk about how much effort that would be? | |
| 19:55:56 | sean-k-mooney | sound like you can do the schduler filter out of tree without nova changes in anycase | |
| 19:56:18 | mriedem | dansmith: on the detach/attach root volume spec https://review.openstack.org/#/c/600628/ did you see that it was updated to also allow detaching the root volume from stopped instances in addition to shelved offloaded? | |
| 19:56:30 | jaypipes | sean-k-mooney: though the "interesting" part about this particular filter is that it's quantitative -- "make sure this baremetal host is in rack that has X number of available IPv4s in its subnet" -- but the request isn't actually *for* that amount. It's basically "ok, just make sure I *could* get this many IPs, but don't actually grab those IPs for me. right now. maybe later, ok thx bai" | |
| 19:57:00 | dansmith | mriedem: no I saw some activity on that this morning and have it queued | |
| 19:57:12 | mriedem | jaypipes: sounds like what you want is quotas and resource claims brother! | |
| 19:57:31 | melwitt | jaypipes: that sounds kind of like the key/value discussion we've been having. need disk_typeA=4 but don't want to actually consume them | |
| 19:58:01 | mriedem | your fingers say no but your mouth....also says no | |
| 19:58:15 | melwitt | so I wonder if you could solve your complex partitioning/layout issues similarly | |
| 19:58:39 | mriedem | dansmith: yeah i'm not sure how i feel about it....but i'm also not sure i have a good excuse against allowing it | |
| 19:58:41 | sean-k-mooney | jaypipes: right ok so your not reseving the ips so your hoping that if you need them in the future you could resrve them | |
| 19:58:52 | sean-k-mooney | jaypipes: that sound more like a weigher | |
| 19:59:04 | dansmith | mriedem: well, I thought the shelve bit was because we didn't have to worry about disconnecting on the compute node | |
| 19:59:25 | mriedem | it's definitely more straight forward if the instance is shelved | |
| 19:59:30 | dansmith | yeah | |
| 19:59:31 | dansmith | anywa | |
| 19:59:35 | dansmith | I'll try to get around to it | |
| 20:05:58 | sean-k-mooney | melwitt: jaypipes not sure how the disk_typeA=4 is intended to work but asumming this was all in placement you "could" ask placement for 4 ips in this case but instead of claiming all the resouces in the allocation candiate only calim 1 ip. | |
| 20:06:48 | sean-k-mooney | melwitt: jaypipes that said for that code to be in the nova tree it would have to be generic and not for jsut this usecase. not sure how you would model that in flvor extraspecs however | |
| 20:06:49 | mriedem | jaypipes: efried: i'm trying to figure out what's going on with https://review.openstack.org/#/c/552105/ and https://review.openstack.org/#/c/544683/ from reading the ptg etherpad and it's not really clear to me if those are supposed to be combined or initial allocation ratios is a dependency for the other spec? | |
| 20:07:23 | mriedem | i spoke with yikun last night and he's confused as to what should be changed based on the etherpad, and i kind of am too since the etherpad is just mostly discussion | |
| 20:07:39 | melwitt | I think the initial ratios spec is a dependency for the other spec. two specs needed | |
| 20:07:58 | mriedem | https://review.openstack.org/#/c/544683/ says "#agreed in Stein PTG to squash this into [1]" | |
| 20:08:08 | mriedem | and the etherpad says "Sounds like the two specs need to be combined a bit." | |
| 20:08:23 | melwitt | ok, then I must not have understood | |
| 20:08:55 | melwitt | I thought it was two specs, one to define the initial allocation ratios and another to define how to handle the initial allocation ratios | |
| 20:09:20 | mriedem | why wouldn't that just be one spec? | |
| 20:09:55 | sean-k-mooney | mriedem: we said to combine them at the ptg yes but im trying to rember the details | |
| 20:10:02 | melwitt | I don't know. but that's what was being talked about in the room at the time, or so I thought | |
| 20:10:07 | jaypipes | sean-k-mooney, mriedem, dansmith, melwitt: to be clear, I'm not asking for anything at all :) I'm really just gonna do this custom filter thing as a stop-gap measure until we get on a more up to date version of nova. | |
| 20:10:29 | mriedem | agreed to add new initial_allocation ratio options with the default values from the ComputeNode object today, | |
| 20:10:39 | mriedem | change the existing *_allocation_ratio values from 0.0 defaults to None | |
| 20:10:51 | sean-k-mooney | jaypipes: oh i know. it just sounded like a useful thing. maybe for T | |
| 20:10:53 | mriedem | delete the code in the ComputeNode object so it's all config driven | |
| 20:11:00 | jaypipes | mriedem: yes, change them back to None from 0.0. | |
| 20:11:02 | mriedem | and then something something if config is set, that trumps the API | |
| 20:11:27 | jaypipes | mriedem: but I distinctly remember saying I was at the end of my proverbial rope with both of those specs and someone else would need to pick it up. | |
| 20:11:29 | mriedem | so mgagne's use case can use the API exclusively and CERN can use the config exclusively | |
| 20:11:29 | jaypipes | :) | |
| 20:11:39 | mriedem | jaypipes: yes yikun is happy to pick it up, | |
| 20:11:43 | jaypipes | cool, thx | |
| 20:11:46 | mriedem | but he doesn't understand what the direction is... | |
| 20:11:48 | sean-k-mooney | mriedem: yes i think we said if you want to be api drive in the config you set the value to none or remvoe it | |
| 20:11:54 | mriedem | which is why i'm trying to be a middleman here | |
| 20:12:12 | sean-k-mooney | mriedem: if you want to be config driven you set the config value and dont touch it from the api | |
| 20:12:43 | jaypipes | mriedem: you are wonderful middleware. | |
| 20:13:19 | mriedem | and yikun had a question, "How to address the upgrade case? If we already have a 0.0 cpu ratio in db, should we change it to 16.0 first? online migration?" | |
| 20:13:55 | sean-k-mooney | mriedem: spefically you set cpu_allocation_ratio=None initall_cpu_allocation_ratio=16.0 if you want to set a default for new node but manage the actuall value form api | |
| 20:14:04 | mriedem | would we change the ComputeNode.*_allocation_ratio to the config value on read if the value in the db is 0.0? | |
| 20:14:13 | sean-k-mooney | and set cpu_allocation_ratio=x if you want to manage via config | |
| 20:15:48 | sean-k-mooney | mriedem: does that make sense? | |
| 20:16:42 | mriedem | yes i get that, | |
| 20:16:52 | mriedem | the question is upgrades https://review.openstack.org/#/c/552105/5/specs/stein/approved/initial-allocation-ratios.rst@114 | |
| 20:18:29 | sean-k-mooney | mriedem: i guess on upgrade if 0.0 is set in the db that would also imply that the resouce provider allocation_ratio or what ever is 0. | |
| 20:18:37 | sean-k-mooney | 0.0 also correct | |
| 20:20:09 | sean-k-mooney | mriedem: if the resouce provide exists and we get 0.0 from the db but placemetn has another vaule i would assuem we shoudl keep the placement value but not sure if that case can happen today | |
| 20:21:10 | sean-k-mooney | the compute node will just override placement with the value it gets from the resouce tracker today in update provider tree right? | |
| 20:25:04 | mriedem | the allocation ratio in placement can't be 0.0 | |
| 20:25:09 | mriedem | it will literally shit itself | |