| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2022-06-28 | |||
| 09:14:27 | gibi | without the metadata piece | |
| 09:14:27 | sean-k-mooney | but sure for the rack affinty that is doable | |
| 09:14:46 | gibi | we need the metadata to mark an aggregate as target for affinity/anti-affinity | |
| 09:15:14 | sean-k-mooney | az anti affintiy which was the otehr request cant be done that way but we can do rack/row/room antiaffinity with aggreate metadta and a filter | |
| 09:15:29 | sean-k-mooney | gibi: ya so if wee were to do this i would make the filter generic | |
| 09:15:36 | gibi | sure | |
| 09:15:53 | gibi | that was an afterthought for me as well | |
| 09:15:54 | sean-k-mooney | so that you can define a set of lables and then express the anti affintiy requirement in the flavor | |
| 09:16:06 | sean-k-mooney | like you do with ceph | |
| 09:16:14 | sean-k-mooney | and the palcment maps | |
| 09:16:31 | gibi | yep generic label based affinity/anti-affinity either via the flavor or via the server group API | |
| 09:16:41 | sean-k-mooney | yep | |
| 09:17:08 | gibi | so we only need some devs to propose a spec and then the implementation :D | |
| 09:17:11 | gibi | easy peasy :D | |
| 09:17:12 | sean-k-mooney | that i would be ok with but you could map the info to placment too perhaps as a step 2 | |
| 09:17:32 | gibi | sean-k-mooney: you mean extend the aggregate concept in placement with metadta? | |
| 09:17:58 | sean-k-mooney | no we could likely modle this with aggreates and custom_traits | |
| 09:18:14 | sean-k-mooney | i have not fully tought that out | |
| 09:18:17 | gibi | I don't like it, as then the trait needs to be on the all the PRs in the aggregate | |
| 09:18:20 | sean-k-mooney | but it feels like we shoudl be able to do that | |
| 09:18:42 | sean-k-mooney | well i was thinking more like how misc_share_via_aggrate works | |
| 09:18:42 | gibi | technically doable but I would extend the aggregate concept instead in placement | |
| 09:19:13 | sean-k-mooney | i would be fine with extendign aggreates too if we had a clean way to extend it | |
| 09:19:36 | sean-k-mooney | perhaps traits on aggretes or some other metadta but doing it in nova first is alot simpler as you said | |
| 09:19:54 | sean-k-mooney | so get it working (nova) then make it fast (placment) | |
| 09:20:32 | gibi | we are in agreement :) | |
| 09:20:33 | sean-k-mooney | jkulik: interested in working on ^ | |
| 09:20:57 | sean-k-mooney | jkulik: its not an uncommen request so we can also try an pitch it to our pm dowstream | |
| 09:21:25 | sean-k-mooney | but no promices they will go for it and we wont look at it until at least the A cycle in any case | |
| 09:21:56 | sean-k-mooney | jkulik: but if you had time to work on it we have 2 week to spec freeze and we could proably reivew it if you had somethign ready before code freeze | |
| 09:22:10 | sean-k-mooney | jkulik:realisticly though its proably an A or lather cycle thing | |
| 09:22:20 | sean-k-mooney | but it woudl be doable in an out of tree schduler filter today | |
| 09:22:57 | sean-k-mooney | at least if you took the flavor approch initaly to expres the affinity requiremnt | |
| 09:23:32 | sean-k-mooney | extending teh server group api woudl require an api change which need a spec and is not backportable due to how api versioning works | |
| 09:24:14 | sean-k-mooney | gibi: what was the blazar usecase/imporance of this | |
| 09:24:45 | sean-k-mooney | i assume some sort of ha/fault tollernace usecase | |
| 09:25:12 | sean-k-mooney | oh no performance | |
| 09:25:13 | sean-k-mooney | i.e. reserve three GPU VMs in the same rack, where possible (hard/soft affinity). | |
| 09:25:15 | sean-k-mooney | Specifically this is to reduce network latency (MPI/horovod), and unnessacery TOR switch network contention. | |
| 09:25:21 | gibi | yepp | |
| 09:25:27 | sean-k-mooney | i mean i gues it could be used for either | |
| 09:25:38 | gibi | but there was limited time so we did not dig deep | |
| 09:25:44 | sean-k-mooney | ack | |
| 09:26:04 | sean-k-mooney | so there soft vs hard "requirement" would be filter vs weigher | |
| 09:26:20 | sean-k-mooney | but most of the logic would be the same so i woudl proably just do both | |
| 09:26:23 | jkulik | sean-k-mooney: I don't think I can make it in 2 weeks, but would be able to do it in the longer run | |
| 09:26:26 | sean-k-mooney | and try and shre the code | |
| 09:26:51 | sean-k-mooney | jkulik: ack | |
| 09:28:40 | jkulik | custom scheduler filter would be my idea, too. but we'd need it in the server-group API anyways as having one flavor per rack really doesn't scale | |
| 09:29:29 | sean-k-mooney | not per rack | |
| 09:29:36 | sean-k-mooney | so in the flavor you would have a policy | |
| 09:29:54 | sean-k-mooney | aggreate_anti_affinity:rack | |
| 09:30:12 | sean-k-mooney | aggreate_anti_affinity:room | |
| 09:30:26 | sean-k-mooney | aggreate_anti_affinity:row | |
| 09:30:30 | jkulik | ah, but still. customers are already overwhelmed by the number of flavors as is. I don't think we can add more for this :) | |
| 09:30:57 | sean-k-mooney | ya that is why the server-group api woudl be beeter | |
| 09:31:18 | sean-k-mooney | ther is a hack that you could use if you promise not to mention my name as the source :P | |
| 09:31:26 | jkulik | :D | |
| 09:31:37 | sean-k-mooney | so you could use server tags or instance metadta for now | |
| 09:31:42 | bauzas | I wonder how feasible a weigher could be | |
| 09:32:15 | bauzas | we could weigh per aggregatesd | |
| 09:32:17 | sean-k-mooney | so you could add aggreate_anti_affinity_* set of server tags | |
| 09:32:32 | sean-k-mooney | and then look at those in the filter/weigher | |
| 09:32:34 | bauzas | each host getting the same weigh | |
| 09:32:49 | jkulik | sean-k-mooney: that sounds wrong :D but thanks for the idea | |
| 09:32:51 | sean-k-mooney | bauzas: that is doable yes | |
| 09:33:32 | sean-k-mooney | jkulik: tags are somethimes used for this in other out of tree implemenation like tripleos instance ha feature | |
| 09:33:35 | jkulik | speaking of the server-group API: we've extended it to allow adding servers to server-groups after they're spawned. this can be helpful if you need to spawn a new instance anti-affin to a previously spawned one, where you didn't know that requirement, yet. | |
| 09:33:42 | bauzas | I'm still confused by the weights | |
| 09:33:48 | bauzas | but | |
| 09:33:48 | sean-k-mooney | its not how the api is inteded to be used but still | |
| 09:33:52 | jkulik | is that something that has a chance upstream, if we write a spec for it? | |
| 09:33:56 | bauzas | you could pass a hint | |
| 09:34:09 | bauzas | and then have a weigher looking up at the hint | |
| 09:34:14 | sean-k-mooney | schduler hint ya but that also versioned | |
| 09:34:26 | sean-k-mooney | bauzas: oh for the pack vs spread policy | |
| 09:34:33 | sean-k-mooney | for weighers | |
| 09:34:34 | bauzas | yup | |
| 09:35:06 | sean-k-mooney | ya so i was thining the weigher woudl jsut look at the metadta in the server-group policy | |
| 09:35:18 | sean-k-mooney | and ignore the multiplpere sign | |
| 09:35:31 | sean-k-mooney | or we woudl just set min =0 for the config option | |
| 09:35:47 | bauzas | I'm not in a favor of adding more in the existing server group API but... | |
| 09:35:51 | sean-k-mooney | so the multiplper for the weigher woudl afffect only magnitude | |
| 09:36:07 | bauzas | I guess we need to agree on the use case | |
| 09:36:08 | sean-k-mooney | well server group api is preferable to schduler hit | |
| 09:36:36 | bauzas | sean-k-mooney: from an UX, I think so | |
| 09:36:51 | bauzas | but, you know how much I like our server group implementations | |
| 09:37:54 | bauzas | like --min 2 --hint spread_my_stuff | |
| 09:45:31 | gibi | bauzas: you can look at the soft-anti-affinity weigher for reference how to do it | |
| 09:46:00 | gibi | ie how to do weigher for soft things | |
| 09:47:01 | gibi | jkulik: adding existing instance to server group needs a decision from a) allow adding an instance only if the policy is valid b)allow adding instance even if the policy is not valid yet but will be at the next move | |
| 09:47:28 | gibi | jkulik: I think in the past we was not able to agree on which way we should go | |
| 09:47:32 | gibi | but you can try again | |
| 09:53:40 | jkulik | we've opted for a) ... | |
| 09:53:51 | jkulik | where would be the right point to discuss this? | |
| 09:54:17 | sean-k-mooney | https://github.com/openstack/nova-specs/tree/master/specs | |
| 09:54:31 | sean-k-mooney | sorry my wifi dropped so missed the last few minutes | |
| 09:54:49 | sean-k-mooney | so not sure waht a) is | |
| 09:55:07 | sean-k-mooney | but if you want to creat a spec to discuss the desgin upstream copy https://github.com/openstack/nova-specs/blob/master/specs/zed-template.rst | |
| 09:55:24 | sean-k-mooney | and fill it in and we can discuss on the spec and on irc | |