16:05:07 #startmeeting cinder 16:05:08 Meeting started Wed Aug 6 16:05:07 2014 UTC and is due to finish in 60 minutes. The chair is DuncanT-. Information about MeetBot at http://wiki.debian.org/MeetBot. 16:05:09 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 16:05:11 The meeting name has been set to 'cinder' 16:05:24 o/ 16:05:24 Hi 16:05:26 Hopefully John will be along in a moment.... who else is about? 16:05:27 hi 16:05:28 hi 16:05:32 \o 16:05:32 hi 16:05:33 hi 16:05:34 hi 16:05:36 o/ 16:05:37 o/ 16:05:40 hi 16:05:41 hi 16:05:56 o/ 16:05:59 #topic Mid cycle meetup 16:06:07 Do we have Scott yet? 16:06:22 hello 16:06:32 scottda: ^ 16:06:40 o/ 16:06:44 jgriffith: yay! 16:06:49 Hey John 16:06:53 sorry folks 16:06:59 traffic 16:07:03 Right, we'll come back to him 16:07:15 #topic Replication 16:07:21 sweet 16:07:23 hi, 16:08:03 has anybody else looked at the two approaches? 16:08:07 Following discussions with John, I looked at how you would do replication via drivers, with limited support in Cinder iteself 16:08:17 I put a design at https://etherpad.openstack.org/p/juno-cinder-volume-replication-apparochs 16:08:55 Hi all. Sorry I'm late 16:08:55 hi 16:08:55 jgriffith: I've have read both 16:09:01 I have * 16:09:20 it puts more burden on the driver, creating the volumes, but reduces the burden of the generic Cinder code 16:09:31 I have very little db footprint 16:09:59 I think it is less flexiable and harder on the driver, but can be a good start 16:10:15 ronenkat: I'd rather put the burden there for a start at least :) 16:10:19 I like the simple approach first, though I wonder if people who know more about replication can see anything missing? 16:10:37 Being harder on the driver is fine I think, drivers might chose to share some code where that makes sense 16:10:40 DuncanT-: full disclosure there are missing pieces 16:10:48 I fully admit 16:10:59 and ronenkat has pointed some of them out 16:11:14 fail over, disabling etc 16:11:14 agree with the simply approach for us anyways 16:11:24 i'm mostly trying to sort out whether this leaves the driver doing things it shouldn't really be responsible for... seems like it could be reasonable 16:11:36 eharney: expand? 16:11:44 jgriffith: I think that's what we wanted anyways. a simple first pass to build off of 16:11:49 espescially this late 16:11:51 eharney: ie "what should a driver NOT be doing" 16:11:51 the major point I am concerned with is that a driver may need to talk with another backend 16:12:17 jgriffith: i'm just trying to make sure this doesn't bring manager/service type behavior too far down into the driver itself... so far i think it doesn't but i'm still sorting that out 16:12:18 not that this late is ronenkat's fault. there have been slow responses back and it's a difficult problem. 16:12:26 ronenkat: I actually thought who better to talk to a SolidFire backend than a SoidFire driver :) 16:12:35 eharney: ahh... got ya 16:12:53 morning 16:12:53 * jgriffith has been the blocker on this for sure 16:13:26 but I think that the scheduler-aware pools is actually a good concept that address talk to multi backends 16:13:35 eharney: fair point... my position would be as soon as you do dissimilar backends it needs to move 16:14:01 ronenkat: hmm... ya know that's a really good point 16:14:07 jgriffith: that sounds about right to me 16:14:14 model it off of the pools design? 16:14:35 ronenkat: that's interesting.... 16:14:41 jgriffit: I really liked how the driver based apparoch works with the pool-aware scheduler 16:15:03 Ok.. so maybe we should tackle that 16:15:11 ronenkat: are you available next week? 16:15:26 availables yes, but remotly 16:15:34 that's almost as good :) 16:15:48 jgriffit: I plan to get the code up by Monday, so we can review it next week 16:15:49 maybe we can work this out as a team next week? 16:15:58 thingee: DuncanT- hemna kmartin ^^ ? 16:16:06 sure 16:16:09 the pool scheduler or replication ? 16:16:13 +1 16:16:27 or both :P 16:16:29 both I hope 16:16:30 +1 16:17:27 jgriffit: I think that the code you put up for driver support, would work nicely with what I put up on the etherpad 16:17:47 Makes sense to beat on it in person, given the timing 16:18:34 hemna: combo 16:18:38 Yeah, definitely seems like something to talk through in person. 16:18:43 DuncanT-: seems like no disagreements?! moving on? 16:18:44 yah 16:18:49 ronenkat: yeah... reading 16:19:02 #topic mid cycle meetup 16:19:03 I had some feedback for winston-d_ on the pool scheduler that I think closes some holes with it. 16:19:07 scottda: ^ 16:19:07 scottda: You're up 16:19:20 I've not much to say. The etherpad is up to date https://etherpad.openstack.org/p/CinderMidCycleMeetupAug2014 16:19:26 * thingee stops being a backseat driver to DuncanT- 16:19:29 ronenkat: mind post the url for etherpad if it's not this one: https://etherpad.openstack.org/p/juno-cinder-volume-replication-apparochs 16:19:46 I just want to make sure there's nothing else that needs to be done from my end re: the physical meetup 16:20:00 What time is it starting Tuesday? 16:20:00 I've done nothing for the Virtual meetup details. 16:20:03 ~17 of us, nice 16:20:05 hi all! 16:20:09 hemna: will go through your concerns about pool-aware scheduler after meeting 16:20:14 winston-d_: that is the link 16:20:16 winston-d_, sweet 16:20:30 scottda: thanks for helping put this together 16:20:37 no problem 16:20:39 yeah scottda thanks a ton 16:20:54 Thanks go to our admin Pam. You'll be able to thank her in person. 16:20:54 hemna: I was wondering that too. 16:21:07 9am? 16:21:14 scottda: You guys have admins!?! 16:21:15 start whenever. I've arranged coffee/snacks in the meeting room. 16:21:25 scottda: I think we can do a google hangout on the fly 16:21:29 scottda, great thanks 16:22:01 HP employees can maybe help escort non-hp from the front Security to the meeting room. 16:22:24 yah will do. 16:22:29 scottda: sure 16:22:45 I'll be onsite early and my phone # is on the etherpad 16:22:49 * jgriffith needs to call his old coworkers at HP FC 16:23:03 winston-d_, DuncanT-: since we have time, could talk about the pool aware scheduler? 16:23:26 'escort' http://www.hooverae.com/upload/files/050108/7825617.jpeg 16:23:28 hemna: Should we call it 9 am with no other suggestions? 16:23:50 DuncanT-: Nice. 16:23:52 Let's call it 9am... 16:23:53 yah that's what I was thinking 16:23:56 +1 for 9 16:23:57 9am sounds reasonable 16:24:03 scottda: you're providing the catering right? 16:24:03 sure 16:24:09 lol 16:24:17 We've breakfast every day and lunch Tues... 16:24:25 And coffee 16:24:32 I could have lunch brought in the other days, but thought people might want to escape the room. 16:24:40 :) 16:24:44 And I'll work out some beers somewhere Tues night. 16:24:49 oh, I wish I could be there, for food's sake. :) 16:24:55 * thingee should make some hipster coffee for folks 16:24:59 for beer's sake! 16:25:05 hemna: ha! 16:25:18 'hipster coffee'.... I'm intreageud 16:25:23 Anyway.... 16:25:25 #topic pool scheduler 16:25:28 thingee: sure, I can talk about pool-aware scheduler 16:25:30 hopefully it doesn't have a beard. 16:25:55 winston-d_: You're up 16:26:14 hemna: Ew. 16:26:43 thingee: since you bring this up, what is in your mind you want to talk about pool-aware scheduler? 16:27:03 winston-d_: merge it! 16:27:10 heh 16:27:16 or anyone else have specific question/concern? 16:27:20 bswartz: +2, done! 16:27:40 so one of the issues I have with it now is that it doesn't seem to handle the case where folks put a pool in a volume type. 16:27:48 winston-d_: I don't have anything specific. You said talk about it after the meeting. figured now would be fine 16:27:52 bswartz: you can show your support by +1, though. 16:27:54 thingee: I think it's getting good reviews and markstur posted a WIP patch with the 3PAR driver 16:28:07 our drivers will have a cinder.conf that lists the pools we want to support, but that doesn't prevent someone from putting another pool into a volume type. 16:28:15 I honestly haven't reviewed the code since I've been focusing on data/control path in driver for jgriffith and the replication changes. Pool scheduler is next on my list 16:28:18 we want to be able to report on all the pools for stats. 16:28:38 hemna: Your driver can (and should) just refuse the create 16:28:40 hemna: actually, I didn't quite get the part you mentioned, rushiagr said the same. 16:28:43 I think the drivers need to have another param passed in to get_volume_stats 16:29:00 we use volume types extensively today for pools 16:29:12 and we don't require admins to put all of those pools into cinder.conf 16:29:23 so there could be pools that only exist in volume types 16:29:37 hemna: yeah, like DuncanT- said, if someone accidentally put something wrong into vol types, you driver can just refuse to create 16:29:49 so we need to have the volume types passed in to get_Volume_Stats, so we can report on any pools that are specified there 16:30:01 they didn't put anything wrong into the type 16:30:18 they put a pool into the type, because they want to ensure that when the volume is created it goes to that specific pool 16:30:20 we do this today. 16:30:24 hemna: you'll need to change your driver :) 16:30:28 hemna: types are dynamic 16:30:33 hemna: are there any other drivers which do it the way you do it? 16:30:34 Supporting legacy, HP only type based pools is not currently in the design 16:30:35 because that pool has certain characteristics that they operators charge customers for. 16:31:12 winston-d_, yes, they are dynamic. that's the point of them. :) And it's also why we use types to specify pools 16:31:14 hemna: how about you report all pools the driver (admin) would like to support and let scheduler decide which ones are good? 16:31:29 hemna: I 'sort of' understood what your driver is doing, but couldn't understand how it will be affected if that param is not specified in the get_vol_stats 16:31:42 the scheduler needs to be aware of what's in the type 16:32:08 or we'll get a request to create a volume on what the scheduler thinks as well as a pool listed in the type, which would be different. 16:32:09 scheduler shouldn't pick a "type pool" for the wrong type or a "non-type pool" for a type 16:32:16 hemna: scheduler is, it has a capabilities filter to take care extra specs in vol types 16:32:23 the host entry at that point would be what the scheduler chose, not what the user chose from the type. 16:32:46 ok, so how do we report the pool if it only exists in the type? 16:32:48 hemna: just use scoped keys to differentiate 16:32:54 hemna: then you can support both 16:33:12 admins can create types after cinder is up, which would mean that certain pools only live in the type 16:33:25 hemna: what do you mean by pool that only exists in the type? 16:33:29 the driver won't report on pools in types, because it doesn't have access to the types at get_volume_stats time 16:33:42 So you can have a working pool that your driver doesn't know anything at all about? That's nuts! 16:34:08 winston-d_, 1) admin configures cinder.conf for Pools A-C 2) at a later date creates a type with Pool D 16:34:18 hemna: I'm having a hard time understanding what you're getting at.... 16:34:20 DuncanT-, it does and it doesn't. 16:34:23 driver knows about it, scheduler doesn't know how to associate pools with types (or not) 16:34:48 scheduler says create volume in pool1 w/ type2, type2 says use "premier" pool only. 16:34:48 the driver only knows about it by the pool only existing in the type. 16:34:53 it's not in cinder.conf 16:35:09 bottom line is I can't imagine you can't *fix* it, and holding up everything for the 3par driver doesn't seem *good* 16:35:25 This just seems like a hole in the scheduler for us. 16:35:29 hemna: Pools don't have to all be listed in cinder.conf.... the driver can just report them 16:35:45 as 1) we won't be able to report stats correctly unless we get the list of volume types at get_volume_stats time. 16:35:57 hemna: that's a bug 16:36:16 hemna: I don't understand why you'd rely on an arbitrary thing like types for stats reporting? 16:36:20 hemna: That's an insane design 16:36:32 *sigh* 16:36:34 it's not. 16:36:47 hemna: this approach is broken if there were other types using similar extra specs for their backend 16:36:50 we aren't going to report every single pool on the 3PAR 16:37:03 because we don't want volumes going to every pool on the array. 16:37:07 only certain pools 16:37:10 hemna: so let me see if I understand this... 16:37:13 which are defined in cinder.conf 16:37:16 but 16:37:23 hemna: currently.. you inspect the volume-type and look for a pool spec in it 16:37:25 admins can add pools to types that aren't in cinder.conf 16:37:28 hemna: say 3par has pool a,b,c, and the driver is able to report pool d if there was a type has extra specs says pool d, right? is this your desgin? 16:37:31 jgriffith, yes 16:37:32 hemna: if it's there you report that back in stats???? 16:37:39 that makes no sense 16:37:40 jgriffith, currently no, 16:37:46 ok... good :) 16:37:49 because we don't have that information at get_volume_stats time 16:37:49 so what do you do 16:38:01 but we want to 16:38:06 no you don't :) 16:38:09 lol 16:38:11 seriously.. you don't 16:38:17 that's bad juju 16:38:20 ? 16:38:27 I don't understand that 16:39:07 hemna: if there is a storwize and netapp in the same cinder deployment, admin create a type trying to associate that type to netapp, with pool d. Would your driver try to find a pool d simply because it looks at all types? 16:39:07 You sould report stats based on what you have and leave it to scheduler 16:39:14 hemna: Just report stats on all pools.... admin needs *somewhere* authoritative to know what he's allowed to put in a type 16:39:25 DuncanT-: +1 16:39:36 winston-d_, no, we should only get the volume type that has the host associated with our instance. 16:39:40 types 16:40:11 DuncanT-, that authoritative knowledge on what pools he can add were added by himself on the 3PAR. 16:40:28 hemna: That's an erm, weak, design 16:40:30 the admin is the person who created the pools to begin with. 16:40:42 pools don't magically get created on our array. 16:40:42 Just report them all 16:40:47 no 16:40:52 I don't understand 16:40:55 we don't want volumes getting created on all pools on the array. 16:41:00 hemna: if admin accidentally put the wrong pool name into 3par related type, in your design, your driver will keep complaining 'couldn't find the target pool to report'? 16:41:15 winston-d_, it's not the wrong type. 16:41:16 The admin created the pools, he knows which ones he does or doesn't want types to be able to access, so what is the problem? 16:41:22 he created a type with a correct pool name 16:41:33 DuncanT-, correct 16:41:38 like I explained earlier 16:41:48 he set Pools A-C in cinder.conf 16:41:51 hemna: i am thinking about corner cases, type with wrong pool name 16:41:56 then later created a type that contains Pool D. 16:42:03 hemna: Report them all and use the type definition to select the one(s) that are desired... that's the point 16:42:11 hemna: No need to selectively report 16:42:14 if conf says pools a,b,c and type says pool d -- even if we report stats for all 4 pools, we still need the scheduler to pick pool d for the type and a|b|c if not the type 16:42:34 markstur, correct, so the host entry is acurate 16:42:41 markstur: scheduler is already able to do that 16:42:59 markstur: as long as your driver reports pool d 16:43:01 scheduler picks pool a when type says it needs pool d 16:43:06 hemna: not sure what the problem is... stats are stats and should be reported 16:43:12 winston-d_, but we don't report pool d, because it only lives in the type. 16:43:16 it's not in cinder.conf 16:43:21 types are unknown at init and periodic reporting intervals 16:43:38 hemna: maybe you should write up and diagram in an etherpad 16:43:41 and share with everyone 16:43:44 ok 16:43:49 there is a big disconnect here 16:43:50 since we can't seem to figure out exactly what you're getting at 16:43:56 and it may very well be my own fault. 16:44:00 hemna: that's the issue, i think you should report pool d, regardless what is in cinder.conf. 16:44:08 hemna: yeah... communication is hard on IRC sometimes 16:44:13 hemna: It exists on the array, report it. Stop hiding it until there's a type pointing at it. 16:44:19 * jgriffith likes white boards 16:44:29 winston-d_, so say we report every pool on the array 16:44:32 jgriffith: +1 16:44:48 DuncanT-: I'd have to agree with you there 16:44:56 but our cinder.conf only lists a subset of those. how does the scheduler know not to pick pools outside of our desired list ? 16:45:06 DuncanT-: or at least have specific "OpenStack" related things you always report 16:45:09 no games 16:45:14 we aren't trying to hide anything 16:45:30 *sigh* 16:45:37 it's not about hiding things or games 16:45:49 hemna: then only report those spec'd in cinder.conf 16:45:53 and if you don't work, you don't work 16:45:54 hemna: Can this wait until Tuesday and a whiteboard 16:45:58 it about having a selected list of pools we want to use for the driver. we dont' want to use every pool on the array. 16:46:01 DuncanT-: good idea 16:46:02 hemna: if you want to use cinder.conf to enforce a list of supported pools, fine, don't report pool d, and scheduler won't put any volume to pool d 16:46:11 winston-d_: +1 16:46:18 winston-d_, ok and when pool D is in a volume type ? 16:46:19 winston-d_: I'm so confused... I don't see what the issue is here 16:46:39 hemna: the scheduler won't send it to your backend if you don't report it in stats 16:46:47 hemna: having pools magically appear once a type references them is not a sensible design 16:46:53 ok, that's definitely a problem then. 16:46:58 hemna: any volume created with that type will be in 'error' state 'cos 'No Valid Host can be found'. 16:47:05 hemna: then fix it 16:47:23 ok lets talk about this next week 16:47:26 I'm not getting through. 16:47:28 perhaps we will get some good examples of how to do pools after the funtionality is implemented in several drivers 16:47:37 hemna: if you want to use pool d, put it into cinder.conf and restart c-vol, done 16:47:40 and the confusion will go away 16:47:46 if any real issues remain, we can fix them 16:47:58 bswartz: i'm looking at you 16:48:03 then that completely negates the idea of volume types for us. 16:48:14 bswartz: when will netapp driver be ready for pool scheduler? :) 16:48:14 we've always used volume types to specify the pool. 16:48:15 winston-d: scheduler would still pick 'd' for other types and sometimes pick a|b|c for the type that requires 'd' 16:48:27 winston-d_: very soon 16:48:33 hemna: you still do, don't you? 16:48:42 yah 16:49:12 Now if our pool-aware driver uses the type's pool, then it won't match the one the scheduler said to use 16:49:22 markstur: not, scheduler will not, it doesn't know about pool d, simply 'cos your driver deson't report pool d 16:49:24 note 16:49:30 drivers in Cinder are not a static thing 16:49:41 they need maintenance and they change over time 16:49:55 sure. 16:50:00 we've done this in the past for MBE, QoS etc 16:50:01 so scheduler picks 'b' which doesn't apply to the type. how do we get it into the type's pool? 16:50:32 markstur: A type is not the right place to announce the existance of a pool 16:50:44 markstu: Taht is the tail wagging the dog 16:50:45 let's wrap this up for today 16:51:01 markstur: if the type specifically says, 'i need pool d', scheduler won't put any volume with this type to pool a|b|c. 16:51:02 maybe hemna can explain next week and we can help fix it :) 16:51:23 DuncanT-, OK the pool should be in the stats, but the scheduler needs to know which volume types are allowed to use which pools 16:51:26 DuncanT-, that's doesn't work for 3PAR. we use types to specify a pool, because that pool has certain characteristics the admins want to charge for, or the user wants because of their application. 16:51:32 DuncanT-: +1 for type is not the right place to anounce pools. 16:51:40 ok guys. sorry to suck up the meeting time. 16:51:46 moving on. 16:51:53 someone had to fill in the meeting time 16:51:58 :-) 16:52:05 Nothing else on the agenda, or I'd have called time a while ago, don't worry 16:52:08 hemna, markstur: let's take it to cinder channel 16:52:15 coolio 16:52:22 yep 16:52:34 Any other business? Speak now or forever.... 16:52:44 peace 16:52:57 #endmeeting