Wednesday, 2016-04-06

*** vilobhmm11 has quit IRC00:06
*** vilobhmm11 has joined #openstack-meeting-cp00:06
*** sdake has joined #openstack-meeting-cp00:32
*** sdake_ has quit IRC00:34
*** vilobhmm11 has quit IRC00:49
*** sdake_ has joined #openstack-meeting-cp00:51
*** sdake has quit IRC00:51
*** sdake has joined #openstack-meeting-cp01:55
*** amrith is now known as _amrith_01:56
*** sdake_ has quit IRC01:56
*** diablo_rojo has quit IRC02:29
*** sdake_ has joined #openstack-meeting-cp03:01
*** sdake has quit IRC03:04
*** markvoelker has quit IRC03:26
*** vilobhmm11 has joined #openstack-meeting-cp03:45
*** markvoelker has joined #openstack-meeting-cp04:26
*** askb has joined #openstack-meeting-cp04:30
*** markvoelker has quit IRC04:32
*** Kiall has quit IRC04:52
*** Kiall has joined #openstack-meeting-cp04:56
*** askb has quit IRC05:22
*** askb has joined #openstack-meeting-cp05:23
*** sekrit has quit IRC05:30
*** sdake has joined #openstack-meeting-cp05:40
*** sdake_ has quit IRC05:42
*** sdake_ has joined #openstack-meeting-cp05:49
*** sdake has quit IRC05:52
*** sekrit has joined #openstack-meeting-cp06:23
*** markvoelker has joined #openstack-meeting-cp06:29
*** belmoreira has joined #openstack-meeting-cp06:30
*** markvoelker has quit IRC06:35
*** vgridnev has joined #openstack-meeting-cp06:59
*** sheel has joined #openstack-meeting-cp07:05
*** vilobhmm11 has quit IRC07:10
*** vgridnev has quit IRC07:29
*** vilobhmm11 has joined #openstack-meeting-cp07:39
*** markvoelker has joined #openstack-meeting-cp08:30
*** vgridnev has joined #openstack-meeting-cp08:34
*** markvoelker has quit IRC08:35
*** vilobhmm11 has quit IRC08:40
*** vgridnev has quit IRC08:57
*** _amrith_ is now known as amrith09:04
*** amrith is now known as _amrith_09:12
*** _amrith_ is now known as amrith09:18
*** amrith is now known as _amrith_09:25
*** _amrith_ is now known as amrith09:26
*** amrith is now known as _amrith_09:27
*** _amrith_ is now known as amrith09:28
*** amrith is now known as _amrith_09:38
*** _amrith_ is now known as amrith09:38
*** vgridnev has joined #openstack-meeting-cp09:55
*** sdake_ has quit IRC10:02
*** sdague has joined #openstack-meeting-cp10:09
-openstackstatus- NOTICE: npm lint jobs are failing due to a problem with npm registry. The problem is under investigation, and we will update once the issue is solved.10:18
*** ChanServ changes topic to "npm lint jobs are failing due to a problem with npm registry. The problem is under investigation, and we will update once the issue is solved."10:18
*** markvoelker has joined #openstack-meeting-cp10:31
*** markvoelker has quit IRC10:36
*** askb has quit IRC11:47
*** amrith is now known as _amrith_11:48
*** raildo-afk is now known as raildo12:14
*** markvoelker has joined #openstack-meeting-cp12:15
*** sdake has joined #openstack-meeting-cp13:15
*** sdake_ has joined #openstack-meeting-cp13:19
*** sdake has quit IRC13:19
*** sdake_ has quit IRC13:24
*** annegentle has joined #openstack-meeting-cp13:27
*** sdake has joined #openstack-meeting-cp13:27
*** diablo_rojo has joined #openstack-meeting-cp13:41
*** _amrith_ is now known as amrith13:44
*** rpjr has joined #openstack-meeting-cp14:14
*** sheel has quit IRC14:27
*** sigmavirus24_awa is now known as sigmavirus2414:40
*** sdake_ has joined #openstack-meeting-cp14:42
*** sdake has quit IRC14:42
*** sdake_ is now known as sdake14:43
*** sdake_ has joined #openstack-meeting-cp14:48
*** raildo is now known as raildo-afk14:49
*** sdake has quit IRC14:51
*** raildo-afk is now known as raildo14:51
*** sigmavirus24 is now known as sigmavirus24_awa15:02
*** sigmavirus24_awa is now known as sigmavirus2415:03
*** vgridnev has quit IRC15:15
*** belmoreira has quit IRC15:17
*** vgridnev has joined #openstack-meeting-cp15:18
*** annegentle has quit IRC15:19
*** annegentle has joined #openstack-meeting-cp15:21
*** sheel has joined #openstack-meeting-cp15:26
*** sdake has joined #openstack-meeting-cp15:29
*** sdake_ has quit IRC15:30
*** annegentle has quit IRC15:34
*** annegentle has joined #openstack-meeting-cp15:35
*** sdake_ has joined #openstack-meeting-cp15:40
*** sdake has quit IRC15:43
*** rpjr has quit IRC15:46
*** rpjr_ has joined #openstack-meeting-cp15:50
*** xyang1 has joined #openstack-meeting-cp15:57
*** annegentle has quit IRC16:09
*** annegentle has joined #openstack-meeting-cp16:14
*** vgridnev has quit IRC16:25
*** jgriffith has joined #openstack-meeting-cp16:31
*** kmartin has joined #openstack-meeting-cp16:39
*** annegentle has quit IRC16:39
*** annegentle has joined #openstack-meeting-cp16:41
*** vilobhmm11 has joined #openstack-meeting-cp16:47
*** vgridnev has joined #openstack-meeting-cp16:53
*** vgridnev has quit IRC17:06
*** angdraug has joined #openstack-meeting-cp17:08
*** vgridnev has joined #openstack-meeting-cp17:09
*** vgridnev has quit IRC17:09
*** sigmavirus24 is now known as sigmavirus24_awa17:14
*** annegentle has quit IRC17:19
*** sdake_ is now known as sdake17:21
*** sdake_ has joined #openstack-meeting-cp17:29
*** sdake has quit IRC17:29
*** sdake has joined #openstack-meeting-cp17:42
*** david-lyle has quit IRC17:44
*** sdake_ has quit IRC17:44
*** sigmavirus24_awa is now known as sigmavirus2417:52
*** annegentle has joined #openstack-meeting-cp17:55
*** vilobhmm11 has joined #openstack-meeting-cp17:55
*** xyang1 has quit IRC17:58
*** annegentle has quit IRC17:59
*** vilobhmm111 has joined #openstack-meeting-cp18:00
*** annegentle has joined #openstack-meeting-cp18:01
*** vilobhmm11 has quit IRC18:02
*** david-lyle has joined #openstack-meeting-cp18:02
*** angdraug has quit IRC18:37
*** rockyg has joined #openstack-meeting-cp18:41
*** angdraug has joined #openstack-meeting-cp18:53
*** tyr_ has joined #openstack-meeting-cp19:00
*** vgridnev has joined #openstack-meeting-cp19:03
*** xyang1 has joined #openstack-meeting-cp19:06
*** rockyg has quit IRC19:15
*** sheel has quit IRC19:17
*** diablo_rojo has quit IRC19:25
*** vgridnev has quit IRC19:26
*** vgridnev has joined #openstack-meeting-cp19:30
*** rpjr_ has quit IRC19:40
*** diablo_rojo has joined #openstack-meeting-cp19:42
*** annegentle has quit IRC19:55
*** kmartin has quit IRC20:06
*** kmartin has joined #openstack-meeting-cp20:07
*** rockyg has joined #openstack-meeting-cp20:13
*** vgridnev has quit IRC20:30
*** annegentle has joined #openstack-meeting-cp20:31
*** annegentle has quit IRC20:31
*** annegentle has joined #openstack-meeting-cp20:32
*** annegentle has quit IRC20:32
*** amrith is now known as _amrith_20:32
*** annegentle has joined #openstack-meeting-cp20:33
*** vgridnev has joined #openstack-meeting-cp20:33
*** sdake_ has joined #openstack-meeting-cp20:37
*** sdake has quit IRC20:39
*** sdake has joined #openstack-meeting-cp20:42
*** sdake_ has quit IRC20:44
*** rockyg has quit IRC20:47
*** annegentle has quit IRC20:49
*** vgridnev has quit IRC20:49
*** annegentle has joined #openstack-meeting-cp20:54
*** annegentle has quit IRC20:55
*** takashin has joined #openstack-meeting-cp20:57
*** mriedem has joined #openstack-meeting-cp20:58
*** andrearosa has joined #openstack-meeting-cp20:59
scottdaildikov: Meeting?21:01
ildikov#startmeeting cinder nova api changes21:01
openstackMeeting started Wed Apr  6 21:01:21 2016 UTC and is due to finish in 60 minutes.  The chair is ildikov. Information about MeetBot at http://wiki.debian.org/MeetBot.21:01
openstackUseful Commands: #action #agreed #help #info #idea #link #topic #startvote.21:01
*** openstack changes topic to " (Meeting topic: cinder nova api changes)"21:01
openstackThe meeting name has been set to 'cinder_nova_api_changes'21:01
scottdaGood timing!21:01
scottdascottda ildikov DuncanT ameade cFouts johnthetubaguy jaypipes takashin alaski e0ne jgriffith tbarron andrearosa hemna erlon mriedem gouthamr ebalduf patrickeast smcginnis diablo_rojo21:01
jgriffitho/21:01
andrearosao/21:01
takashino/21:01
DuncanTo/21:01
ildikovscottda: thanks :)21:01
ildikov#chair scottda21:01
openstackCurrent chairs: ildikov scottda21:01
mriedemo/21:02
*** hemna has joined #openstack-meeting-cp21:02
smcginniso/21:02
diablo_rojoHello21:02
*** raildo is now known as raildo-afk21:02
smcginnisNice, learned about the #chair command.21:02
*** ebalduf has joined #openstack-meeting-cp21:02
hemnayough21:02
ildikovsmcginnis: I learnt new things like this today too :)21:03
smcginnisAlways more to learn. ;)21:03
ildikovetherpad: #link https://etherpad.openstack.org/p/cinder-nova-api-changes21:03
ildikovsmcginnis: I hear ya ;)21:03
scottdaI was concerned that this meeting is pretty late for some people. I think DuncanT is UTC + 300 so it's 2400 there.21:04
ildikovso the first topic on the etherpad is the meeting time slot21:04
DuncanTYup, midnight here21:04
scottdaWho is furthest East, i.e. is anyone earlier than UTC -700 PDT TZ?21:04
scottdatakashin: ?21:04
ildikovtakashin: what is your time zone?21:04
takashinJST21:04
takashinUTC+921:04
ildikovso it's 6am in yours now, right?21:05
takashinYes.21:05
scottdaOK, so this is about as good as it gets then.21:05
scottdaJust checking. Duncan already said he was going to hate me in the morning :)21:05
ildikovscottda: we couldn't get much better :(21:06
DuncanTI'll survive and just curse Scott in the morning21:06
hemnadang, that's rough21:06
ildikovDuncanT: sorry, it's 11pm here too, I almost feel your pain21:06
scottdaildikov: Fair enough, I just wanted to check. We can move on....21:06
ildikovalright21:06
andrearosaI am on holiday ATM and it is 11pm here so I win!21:06
ildikovandrearosa: kudos!21:06
*** annegentle has joined #openstack-meeting-cp21:06
scottdaHopefully, we do a couple more of these before the Summit and then get to some consensus at the Summit...21:07
ildikovso we have a few alternatives on the etherpad to track more info about attachments21:07
scottdaSo we won't have to keep doing this for too terribly long.21:07
ildikovscottda: +121:07
ildikovthe idea about the meetings is to ensure progress21:07
ildikovhopefully the time zone issue will give us some extra motivation21:08
scottdaSo, this is a bit of work, but hemna started creating diagrams....21:08
scottdahttps://www.gliffy.com/go/publish/image/10360157/L.png21:08
scottdaWe don't want to just make some pictures for the fun of it, but it seems useful to figure out the flow of things for attach, detach, nova live-migration, and anything else relevant...21:09
andrearosawow very useful21:09
scottdaBefore we jump into details about how to fix all this, it'd be good to decide all the things that need fixing at the high level first. That's  my opinion.21:09
smcginnisscottda: +121:10
hemnascottda, +121:10
hemnayah21:10
hemnaI wanted to create another diagram like that for live migration as well21:10
ildikovI think we could add these diagrams to developer docs as well21:10
hemnasince that has a lot of interactions with Cinder as well21:10
hemnaI guess another with detach would be helpful too21:11
scottdaYeah, once you start in on the diagrams, there's uses everywhere.21:11
jgriffithscottda: might be worth mentioning there's also an explanation of the cinder side in the official docs here:  http://docs.openstack.org/developer/cinder/devref/attach_detach_conventions.html21:11
jgriffithscottda: might be good to level set on the design and how things are intended to work21:11
scottdajgriffith: Thanks, That's very useful.21:11
ildikovjgriffith: looks like a good fit for diagrams like the one above21:11
cFoutso/21:12
ildikovhemna: yeah, detach would be needed as well, it's similar regarding interaction with Cinder and os-brick21:12
hemnayup21:12
ildikovis it only me or that flow really is complicated?21:13
scottdaildikov: It's just you.21:13
scottdajust kidding21:13
hemna:)21:13
ildikovlol :)21:13
hemnathe flow is complicated.21:13
scottdaSo, I had thought a few months back about creating a simpler API...21:13
hemnaand my diagram probably isn't the best way to show it.21:13
scottdahttps://review.openstack.org/#/c/267715/21:14
smcginnishemna: That does capture a lot. Thanks for pulling that together.21:14
scottdaBut then issues around multi-attach came up, and live migration....21:14
ildikovsmcginnis: +121:14
hemnasmcginnis, welcome :)21:14
scottdaBut this does bring up a question: Should we be thinking more globally , and see if there's a simpler API that we could create that makes most/all of these problems go away?21:15
ildikovscottda: do you mean that those features are contradicting with your spec?21:15
scottdaildikov: No, not a contradiction...21:15
smcginnisscottda: I'm all for a simpler API.21:15
jgriffithsmcginnis: scottda can you clarify what you mean by "simpler" API21:15
scottdaJust that we are like the 5 blind men trying to describe the elephant......21:15
jgriffithsmcginnis: scottda the API is pretty simple as it is IMO21:15
scottdaEveyone looks at a different part, and sees it differently21:15
jgriffith"nova volume-attach xxx yyyy /dev/vdb"21:15
jgriffithhow much simpler?21:15
DuncanTjgriffith: I think we can get it down to three calls21:15
scottdajgriffith: I mean the underlying calls, not the initial command21:16
jgriffithDuncanT: again, please clarify what layer/api you're referring to21:16
jgriffithscottda: thanks21:16
DuncanTNot that API I think, the one between cinder and nova21:16
smcginnisDuncanT: +121:16
jgriffithDuncanT: it's already only 3 calls21:16
hemnajgriffith, didn't we whiteboard the 'simpler' API in one of the cinder midcycle meetups and it kinda turned into exactly what we have already today ?21:16
scottda jgriffith You and hemna and I started talking about this a couple mid-cycles ago...21:16
scottdasnap21:16
smcginnishemna: Hah, really. OK.21:16
scottdahemna: Yes, in Ft. Collins last summer21:16
jgriffithscottda: hemna correct21:17
jgriffithI don't know how/what you want to make simpler21:17
scottdaSee that spec for a basic idea of where we went with that ^^21:17
jgriffithit's pretty basic as is today21:17
jgriffithit's just not followed and there's some clunky things we have going on with managing and tracking21:17
DuncanTjgriffith: I'd get rid of reserve and its converse... not a huge win for nova but helps reduce failure windows for bare metal21:17
jgriffithDuncanT: how come?21:18
DuncanTjgriffith: Because things die between calls. With annoying frequency in dev systems21:18
hemnaI thought nova needed reserve21:18
jgriffithDuncanT: I'm not familiar with what reserving the resource in the DB causes?21:18
DuncanTjgriffith: Things stuck in 'attaching'21:18
jgriffithDuncanT: hmm... yeah, but then you introduce races21:18
hemnato ensure the volume was 'locked' for it to attach through the process21:18
mriedemnova needs reserve so the volume is 'attaching' from the api before we cast to the compute to do the actual attach21:18
hemnamriedem, +121:19
mriedemwe don't have a reserve like that for networks, for example, so we can hit races with neutron today too21:19
mriedemand quota issues21:19
jgriffithDuncanT: I think the idea of something failing between reserve and initialize is another problem that should be solved independently21:19
DuncanTjgriffith: Make it valid to call initialise_connection with do_reserve_for_me=True and bare metal is easier I think21:19
scottdaYeah, but why not wait until Cinder returns the connector info before Nova even proceeds? Do we need to be async here?21:19
jgriffithmriedem: +1 and thus my point about races... that's why that call is there21:20
jgriffithscottda: because somebody could come in and delete the volume21:20
mriedemdoes the ironic driver in nova even support volume attach?21:20
hemnajgriffith, +121:20
scottdainternally, we can still set to 'attaching' and then proceed to initialize connector:21:20
hemnaor another n-cpu node to put it into attaching as well21:20
hemna(multi-attach)21:20
DuncanTjgriffith: Either the API call wins the race against the delete, puts the volume into 'attached' and the delete fails, or the API call looses and returns 40421:21
scottdahttps://www.irccloud.com/pastebin/1L3KWe0j/21:21
DuncanTmriedem: It's being worked on21:21
jgriffithDuncanT: ok... but personally I'd say if you're resources are disappearing in the 1 second between those two calls we should fix soemthing else up to recover from it21:21
jgriffithDuncanT: and I don't know how you do that anyway if you lost something21:21
mriedemscottda: that diagram assumes that smart_attach is going to be fast on the cinder side?21:22
mriedemscottda: nova api can't be waiting for a long call to return from cinder else we timeout the request21:22
jgriffithI don't want to take up a ton of time on this though because I'm not overly familiar or understanding the problem completely21:22
DuncanTjgriffith: It is a small optimisation, but as I said, I managed to hit that window a fair bit, and we used to see it in the public cloud too, e.g. rabbit restarts21:22
scottdamriedem: It does, but that's not necessarily a good assumption....21:22
hemnamriedem, that smart_attach might take a while21:22
mriedemscottda: right, this is why we rejected doing the get-me-a-network allocation with neutron from nova-api21:22
mriedemb/c we can't hold up nova-api21:22
hemnabecause it looks like it is doing the work of initialize_connection today, which is entirely driver dependent.21:22
DuncanTmriedem: I wouldn't force nova to do a one step rather than two, I'm thinking of bare metal and none-nova consumers21:23
scottdaNova still has to wait for the connector info during initialize_connection...21:23
mriedemDuncanT: ok, well, i'm not really interested in the non-nova case21:23
hemnaif smart_attach was async to nova?21:23
hemnabut man that is a lot of changes21:23
mriedemscottda: sure, but we wait on the compute21:23
mriedemafter we already cast from nova-api21:23
scottdaAnd maybe not worth it. It's just an idea that gets proposed at various times.21:23
jgriffithmriedem: scottda I'm not sure why this is *good*?21:24
DuncanTI guess I'm in a minority though, and I don't think my proposal overlaps with the other discussion much at all, so maybe shelve it for now and let people think about it later?21:24
jgriffithmriedem: scottda as opposed to just doing better management of what we have?21:24
DuncanTjgriffith: initalise_connection is slow, so kicking it off earlier and picking up the result later can be a win21:24
jgriffithmriedem: scottda or... "more efficient" better implementation of what we have21:24
*** sdague has quit IRC21:24
jgriffithDuncanT: why? / how?  sorry, I'm not following21:24
scottdajgriffith: That may be the way to go. I'm just bringing this up because it had been discussed previously.21:24
jgriffithDuncanT: no matter what you can't attach a volume w/out an iqn21:25
scottdaWe can move on to discussing just fixing what is missing at the moment, as far as I'm concerned.21:25
mriedemi've had thoughts on ways to make boot from volume better in nova, but it doesn't really have anything to do with what we need to accomplish before the summit, which is what this meeting is supposed to be about21:25
DuncanTjgriffith: Look at EMC.... they were taking long enough for the RPC to time out when having to do FC zone setup too21:25
jgriffithso if the backend is slow for giving that for some reason ???  you can't do anything without it21:25
mriedemi have a hard stop in like 30 minutes21:25
jgriffithDuncanT: no, that's different21:25
scottdaLet's move on....21:25
DuncanTOk, we can come back to this later21:25
jgriffithDuncanT: that was an API response issue with multiple clones to their backend API simultaneously21:25
jgriffith"their" API21:26
mriedemso i see 3 solutions in https://etherpad.openstack.org/p/cinder-nova-api-changes21:26
mriedemfor multiattach21:26
jgriffithDuncanT: they have a limit on # simultaneous API requests on teh backend21:26
mriedemwho wants to go over those?21:26
scottdamriedem: +121:26
* jgriffith can go over his21:26
ildikovmriedem: +121:26
ildikovjgriffith: the floor is yours :)21:27
jgriffithk... thanks21:27
jgriffithSo IMO the bigger challenge with a lot of things we've been circling on is more around managing attach status21:27
mriedemwhich one is this? #4?21:27
scottdaI think it's #221:27
hemnamriedem, #221:27
mriedemok21:28
jgriffithoh... yeah sorry21:28
jgriffithAlso to help:  #link https://review.openstack.org/#/c/284867/21:28
jgriffithso eharney brought up a point about that being a bit iSCSI centric, we can revisit that21:28
jgriffithbut the proposal I think solves the multi-attach problem as well as some of this circling about the current API and how things work21:29
jgriffithwe already pass the connector info in to initialize_connection... but sadly we don't really do much with it21:29
jgriffithif we took that info and built out the attachments table properly, we could just give the caller (Nova) back the attachment ID21:29
jgriffithNova wouldn't need to care about multi-attach etc21:30
jgriffithJust the attachment ID21:30
jgriffithno tracking, no state checking etc21:30
jgriffithSame holds true on the cinder side for detach21:30
jgriffithwe don't care anymore... if we get a detach request for a volume with an attachment-ID we just act on it21:30
jgriffithquit adding complexity21:30
scottdaWho would determine when to remove the export in your case jgriffith ?21:31
*** vilobhmm111 has quit IRC21:31
hemnasonus, I'm confused how initialize_connection works for multi-attach looking at the code.  re:  attachment = attachments[0]21:31
scottdaIN the case where some drivers multiplex connections.21:31
ildikovjgriffith: we still need to figure out in Nova when to call disconnect_volume21:31
jgriffithscottda: that's always up to the consumer21:31
jgriffithscottda: that's the point here... if it's multiplexed that's fine, but each "plex" has it's own attachment-id21:31
scottdaWould Nova just call detach with an attachment_id, and then Cinder (manager?) or driver? figures it out.21:31
hemnaildikov, if we stored the host and the instance_uuid, nova can make the correct choice on it's side.21:32
*** madskier has joined #openstack-meeting-cp21:32
jgriffithscottda: yes, that's the only way you can handle the deltas between drivers and their implementations21:32
*** vilobhmm11 has joined #openstack-meeting-cp21:32
jgriffithhemna: sorry... which part are you confused on?21:32
ildikovhemna: we need the back end info as well, regarding the multiplex or not cases21:32
jgriffithhemna: ildikov wait.. back up a second21:32
scottdajgriffith: OK, I do like that the consumer (Nova ) just calls detach(attachment_id) and let's Cinder figure out when to un-export based on driver21:32
jgriffithlet me try this21:32
jgriffithnova has node-A21:33
hemnajgriffith, line 920 in manager.py21:33
jgriffithwe request an attach of a volume to instance Z on node-A  (Z-A)21:33
hemnamakes an assumption that the correct attachment is always the first found.21:33
jgriffithwe then request another attach of the same volume also on node-A but now instance X21:33
jgriffith(X-A)21:33
jgriffithwe create an attachment ID for each one21:33
hemnaas attachments has a list of all attachments for that volume, which can be on any host or any instance.21:34
jgriffithwe don't care if your particular backend shares a target, creates a new one or boils a pigeon21:34
jgriffithhemna: please let me finish21:34
hemnaok, sorry, you asked why I was confused.21:34
jgriffithat this point if nova is done with the volume on Instance Z21:34
jgriffithit issues the detach using the attachment-id associated with Z-A21:34
mriedemi don't think that's the hard part, the os-detach call to cinder that is, the hard part is figuring out if/when we call virt.driver.disconnect_volume, which comes before calling cinder os-detach21:35
jgriffiththat goes into the detach flow on Cinder.. and IF and ONLY if a driver needs to do some special magic they can do something different21:35
jgriffithlike "hey... how many attachments to this host, volume etc etc"21:36
ildikovmriedem: yeah, my point exactly21:36
jgriffithmriedem: I'm not sure which part you're referring to?21:36
hemnamriedem, if cinder has the host and the instance_uuid for every entry in the volume_attachments table, nova can loop through those and decide if the volume has anything left on that n-cpu node.21:36
jgriffithmriedem: I mean...21:36
hemnaif it doesn't, then it calls disconnect_volume.21:36
jgriffithI am unclear on the challenge there?21:36
jgriffithhemna: +121:37
mriedemjgriffith: during detach in nova, the first thing we do is disconnect the volume in the virt driver21:37
smcginnishemna: So Cinder would call disconnect_volume in that case, not nova, right?21:37
hemnasmcginnis, no21:37
hemnanova does21:37
jgriffithmriedem: right...sorry, hemna 's comment pointed it out for me21:37
mriedemhemna: yeah we talked about this last week a bit21:37
smcginnishemna: Oh, right, I see.21:37
mriedemi had some pseudo logic in that meeting for the nova code21:37
hemnaonly n-cpu can, because that's the host where the volume exists (/dev/disk/by-path/<entry here>)21:37
jgriffithmriedem: so the trick is that in my case and LVM's case I've written it such that you get a unique target for each attach21:38
jgriffithmriedem: so even if you have the same LVM volume attached twice on a compute node it has two attachments/iqns21:38
jgriffithmriedem: so we don't care21:38
jgriffithyou said detach... we detach21:38
jgriffithmriedem: that's how it solves the problem21:38
ildikovI think we said something about having a flag about the back end21:39
mriedemso disconnecting Z-A doesn't mess up X-A21:39
jgriffithmriedem: exactly21:39
jgriffithmriedem: the idea is to completely decouple them21:39
mriedemildikov: jgriffith is saying that wouldn't be a problem with his soloution21:39
jgriffithmriedem: make them totally independent21:39
ildikovas when we have a target per volume than we need to call disconnect volume regardless of how many attachments we have on the host21:39
mriedemildikov: the flag, ifi remember correctly, was something in the connection_info about the cinder backend21:39
jgriffithmriedem: for devices that 'can't' do multiple targets for the same volume that's fixable as well21:39
jgriffithmriedem: you can still spoof it easy enough on the /dev/disk-by-path entry21:40
mriedemyou being cinder21:40
mriedem?21:40
ildikovmriedem: yeah, that might be the one, I don't remember where we placed it21:40
hemnaildikov, yah I think that's where it was.21:40
jgriffithmriedem: no, that is up to Nova/Brick when they make the iscsi attachment21:40
hemnashared/notshared flag21:40
jgriffithmriedem: well... yeah, cinder via volume-name change21:41
mriedemvolume-name change?21:41
jgriffithmriedem: yeah21:41
*** madskier has quit IRC21:41
ildikovhemna: right, I didn't like the name, but I like the flag itself I remember now :)21:41
mriedemi'm not following21:41
jgriffithmriedem: so in the model info instead of attaching and mounting at /dev/disk-by-path/volume-xxxxx.iqn umptysquat21:41
jgriffithtwice!!21:41
jgriffithyou do something like:  iqn umptysquat_221:42
jgriffithyou do something like:  iqn umptysquat_321:42
jgriffithyou do something like:  iqn umptysquat_421:42
jgriffithetc21:42
cFoutsno reference counting anywhere then21:42
jgriffithnova gets a detach call... uses the attach ID to get the device path and disconnects that one21:42
jgriffithcFouts: correct ZERO reference counting becuase they're indepndent21:42
jgriffithand decoupled21:43
hemnaso I think the question was, how to accomplish that for backends that can't do separate targets for the same volume on the same initiator21:43
mriedemthe attach id gets us the attachment which has the device path from the connector dict?21:43
jgriffithmriedem: I haven't worked out a POC patch on the Nova side yet because I've been told that people don't like the proposal so I don't want to spend time on somethign for nothing :)21:43
mriedemand we pass that connector to os-brick to disconnect?21:43
jgriffithmriedem: it can we have everything in the attach object21:44
jgriffithhemna: that's the exact case that I just described?21:44
jgriffithhemna: you just attach it using a modified name21:44
hemnabut udev is what creates those paths in /dev/disk/by-path21:44
hemnaso I'm confused21:45
jgriffithhemna: nah, we have the ability to specify those21:45
hemnawe don't create those paths though21:45
hemnaand by we, I mean os-brick21:45
jgriffithhemna: I can modify how that works21:45
jgriffithanyway....21:46
jgriffithis there even any general interest here?21:46
ildikovscottda: I think you mentioned NFS and SMBFS on the etherpad which have detach issues as well21:46
jgriffiththe snowflakes that require only a single target are a challenge, but it should be solvable21:46
scottdajgriffith: I think the idea sounds good. I certainly would keep it around until we have all alternatives discussed.21:46
ildikovscottda: do we have an alternative that addresses all types of detach issues we're facing with?21:47
jgriffithscottda: well I wasn't going to burn it in the next 15 minutes :)21:47
smcginnisjgriffith: My concern is the single target systems. But if we can get that to work, I like the simplicity.21:47
scottdaildikov: You mean including NFS and SMB? I'm not sure. Maybe hemna helps with that...21:47
ildikovjgriffith: I need to process more the snowflakes part to be able to have a solid opinion21:47
jgriffithsmcginnis: the single target systems are going to be a challenge no matter what I think.  I've yet to see a proposal that I think will work really21:47
hemnasmcginnis, that's always been the problem we haven't solved yet in general, nova not knowing when it can safely call os-brick.disconnect_volume21:48
jgriffithhemna: add some info or another check to Cinder21:48
jgriffithI mean worst case scenario you could just do that21:48
jgriffithhemna: cinder.api.safe-to-discon21:48
ildikovscottda: there's a note in the Issues summary part that says "Problem exists in non-multi-attach for NFS and SMBFS volumes"21:48
hemnajgriffith, if we stored both the host and instance_uuid in each volume_attachment table entry, nova can use that along with the 'shared' flag in the connection_info coming back from initialize_connection, to decide if it should call disconnect_volume or not.21:49
jgriffithhemna: snowflakes can implement a check/response21:49
jgriffithTrue/False21:49
jgriffithhemna: my proposal does just that21:49
jgriffithwithout the extra tracking complexity you mention21:49
ildikovjgriffith: I think if we can have something like that shared flag Nova can figure out at detach time that would help21:50
hemnaok, maybe I simply don't understand the nova side of your changes then.21:50
jgriffithhemna: https://review.openstack.org/#/c/284867/2/cinder/volume/manager.py Line 94721:50
hemnare: /dev/disk/by-path entries being created outside of udev21:50
jgriffithalright, fair enough21:50
jgriffithlet's hear your proposal?21:50
ildikov10 minutes left fro the official hour21:51
hemnamine isn't that different really.21:51
hemnaheh21:51
jgriffithildikov: yeah, I think it's a lot easier to add another check21:51
ildikovhemna: can we run through yours?21:51
jgriffithhemna: well how do you solve the problem that you said I don't solve?21:51
hemnahave os-reserve create the attachment table entry and return the attachment_id21:51
hemnanova has it for every cinder call after that.21:51
jgriffithhemna: uhhh21:52
hemnaincluding initalize_connection21:52
jgriffithso 2 questions:21:52
hemnacan I finish please ?21:52
jgriffith1. why put it in reserve21:52
jgriffith2. how is it better to just use my proposal in a different call?21:52
jgriffithhemna: yes, sorry21:52
hemnathanks21:52
hemnaso I like having it returned in os-reserve, because then every nova call has the attachment_id for what it's working on.  it's clean, and explicit.21:53
hemnathat solves the issue that I see in your wip for initialize_connection not handling multi-attach (re: manager.py line 920)21:53
jgriffith?21:54
hemnawe still have the issue of nova needing to know when it's safe to call osbrick.disconnect_volume.21:54
*** sdake has quit IRC21:54
hemnabut that can be overcome with the shared flag in connection_info coming back from initialize_connection, as well as having the host in the attachments table along with instance_uuid.21:54
hemnahttps://review.openstack.org/#/c/284867/2/cinder/volume/manager.py  line 92021:55
hemnaattachment = attachments[0]21:55
jgriffithhemna: so what your proposing though just creates an empty entry in the table during reserve, then it gets updated the same places as it does in my wip no?21:55
jgriffithhemna: because reserve doesn't have any info (it can't)21:55
hemnathat gets the first attachment it finds for that volume, which can be on any host or against any instance_uuid.21:55
hemnaall reserve needs to do is create the volume_attachments entry21:55
hemnaand get the attachment_id and return that.21:55
jgriffithhemna: that's better why?21:56
hemnanova has the instance_uuid, it can pass that to os-reserve as well.21:56
mriedemi was going to say, seems os-reserve needs the instance uuid21:56
hemnabecause we have the attachment_id for initialize_connection and we can always work on the correct attachment.21:56
hemnamriedem, yup.21:56
hemnathen the API from nova to cinder is explicit21:56
hemnaboth nova and cinder knows which attachment is being worked on21:57
hemnathere is no guess work.21:57
jgriffithmriedem: hemna I'm still unclear on how this is any different?21:57
mriedemhemna: does nova also pass the instance.host to os-reserve?21:57
hemnait can21:57
hemnathen the attachment has both of those items already set at reserve time.21:57
jgriffithhemna: mriedem in fact all the code/impl is exactly the same.  You just turn reserve into something different that creates a dummy db entry?21:57
ildikovmaybe it should21:57
scottdamaybe we should focus on how these 2 alternatives are different....next meeting.21:57
ildikovI don't know the calls during live migration, etc. though21:58
ildikovscottda: +121:58
hemnalive migration just updates the attachment and changes the host from A to B21:58
*** sigmavirus24 is now known as sigmavirus24_awa21:58
scottdaPerhaps disregard whether the attachment_id is created and returned to Nova in reserve() or intitialize_conn and see where there is agreement.21:58
mriedemi have to head out folks21:59
jgriffithmriedem: hemna but it already passed *ALL* of that during the existing intialize_connection that we already have21:59
scottdaAnd, if possible, create more diagrams!21:59
mriedemcan we agree on some action items for next week?21:59
hemnaI can try and work on the other diagrams21:59
hemnaI'll see if I can switch to using dia21:59
hemnasince it's opensource.21:59
scottdaPerhaps some diagrams that show the proposed changes as well?21:59
mriedemjgriffith: the only difference from my POV there is os-reserve is in nova-api before we cast to compute where we do os-initialize_connection22:00
hemnainitialize_connection doesn't have the attachment_id currently22:00
mriedemi don't know if that makes much difference22:00
jgriffithmriedem: sure.. but it's odd to me.  Reserve was specifically to address race conditions and only set the state in the DB to keep from loosing the volume during the process22:01
ildikovwe could also evaluate the cases like live migration, shelve, etc. to see whether we have issues with any of the above listed calls22:01
jgriffithI can't see what the advantage to changing that is22:01
mriedemonly the attachment_id if we need that later i guess22:01
hemnajgriffith, it sets the volume to attaching and yet there is no attachment entry.22:01
mriedemlike a reservation id22:01
jgriffithmriedem: it's not a big deal, and probably would be just fine.  Just trying to understand the advantage22:01
hemnathen nova could have the attachment_id during calls to initialize_connection22:01
hemnawhich works for single and multi-attach22:02
mriedemif there are other gaps with live migration/evacuate/shelve offload, then maybe we work those through both approaches and see if there is an advantage, like ildikov said22:02
jgriffithhemna: ok, sure I guess22:02
hemnaok, so diagram for detach22:02
hemnadiagram for live migration22:02
mriedem#action hemna diagram for detach22:02
hemnaif I can get to those.22:02
mriedem#action hemna diagram for live migration22:02
scottdahemna: I'll help with those22:02
mriedem#action hemna and jgriffith enter the pit one leaves22:02
hemnalol22:03
cFoutsheh22:03
jgriffithmriedem: LOL22:03
jgriffithmriedem: nahhh22:03
scottdamriedem: You didn't know about the cage at the Summit?22:03
jgriffithhemna: can have it22:03
ildikovmriedem: yeah, that might show some differences, if not than we can still decide by complexity, amount of changes, any risks, etc.22:03
ildikovmriedem: lol :)22:03
scottdaWhichever we decide, we're still going to have to explain to other Cinder and Nova reviewers...22:03
jgriffithjust change all of the api signatures... wtf, it'll be fun :)22:03
mriedemas a cinder outsider, i'm interested in both but don't know the details or pitfalls enough either way22:03
scottdaso the diagrams will come in handy.22:03
mriedemi.e. i'll need to be told in both cases what the nova changes would look like22:04
hemnayup22:04
mriedemi think i understood hemna's more last week when we were talking through it22:04
ildikovscottda: those are handy in general, I'm already a fan!22:04
mriedemanyway, my 2 cents22:04
mriedemgotta go though22:04
mriedemthanks everyone22:04
ildikovscottda: helps much in figuring out what's going on22:05
scottdamriedem: Thanks!22:05
*** mriedem has quit IRC22:05
scottdaI'm going to have to head soon myself....22:05
scottdaAnything else we can get done here today?22:05
ildikovI think we're done for today22:05
andrearosathanks everyone22:05
ildikovor well, my brain is at least :)22:05
ildikovI will announce the next meeting on the ML for next week as a reminder22:06
scottdaGet some sleep ildikov andrearosa DuncanT22:06
scottdaThanks!22:06
ildikovwe can track the action items on the etherpad22:06
ildikovhemna: can you link the diagrams there if you haven't done already?22:06
DuncanTG'night all22:06
hemnaildikov, I linked the attach diagram in the etherpad22:06
ildikovhemna: coolio, thanks much22:07
scottdaBye all22:07
ildikovok, then thanks everyone22:07
ildikovhave a good night/evening/afternoon/morning :)22:07
ildikov#endmeeting22:07
*** andrearosa has quit IRC22:07
*** openstack changes topic to "npm lint jobs are failing due to a problem with npm registry. The problem is under investigation, and we will update once the issue is solved."22:07
openstackMeeting ended Wed Apr  6 22:07:54 2016 UTC.  Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4)22:07
openstackMinutes:        http://eavesdrop.openstack.org/meetings/cinder_nova_api_changes/2016/cinder_nova_api_changes.2016-04-06-21.01.html22:07
openstackMinutes (text): http://eavesdrop.openstack.org/meetings/cinder_nova_api_changes/2016/cinder_nova_api_changes.2016-04-06-21.01.txt22:08
openstackLog:            http://eavesdrop.openstack.org/meetings/cinder_nova_api_changes/2016/cinder_nova_api_changes.2016-04-06-21.01.log.html22:08
*** takashin has left #openstack-meeting-cp22:08
*** diablo_rojo has left #openstack-meeting-cp22:08
*** annegentle has quit IRC22:14
*** vilobhmm111 has joined #openstack-meeting-cp22:25
*** vilobhmm11 has quit IRC22:27
*** exedore6 has joined #openstack-meeting-cp22:28
*** exedore6 has quit IRC22:42
*** exedore6 has joined #openstack-meeting-cp22:55
*** angdraug has quit IRC22:56
*** annegentle has joined #openstack-meeting-cp23:05
*** exedore6 has quit IRC23:05
*** annegentle has quit IRC23:09
*** _amrith_ is now known as amrith23:26
*** annegentle has joined #openstack-meeting-cp23:27
*** annegentle has quit IRC23:39
*** sdake has joined #openstack-meeting-cp23:44
*** sdake_ has joined #openstack-meeting-cp23:46
*** sdake has quit IRC23:49
*** sdake has joined #openstack-meeting-cp23:50
*** tyr_ has quit IRC23:50
*** tyr_ has joined #openstack-meeting-cp23:50
*** sdake_ has quit IRC23:52
*** annegentle has joined #openstack-meeting-cp23:54
*** annegentle has quit IRC23:58

Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!