14:00:16 #startmeeting nova_scheduler 14:00:17 Meeting started Mon Nov 9 14:00:16 2015 UTC and is due to finish in 60 minutes. The chair is bauzas. Information about MeetBot at http://wiki.debian.org/MeetBot. 14:00:18 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 14:00:21 The meeting name has been set to 'nova_scheduler' 14:00:28 o/ 14:00:32 mornooning 14:00:48 Good UGT morning! 14:01:30 so n0ano is enjoying OPNFV Summit, I'm just holding the meeting :) 14:01:35 o/ 14:02:04 bauzas: thanks for running it. Didn't see Don's message until this morning 14:02:09 np 14:02:14 I have a nasty habit of not working on weekends :) 14:02:41 I don't have a precise agenda in mind so I guess it should be short 14:02:42 * johnthetubaguy lurks 14:03:34 lxsli: around for talking about scheduling bits? 14:04:16 that DST shift for both US and EU folks probably threw some people under the bus 14:04:17 if not, I wanted to discuss https://review.openstack.org/#/c/242636/ 14:04:24 okay, let's start then 14:04:30 people can join lately 14:04:34 so I have some requests, but we can leave that to open 14:04:41 johnthetubaguy: surre 14:04:48 It simply makes the resource tracker class a config option 14:04:52 so, last week's meeting was pretty brief http://eavesdrop.openstack.org/meetings/nova_scheduler/2015/nova_scheduler.2015-11-02-14.01.log.html 14:04:55 o/ 14:05:26 #topic summit 14:05:57 #link https://etherpad.openstack.org/p/mitaka-nova-resource-modeling 14:06:04 #link https://etherpad.openstack.org/p/mitaka-nova-scheduler 14:06:15 were the two sessions dedicated to the scheduler 14:06:31 given most of us were present at the summit, I won't speak about, unless someone steps in 14:06:40 just to make sure everyone is aware of the decisions we had 14:07:18 #info Nova-scheduler has been identified as a priority for Mitaka, in particular Resource modeling and usage 14:08:02 most of our specs are merged for Mitaka unless I'm wrong ? 14:08:28 there's still jaypipes' resource provider spec 14:08:36 oh right 14:08:42 that one isn't approved yet 14:08:45 which I'm having conceptual difficulties with 14:08:56 I'mm thinkning of providing a simpler spec 14:08:57 #link https://review.openstack.org/#/c/225546/ 14:09:08 but it's not fully cooked in my head yet 14:09:17 probably by later today 14:09:19 the list in the etherpad for the scheduler seems very small: https://etherpad.openstack.org/p/mitaka-nova-spec-review-tracking 14:09:43 it just includes this blueprint: https://blueprints.launchpad.net/nova/+spec/configurable-resource-tracker 14:09:43 johnthetubaguy: fair point, we need a bit of summit mojo before going further 14:10:47 edleafe: I don't see that blueprint as part of the scheduler priority, at least as discussed at the summit? 14:10:49 #action bauzas to update https://etherpad.openstack.org/p/mitaka-nova-spec-review-tracking with https://review.openstack.org/#/c/225546/ and possibly others 14:11:07 it hasn't been discussed AFAIR 14:11:13 johnthetubaguy: it has to do with the distributed scheduler efforts 14:11:31 * alex_xu lurks 14:11:34 edleafe: didn't think that was a focus for mitaka, but thats maybe a different discussion 14:11:40 I spoke with a few people who had ideas on this, and it seemed that the RT was a sticking point for most 14:11:51 edleafe: feels like it needs a spec anyways 14:11:54 johnthetubaguy: agreed, not a focus 14:12:02 johnthetubaguy: yup, the priority was about providing resource objects to the scheduler, not more than that 14:12:09 bauzas, I'm going to have a question resource tracking, but I think its better for opens - would you remind me when we get there 14:12:17 okay, I feel we can move on 14:12:25 edleafe: OK, so lets catch up afterwards and work out how to get that reviewed 14:12:26 since we should have some questions of opens 14:12:30 #topic bugs 14:12:33 johnthetubaguy: ok, I can write a spec if you think it needs one 14:12:50 just to make sure people don't forget to lookup any open bug 14:13:01 https://bugs.launchpad.net/nova/+bugs?field.tag=scheduler is a bit high (30) 14:13:40 we should probably do some triage 14:14:29 I can handle that with markus_z 14:14:51 any open bug that people want to raise? 14:15:08 I don't see a recent one tho 14:15:41 ok, moving on 14:15:46 #topic opens 14:16:00 so, edleafe you had one spec to discuss 14:16:09 #link https://blueprints.launchpad.net/nova/+spec/configurable-resource-tracker 14:16:15 s/spec/blueprint 14:16:34 well, let's consider that on hold for now 14:16:42 it simply makes RT a config option 14:16:48 no change in default behavior 14:16:59 a config option like what ? 14:17:11 you mean a pluggable RT ? 14:17:19 which class to instantiate for the RT object 14:17:29 just like the scheduler, the host manager, etc 14:17:45 * jaypipes joins conversation... 14:17:48 mmm, I have to doublecheck but process-wise, I feel we wanted to avoid to have config opts pointing classes 14:18:08 bauzas: ++ 14:18:11 and use other stuff like stevedore rather 14:18:17 it would have to be stevedore or similar, I feel, not sure it makes sense otherwise 14:18:23 yeah ++ 14:18:29 which concerns me a bit for RT, but that can be discussed in the spec 14:18:40 ok, understood 14:18:46 I was following the existing pattern 14:19:03 which is not the one we want to reproduce :D 14:19:16 edleafe: its one we are trying to destroy, if you could patch the scope doc to document that, it would be great 14:19:24 +1 14:19:35 that could go into the review doc 14:19:38 or anyone for that matter, that would be cool 14:19:55 ok 14:20:02 speaking of http://docs.openstack.org/developer/nova/code-review.html 14:20:03 I literally copy/pasted/edited https://github.com/openstack/nova/blob/master/nova/scheduler/driver.py#L29-L33 14:20:08 I know... 14:20:20 edleafe: but consider jaypipes's BP for metric monitors 14:20:31 edleafe: you'll see he used stevedore for that 14:20:47 sorry if that's undocumented, hence very good johnthetubaguy's point - that needs to be explained 14:20:55 we should fix that up, like we did for the virt drivers 14:21:03 but that's an implementation detail 14:21:13 johnthetubaguy: sounds a good low-hanging-fruit 14:21:38 so would a (low priority) change be to replace existing code like the one I referenced with stevedore-type imports? 14:21:45 #action bauzas to open a low-hanging-fruit for using stevedore with scheduler driver 14:21:53 edleafe: yeah that 14:21:58 ok, cool 14:21:59 edleafe, bauzas, ndipanov, johnthetubaguy, lxsli: would appreciate another review round on https://review.openstack.org/#/c/225546/ 14:22:19 I know that's not a bug, but that's the only way we have to log an easy feature people can do 14:22:28 jaypipes: been going over that a lot 14:22:49 jaypipes: yeah we covered that in the previous section, that's top prio 14:22:49 jaypipes: still seems like a huge amount of complexity for a small variation in behavior 14:23:09 so thats maybe a good segway to my question 14:23:26 johnthetubaguy: go for it 14:23:27 edleafe: alternatives welcome. 14:23:31 we should make a list of our spec and blueprint review priorities in here: https://etherpad.openstack.org/p/mitaka-nova-spec-review-tracking 14:23:46 fair point 14:23:50 I can try make sure we get the most focus on those 14:24:04 the code still goes in the usual place here: 14:24:12 #link https://etherpad.openstack.org/p/mitaka-nova-priorities-tracking 14:24:18 #link https://etherpad.openstack.org/p/mitaka-nova-spec-review-tracking 14:24:30 just adding those into the meeting notes 14:24:44 we spoke about getting help for implementing some of these 14:24:52 the reqspec-object had very nice review traction thanks to dansmith and jaypipes but anyone can also contribute 14:24:53 once we have the overall direction agreed 14:25:01 johnthetubaguy: yup 14:25:19 just wondering how we want to handle that 14:25:23 johnthetubaguy: for the moment, the only way I see is to open wishlist bugs as placeholders for referencing a BP 14:25:27 it's another hop tho 14:25:37 thats not really worth it, IMHO 14:25:54 ideally, I'd love to see a low-hanging-fruit tag for blueprints 14:25:57 we do have an etherpad, #link https://wiki.openstack.org/wiki/Nova/Mentoring#What_should_I_work_on.3F 14:26:26 we can't add tags to blueprints, otherwise that would be great 14:26:28 oh snap, indeed 14:26:41 but this is more about stuff in the middle I think 14:26:44 there is the low-hanging-fruit etherpad, awesomeness 14:26:54 stuff we have a plan for, but folks who know Nova could chew on it 14:27:12 that should usually be balanced in those meetings IMHO 14:27:13 probably just starting with an ML list post, talking about good places to jump in an help would be good 14:27:31 asking folks to jump into this meeting, I guess is how the get started 14:27:36 yup 14:27:43 probably need to make that clearer 14:27:46 somehow 14:28:00 that was all for me really 14:28:14 okay, we just need to make sure people are aware of that 14:28:15 basically communication bits and bobs 14:28:36 anyone who want to step up on scheduling bits can walk into the meeting bar 14:29:17 a quick ML post I think is a good action 14:29:25 who fancies doing that? 14:29:30 I can handle that 14:29:30 bauzas? 14:29:44 bauzas: thank you 14:29:57 #action bauzas to write an ML thread about how to step up for the scheduler bigs 14:30:00 meh 14:30:02 #undo 14:30:03 Removing item from minutes: 14:30:07 #action bauzas to write an ML thread about how to step up for the scheduler bits 14:30:37 ok, are we taking the 30min left to discuss about jaypipes's resource-providers spec ? 14:30:46 or are we considering it's worth reviewing it rather ? 14:31:05 I had a question - its a pretty open one 14:31:12 PaulMurray: sure 14:31:28 now that I've removed the ERT 14:31:39 (or at least as soon as it gets through the gate) 14:31:42 s/removed/deprecated :) 14:31:57 I wanted to circle back on why it was there in the first place 14:32:12 We needed a way to deal with accounting cpus differently 14:32:33 If we created a resource representing cpus that was accounted differently 14:32:54 would that be seen as another new resource? 14:33:02 jaypipes, ^^ :) 14:33:20 PaulMurray: we should totally have got that problem specification into a backlog spec, I think 14:33:24 PaulMurray: you thinking of a new Resource class representing vcpus ? 14:33:45 maybe 14:33:52 PaulMurray: this is a consistent way of handing out CPU resources across CPUs of different speed/capacities? 14:33:57 there was also a problem with ironic htat could be addressed this way 14:34:23 ironic takes all memory for example - not just deduct it 14:34:24 PaulMurray: it's a vCPU. it's not a different resource class. 14:34:48 PaulMurray: that's done in the IronicHostManager, right? 14:35:01 PaulMurray: Ironic's issues are dealt with using the min_unit and max_unit fields in the resource-providers spec. 14:35:06 PaulMurray: and then the virt driver is reporting the real resource usage 14:35:37 jaypipes, I'll need to read that 14:36:00 PaulMurray: and yes, the resource reporting problem is handled in the ironic-multi-compute spec, too (temporarily until resource-providers modeling solves the issue once and for all) 14:36:29 jaypipes, but for cpu example, its not quite vcpu - because we would always say how many vcpu 14:36:56 jaypipes, its about what amount of time gets allocated to the vm vcpu 14:37:19 we wanted to give an idea of performance (like 1GHz worth for example) 14:37:40 if I want 4 vcpu each worth about 1GHz 14:38:10 how could I account taking 1GHz worth from my available resources given each has say 2GHz worth of performance 14:38:56 PaulMurray: that isn't quantitative. that is qualitative, and thus is capabilities, not resoruces. 14:39:19 sorry - I disagree 14:39:33 same applies for bandwidth on nics 14:39:45 PaulMurray: So can you divide one 2Ghz vcpu into 2 1Ghz vcpus? 14:39:58 edleafe, yes 14:40:11 Or 10 0.2 Ghz vcpus? 14:40:12 we do it in HP public cloud - always have done 14:40:13 Or... 14:40:28 edleafe, you get the idea 14:40:40 IOW, is it discreet chunks, or infinitely divisible? 14:40:45 erm, you can't divide one 2ghz CPU into 2 1Ghz CPUs. 14:41:00 jaypipes, no, but you give them time slices 14:41:19 I feel it's more about how to provide a quantity over time than just a finite quantity 14:41:22 yo can certainly run 2 vcpu on one cpu 14:41:29 yeah that 14:41:36 so, like concurrency 14:41:40 PaulMurray: that is oversubscription. 14:41:50 I feel it's not exactly that 14:41:51 jaypipes, not if you give half each 14:41:52 PaulMurray: has nothing to do with dividing Ghz. 14:41:53 its basically varying the over commit to try and make the performance feel the same across different CPUs running at different clock speeds right? 14:42:08 it's cgroups limits. 14:42:09 so trying to have CPU agnosic measure for CPU 14:42:10 that's all. 14:42:39 johnthetubaguy: that is normalized compute units. 14:42:52 jaypipes: I think thats what they are wanting here 14:42:54 https://review.openstack.org/#/c/192609/ 14:43:15 yeah, that sounds similar to me 14:43:19 johnthetubaguy: sure, but it has nothing to do with "accounting for vCPUs differently" 14:43:49 well, it does affect the overcommit rations and things, right? 14:44:04 no 14:44:26 so you want the flavor to save 6 units, across 2 vCPUs I guess? 14:44:34 jaypipes, there is a total amount of time slices per core - you can provide a given performance so long as you don't over commit those time slices 14:44:38 PaulMurray: am I miss interpreting your request here? 14:44:48 PaulMurray: and that would be a new resource class. 14:45:00 jaypipes, that's cool by me 14:45:02 PaulMurray: it's not "multiple ways of accounting for vCPU" 14:45:08 PaulMurray: cool. 14:45:11 jaypipes, agreed 14:45:14 right, that makes sense to me 14:45:29 vCPU == number of threads of qemu-kvm process for the VM. 14:45:40 CPU shares is a different resource class altogether. 14:45:46 absolutely 14:45:54 cool, we're on the same page. 14:45:54 I see 14:45:57 yup, makes sense 14:46:19 PaulMurray: once the resource-object models initial patches are in, let's add a new resource class for CPU shares (or units, or whatevs) 14:46:37 jaypipes, so if we made a resource for that - would they both always be there or is it up to the operator to chose which are used? 14:47:03 PaulMurray: I think you need both right? unless you always have 1 vCPU exposed to the guest or something? 14:47:16 PaulMurray: the CPU units resource could not always be there, because it depends on code running on nova-compute startup that would run a normalization thread to determine the supported unit for CPU. 14:47:33 PaulMurray: kinda like NUMA resources, right? 14:47:42 jaypipes: yeah, +1 on it being optional that way 14:48:02 jaypipes, yes, so are resources selectable - or does this come up as a None in some field? 14:48:06 PaulMurray: so we'd need to have an addition to the virt driver's get_available_resource() command that would return information about the available/capacity of CPU units for that hardware 14:48:27 the problem is that resource-objects doesn't take care of persistence 14:48:42 PaulMurray: it would not be a None field, but rather a lack of a record in the inventories table for that compute node and the "CPU units" resource class. 14:48:46 so, whatever a new Resource is created, it needs to come up with a plan on how to persist it 14:48:49 PaulMurray: make more sense now? 14:49:05 oh, because of resource-providers then 14:49:09 rigt 14:49:30 no more adding fields to compute_nodes. instead, we'd be adding records to the inventories table. 14:49:40 I need to read resource-providers (I did - but I need to again) 14:49:52 so that not only requires resource-objects but resource-providers 14:49:59 jaypipes, sounds like your doing everything I always wanted in ERT ! 14:50:14 PaulMurray: sure, no worries. I just want you to know I've considered the vCPU accounting use case from HP Cloud in my thinking on the resource-objects and resource-providers stuff. 14:50:26 cool 14:50:28 okay, I feel we need to all review resource-providers 14:50:44 (although I already did...) 14:50:46 bauzas: actually, gimme about an hour more. pushing more changes to it. 14:50:54 jaypipes: good to know, ty 14:51:00 lxsli, PaulMurray, edleafe, johnthetubaguy ^^ 14:51:08 jaypipes: gotcha 14:51:11 ack 14:51:15 I forgot to rework the biolerplate shit. 14:51:54 I felt we basically had an agreement on resource-providers at the summit, so that should be straightforward 14:52:09 bauzas: not really :) 14:52:18 bauzas: edleafe had alternative proposal. 14:52:18 jaypipes: well, I remember some implementation details 14:52:29 did I go to the same summit? 14:52:35 bauzas: which I believe lxsli also had negative feedback 14:52:36 jaypipes: but I'd like to see the spec approved, and then us discussing about the implementation bits 14:52:40 PaulMurray: yes :) 14:52:56 bauzas: erm, I'd rather have more discussion on the spec right now. 14:53:03 to be clear, yeah we all had questions about how to model that, but is that really spec-wise? 14:53:07 bauzas: because this is a foundational change... 14:53:10 jaypipes: fair enough then 14:53:19 jaypipes: you mean the data model impact? 14:53:26 yeah, working oit out on the spec seems better 14:53:55 jaypipes: okay, then we all know what to do 14:54:09 6 mins left, anything else to discuss ? 14:55:02 crickets 14:55:14 okay, lemme save you 5 mins of your lifetime 14:55:19 #endmeeting