| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2017-05-17 | |||
| 14:55:40 | bauzas | working now back on the conductor change now that we have the alternatives | |
| 14:55:44 | edleafe | assuming an independent scheduler, if a service requests some resources, the scheduler would make a selection, claim the resources to ensure that nothing else uses them, and then returns the selected RP | |
| 14:56:05 | edleafe | Nothing nova-y about it | |
| 14:56:29 | bauzas | edleafe: again, like I said, we plan to make scheduler a library for Queens | |
| 14:56:44 | bauzas | so it would eventually be possible for other services to use that lib | |
| 14:56:54 | edleafe | bauzas: that seems kind of silly if only Nova can use it | |
| 14:56:54 | bauzas | but for the moment, consider it as a nova-ism | |
| 14:57:06 | bauzas | baby steps at least | |
| 14:57:13 | bauzas | ie. the plan is | |
| 14:57:19 | bauzas | 1/ claims in Pike | |
| 14:57:28 | bauzas | 2/ scheduler as a lib in Queens | |
| 14:57:33 | edleafe | bauzas: baby steps forward, while taking full steps back | |
| 14:57:49 | bauzas | 3/ conductor uses that lib for filtering/weighting in Queens/Rocky | |
| 14:58:05 | bauzas | 4/ other services could possibly be using that scheduler lib by Rocky | |
| 14:58:24 | bauzas | (c) by dansmith for the library thing | |
| 14:58:32 | bauzas | which I totally agree with | |
| 14:58:33 | edleafe | bauzas: no they couldn't, if we start tying scheduler to nova more and more | |
| 14:59:26 | edleafe | instead of getting rid of a nova-ism and making it part of the interface, we're now making scheduler more dependent on that nova-ism | |
| 14:59:38 | bauzas | edleafe: that's a truism, and I don't disagree with your statement | |
| 14:59:41 | dansmith | bauzas: no, it was johnthetubaguy's idea, I just fell in love with it | |
| 14:59:48 | edleafe | making it even less likely that any other service will ever use scheduler | |
| 14:59:58 | bauzas | what I disagree is with you saying that we go into that direction | |
| 15:00:15 | bauzas | dansmith: oops, hail to johnthetubaguy then :) | |
| 15:00:29 | edleafe | dansmith: that contradicts what you were saying earlier: that the scheduler is nova's scheduler | |
| 15:00:50 | bauzas | anyway, back to work for updating the conductor now | |
| 15:00:59 | edleafe | why do any of those steps if the end goal isn't to make it useful for other services? | |
| 15:01:01 | dansmith | edleafe: I don't want it as a library for other projects to use, I want it to be nothing but code in nova (i.e. not a service) | |
| 15:01:15 | dansmith | edleafe: because placement is the generic thing useful for other services | |
| 15:01:22 | johnthetubaguy | placement is for everyone right, and +1 what dansmith just said | |
| 15:01:48 | edleafe | ok, then let's tie scheduler to nova ever more tightly | |
| 15:02:16 | cdent | library is a bit of a misnomer, I guess? We mean something more like "module"? | |
| 15:02:21 | dansmith | cdent: yeah | |
| 15:02:37 | edleafe | cdent: yeah, "library" means generally useful | |
| 15:02:52 | cdent | library would be fun, but seems unlikely. Also, why would we replicate that confusing mass? | |
| 15:03:23 | johnthetubaguy | my think was, stop making RPC API calls to it, since it the process is no longer special, but thats a different thing | |
| 15:03:26 | edleafe | cdent: because the concept of choosing one RP over another is rather generic | |
| 15:03:29 | dansmith | edleafe: I think we've been on this "keep scheduler in nova, split out placement" path for quite a while, but I'm not sure the distinction was made explicit and given the "split the scheduler" talk before that, you're probably not the only one confused by the "plan" | |
| 15:03:45 | cdent | there could be a library for things that filter resource providers that is implemented outside of nova, using more clear techniques | |
| 15:04:02 | cdent | I think that would be useful | |
| 15:04:06 | edleafe | cdent: sure, but there was never any work even considered for that | |
| 15:04:06 | dansmith | could be, | |
| 15:04:17 | johnthetubaguy | cdent: yeah, thats a sepearate, quite interesting thing, that is a library | |
| 15:04:24 | dansmith | and you could also build a generic scheduling library that makes it clear we should dump much of what nova's scheduler does | |
| 15:04:32 | dansmith | and when you guys build that, we can evaluate :) | |
| 15:04:40 | edleafe | cdent: whereas we've spent a lot of effort on cleaning up the interface between nova and the scheduler | |
| 15:05:11 | cdent | edleafe: I still think that interface should be kept as clean and explicit as possible. That's simply good practice. | |
| 15:05:30 | edleafe | cdent: and if the scheduler were an independent library, it could be cleaned up radically, as long as the interface contract was maintained | |
| 15:05:50 | edleafe | cdent: well, that's why I started this conversation. | |
| 15:06:01 | edleafe | We're making the interface dirtier | |
| 15:06:10 | cdent | can someone point me at this dirtying? | |
| 15:06:13 | johnthetubaguy | edleafe: where? | |
| 15:06:23 | edleafe | basing the number of returned hosts on max_attempts | |
| 15:06:37 | edleafe | which is a nova-ism that we've discussed removing in the past | |
| 15:06:45 | bauzas | I would certainly appreciate reviews on my changes | |
| 15:07:17 | edleafe | IOW, any other potential user of scheduler would now get back the number of hosts that nova wants | |
| 15:07:51 | edleafe | IMO, it would be cleaner to make the number of hosts to return per request explicit | |
| 15:08:11 | edleafe | and move max_attempts out of the scheduler config | |
| 15:08:14 | johnthetubaguy | edleafe: so the retry configuration needs to be set by the operator where? | |
| 15:08:45 | edleafe | johnthetubaguy: somewhere in nova's config, not in scheduler's config | |
| 15:08:59 | johnthetubaguy | scheduler config is nova config right now, and there is no plan to change that right? | |
| 15:09:02 | edleafe | johnthetubaguy: Unless, of course, we are deciding to keep the two locked together | |
| 15:09:08 | johnthetubaguy | placement config is a totally different thing | |
| 15:09:25 | edleafe | johnthetubaguy: no plan, correct. It's been pointed out several times as something we need to change | |
| 15:09:38 | edleafe | if we want an independent scheduler | |
| 15:09:53 | cdent | fwiw, edleafe, I agree with you: the config of attempts should be outside of the nova-scheduler's domain, it should accept an arg | |
| 15:10:06 | cdent | _even_ if that code never becomes a lib | |
| 15:11:44 | bauzas | cdent: well, technically, we said to return alternatives by the number of retries | |
| 15:11:53 | johnthetubaguy | seems like you want the retry conf set centrally not different on every compute node, thats the bit that matters I guess? | |
| 15:11:59 | bauzas | cdent: and atm we have that flag in the scheduler group | |
| 15:12:29 | bauzas | although it's settable per compute given it's used by the scheduler.utils module | |
| 15:12:44 | johnthetubaguy | bauzas: hmm, joy | |
| 15:13:01 | edleafe | johnthetubaguy: by not passing the number of hosts to return to the scheduler, it doesn't matter what config file it's set in. | |
| 15:13:18 | edleafe | it's set and unchangeable for any other service | |
| 15:13:18 | bauzas | again, I beg people to review https://review.openstack.org/#/c/465175/ if they have matters | |
| 15:13:53 | edleafe | it seems like since keeping the interface clean is more work, we'll just keep doing things the old way with tying scheduler to nova | |
| 15:14:04 | edleafe | which dansmith says is what we're going to do | |
| 15:14:37 | johnthetubaguy | I am all for keeping the interface clean, it just feels like that belongs inside the scheduler to me, but I am kinda just stuck in the old ways I guess | |
| 15:15:08 | edleafe | johnthetubaguy: so you don't ever see any service other than nova ever ever ever using the scheduler? | |
| 15:16:31 | johnthetubaguy | edleafe: basically no, I could see another seam being added to extract the filter/weigher stuff thats been cut and paste all over the place, and some placement helper utils, but that feels like a set of problems we should ignore for now, so we can make quicker progress | |
| 15:17:03 | edleafe | johnthetubaguy: agree that we shouldn't spend time on it now | |
| 15:17:04 | dansmith | johnthetubaguy: agree | |
| 15:17:15 | edleafe | johnthetubaguy: disagree that we should actively make things worse | |
| 15:17:32 | edleafe | worse == tighter coupling | |
| 15:19:02 | johnthetubaguy | right now there is random util dust sprinkled all over, thats bad, I need to go review the proposed code | |
| 15:20:02 | sean-k-mooney | dansmith: johnthetubaguy out of interest do you ever see a case where i would be allowed to pass a set of claime to nova boot? not saying that is desireable but has that come up as a topic before? | |
| 15:20:16 | dansmith | sean-k-mooney: it has | |
| 15:20:25 | johnthetubaguy | sean-k-mooney: yeah, came up with the watcher folks I think | |
| 15:20:49 | johnthetubaguy | reservations, etc | |
| 15:20:52 | sean-k-mooney | cool was any desion reached on that or was it defered to later | |
| 15:21:02 | dansmith | sean-k-mooney: what do you think? :P | |
| 15:21:12 | sean-k-mooney | much later haha | |
| 15:21:14 | dansmith | we can't even agree which color to paint the bike shed | |
| 15:21:27 | dansmith | well, some of us can, but .. :P | |
| 15:23:37 | sean-k-mooney | ok cool as long as we can at least all agree to use the placement api for track resources and allocations of those resources thats better then what we have today | |
| 15:24:24 | sean-k-mooney | well thats perhaps unfair neutron is already using it for ip pools for the l3 routing stuff so we have made more progress then just agreeing to use the placement api | |
| 15:27:59 | sean-k-mooney | dansmith: by the way you summit talk on the cells v2 work was really good. jays talks on the placement apis were also good to watch | |
| 15:28:11 | dansmith | sean-k-mooney: thanks :) | |
| 15:43:42 | cfriesen | kashyap: what would you think of https://review.openstack.org/#/c/461456 ? The rationale being that it's defined as a realtime mask so if the user specifies "1-2" they should get vCPUs 1 and 2 as realtime. | |
| 15:45:41 | sfinucan | cfriesen: I took a look at it. Looks sensible to me. Do we document support image metadata anywhere though? | |
| 15:45:47 | sfinucan | ...or is that up to Glance to do? | |