Wednesday, 2017-05-31

*** gouthamr has joined #openstack-manila00:10
*** gouthamr has quit IRC00:16
*** a-pugachev has quit IRC00:27
*** gcb has joined #openstack-manila01:13
*** gouthamr has joined #openstack-manila01:13
*** ianychoi_ is now known as ianychoi01:35
*** hongbin has quit IRC01:51
*** kaisers_ has joined #openstack-manila01:54
openstackgerritzhongjun proposed openstack/python-manilaclient master: Change to share access list API  https://review.openstack.org/46828701:54
openstackgerritzhongjun proposed openstack/manila master: Add export-location filter in share and share instance list API  https://review.openstack.org/46171201:57
*** kaisers has quit IRC01:57
openstackgerritzhongjun proposed openstack/python-manilaclient master: Add export-location filter in share and share instance list  https://review.openstack.org/46827701:59
*** jmlowe has joined #openstack-manila02:01
*** jmlowe has quit IRC02:02
*** jmlowe has joined #openstack-manila02:02
*** tuanluong has joined #openstack-manila02:46
*** markstur has quit IRC02:55
openstackgerritMerged openstack/manila master: Use ShareInstance model to access share properties  https://review.openstack.org/46758303:06
*** esker has quit IRC03:22
*** kaisers_ has quit IRC04:06
*** arnewiebalck_ has joined #openstack-manila04:07
*** kaisers has joined #openstack-manila04:10
*** kaisers has quit IRC04:15
gouthamrhow does one use quota-class-show04:44
gouthamrGET v2/{project-id}/quota-class-set/xyzzy always returns something :P04:46
gouthamrweirdly04:46
gouthamrand it's not obvious that quota-class-update is a create as well... manilaclient help text says: "Update the quotas for a quota class (Admin only)"04:47
gouthamrif anyone here uses quota-classes, what is the use case?04:48
*** gouthamr has quit IRC04:51
openstackgerritMerged openstack/manila master: Implement update_access in Isilon Driver.  https://review.openstack.org/46148705:02
*** kaisers has joined #openstack-manila05:11
*** arnewiebalck_ has quit IRC05:14
*** jprovazn has joined #openstack-manila06:18
*** dsariel has joined #openstack-manila06:26
*** dsariel has quit IRC06:38
*** pcaruana has joined #openstack-manila07:26
*** a-pugachev has joined #openstack-manila07:34
zhongjungouthamr: hi. As I know. The quota class code in Manila was directly copied from Cinder.(You know it :) ) , and the quota class code in Cinder was directly copied from Nova (by the time it was nova-volume).07:41
zhongjungouthamr: the use case is:  one customer may have chosen an "Economy" package which gives them one level of quotas, while another customer may have chosen a "Premium" package with significantly higher quotas. Moreover, even these Nova users may want to be able to override specific quotas for a given customer rather than rely exclusively on which package they07:42
zhongjunhave selected.07:42
zhongjungouthamr: https://wiki.openstack.org/wiki/QuotaClass07:42
*** arnewiebalck_ has joined #openstack-manila07:46
zhongjungouthamr:  https://blueprints.launchpad.net/nova/+spec/quota-classes07:54
*** a-pugachev has quit IRC07:58
openstackgerritqtlu proposed openstack/manila master: Add support for Guru Meditation Reports for manila  https://review.openstack.org/44468807:59
*** lpetrut has joined #openstack-manila08:02
*** arnewiebalck_ has quit IRC08:14
*** dmellado_ has joined #openstack-manila09:00
*** kaisers1 has quit IRC09:01
*** dmellado has quit IRC09:01
*** andreaf has quit IRC09:03
*** andreaf has joined #openstack-manila09:06
*** kaisers1 has joined #openstack-manila09:09
openstackgerritzhongjun proposed openstack/manila master: Use uwsgi for devstack  https://review.openstack.org/46938909:12
*** a-pugachev has joined #openstack-manila09:16
*** dmellado_ is now known as dmellado09:46
arnewiebalckgouthamr: while the “service package” use case zhongjun described is probably the main one, another use case would be to define per share type default quotas (this is what we use quota classes on Cinder for, for instance)09:53
openstackgerritzhongjun proposed openstack/manila master: Use uwsgi for devstack  https://review.openstack.org/46938910:01
openstackgerritzhongjun proposed openstack/manila master: Change releasenote name '_' to '-'  https://review.openstack.org/46940710:01
*** tuanluong has quit IRC10:27
*** ganso has joined #openstack-manila10:52
openstackgerritValeriy Ponomaryov proposed openstack/manila master: [Generic driver] Fix incompatibility with novaclient  https://review.openstack.org/46914811:23
*** esker has joined #openstack-manila11:55
*** esker has quit IRC12:00
*** MVenesio has joined #openstack-manila12:01
*** chlong has quit IRC12:03
*** kaisers has quit IRC12:30
arnewiebalckI just upgraded our Manila deployment to Ocata. Went ok, it seems :)12:33
arnewiebalckOne minor thing: did the capabilities filter become more picky? It complained about not finding any hosts which would match the requested specs of the share type (which was correct, but not a problem in Newton).12:35
*** jmlowe has quit IRC12:37
gansoarnewiebalck: hi Arne, which error is shown in manila-scheduler that does match the share type?12:42
arnewiebalckganso: WIthout debug the error is “Filter CapabilitiesFilter returned 0 host(s)”12:50
arnewiebalckganso: With debugg, the logs said “Share type extra spec requirement "create_share_from_snapshot_support=<is> True" does not match reported capability "False" capabilities_satisfied”12:51
arnewiebalckganso: Which was correct.12:51
arnewiebalckganso: I changed the type’s extra specs and all was fine.12:52
gansoarnewiebalck: you are using CEPH, which does not have create_share_from_snapshot_support capability12:52
gansoarnewiebalck: so you need to check if your share type has this capability set12:52
arnewiebalckganso: Right.12:52
arnewiebalckganso: Hwoever, this was not an issue in Newton.12:52
gansoarnewiebalck: the field was possibly added to the share type during the upgrade12:53
gansoarnewiebalck: it may have added with a value defaulting to True12:53
arnewiebalckganso: Which is the correct thing to do, as it now detected an inconsistency between the type and the host.12:53
arnewiebalckganso: Anyway, was easy enough to understand what was wrong, so overall the upgrade went w/o issues.12:55
arnewiebalckganso: Wait :)12:57
arnewiebalckganso: If this field was added, shouldn’t the default be False?12:57
gansoarnewiebalck: that's a difficult question to answer lol12:59
gansoarnewiebalck: the previous default behavior was that create_share_from_snapshot was always expected when snapshot_support was True12:59
arnewiebalckganso: Makes sense.12:59
gansoarnewiebalck: if snapshot_support=False, then it should be False12:59
arnewiebalckganso: I think this was True in our case (for the test share type).13:00
gansoarnewiebalck: if you have a backend that has snapshot_support=True, but does not create share from snapshots, then, you get the create_share_from_snapshot_support=True by default, which is what you've got13:00
arnewiebalckganso: yes, it was True, so mkaes all perfect sense.13:00
gansoarnewiebalck: but why was it True for CEPH? it does not support snapshot AFAIK13:00
arnewiebalckganso: I wanted to give it a try :)13:01
gansoarnewiebalck: looking back at Newton, it could create snapshots, but could never create shares from snapshots, which was kinda useless from manila point of view13:01
gansoarnewiebalck: oh so it is your fault :P13:01
arnewiebalckganso: Absolutely! ;)13:01
arnewiebalckganso: PEBKAC13:01
gansoarnewiebalck: lol13:02
arnewiebalckganso: Thanks for clarifying this.13:02
gansoarnewiebalck: you're welcome, glad to have helped13:02
*** eharney has joined #openstack-manila13:03
*** xyang1 has joined #openstack-manila13:04
*** jmlowe has joined #openstack-manila13:14
*** gouthamr has joined #openstack-manila13:19
*** kaisers has joined #openstack-manila13:26
*** chlong has joined #openstack-manila13:30
*** chlong has quit IRC13:43
*** chlong has joined #openstack-manila13:46
*** kaisers has quit IRC13:55
*** draynium has quit IRC14:02
*** FL1SK has joined #openstack-manila14:04
bswartzMVenesio: the generic driver isn't that smart yet14:11
bswartzit needs new code to detect when it's hit the block device limit and to create more service VMs14:11
*** a-pugachev has quit IRC14:22
*** hongbin has joined #openstack-manila14:25
MVenesiobswartz: Ok, but can i do that manually ? add a new server to create new shares14:29
bswartzMVenesio: it would need to be understood by the driver, so driver changes are needed14:32
MVenesiobswartz: so to be clear, this driver only allows one service instance with 26 shares ?14:33
bswartzwe should document that the generic driver has a limitation of 26 (25?) shares per share network14:33
vponomaryovMVenesio: you can workaround it creating new share-network14:33
vponomaryovMVenesio: with same net and subnet14:34
bswartzMVenesio: yes that's currently true -- nothing in the design prevent us from adding support for more service instances but it's code that hasn't been written14:34
vponomaryovbswartz: IT IS documented14:34
bswartzvponomaryov: :-)14:34
vponomaryovhttps://docs.openstack.org/developer/manila/devref/generic_driver.html#known-restrictions14:35
MVenesiovponomaryov: i see, i'll test that14:38
MVenesiobswartz: perfect, so the driver works well, i've tested creating more than 20 shares, taking snapshots and creating shares from snapshots without errors, so far so good.14:46
MVenesiobswartz: the networking limitation is not a big deal for me, i'm using DVR with neutron so it's easy to spawn an L3 agent and connect a share-server there14:47
openstackgerritTom Barron proposed openstack/manila master: Fix pep8 M325 error with python 3.5  https://review.openstack.org/46952314:49
MVenesiobswartz: i've tested rebooting the service instance and all the shares back to work once the instance is up and running again14:49
MVenesiobswartz: so the big issue here is the HA at the service instances level14:50
*** kaisers has joined #openstack-manila14:52
*** jmlowe has quit IRC14:53
*** markstur has joined #openstack-manila14:56
*** markstur has quit IRC14:56
*** markstur has joined #openstack-manila14:57
*** markstur has quit IRC14:57
*** markstur has joined #openstack-manila15:03
*** hoonetorg has quit IRC15:04
*** kaisers has quit IRC15:13
*** hoonetorg has joined #openstack-manila15:17
jungleboyjbswartz:  Is there a list of the supported drivers for Manila somewhere?15:31
bswartzjungleboyj: what do you mean supported? do you mean drivers which you can receive commercial support for? or just an enumeration of the drivers in the tree?15:41
jungleboyjbswartz:  Just an enumeration of the drivers in tree.  I just went and grabbed them out of the source.  :-)15:42
bswartzjungleboyj: that's the most accurate method :-)15:42
jungleboyjI guessed as much given your process is slightly different.15:43
gansois gerrit loading fine for you?15:47
*** lpetrut has quit IRC15:47
openstackgerritValeriy Ponomaryov proposed openstack/manila master: [Generic driver] Fix incompatibility with novaclient  https://review.openstack.org/46914815:47
vponomaryovjungleboyj: https://docs.openstack.org/developer/manila/devref/share_back_ends_feature_support_mapping.html15:51
vponomaryovjungleboyj: ^ list of drivers and their features is here15:51
jungleboyjvponomaryov:  Nice.  Thank you!15:52
*** a-pugachev has joined #openstack-manila15:53
vkmcarnewiebalck, hey! if you can take a look later... I'm trying to fix the test, but your feedback on the kind of data we are recovering would be appreciated https://review.openstack.org/#/c/466586/15:55
*** winston-d_ has joined #openstack-manila16:05
*** kaisers has joined #openstack-manila16:10
*** eharney has quit IRC16:29
*** eharney has joined #openstack-manila16:31
*** kaisers has quit IRC16:37
openstackgerritOpenStack Proposal Bot proposed openstack/manila master: Updated from global requirements  https://review.openstack.org/46957016:37
*** pcaruana has quit IRC16:50
*** kaisers has joined #openstack-manila16:54
*** gaurangt_ has joined #openstack-manila16:59
*** gaurangt- has joined #openstack-manila17:01
*** gaurangt has quit IRC17:03
*** gaurangt_ has quit IRC17:04
*** gaurangt has joined #openstack-manila17:21
openstackgerritValeriy Ponomaryov proposed openstack/manila-ui master: Add support of share groups  https://review.openstack.org/46889917:22
*** gaurangt- has quit IRC17:23
*** jmlowe has joined #openstack-manila17:35
*** jprovazn has quit IRC17:55
*** eharney has quit IRC17:56
*** kaisers has quit IRC17:59
*** a-pugachev has quit IRC18:05
*** chlong has quit IRC18:05
*** eharney has joined #openstack-manila18:09
*** chlong has joined #openstack-manila18:22
*** kaisers has joined #openstack-manila18:37
*** arnewiebalck_ has joined #openstack-manila18:59
*** arnewiebalck_ has quit IRC19:05
*** arnewiebalck_ has joined #openstack-manila19:12
tbarronzhongjun: gouthamr bswartz I want to use ensure_share(s) to force my backend to re-create access rules for shares, that is19:22
*** lpetrut has joined #openstack-manila19:23
tbarronI want to re-read all the access rules for each share and enforce them on the backend.19:23
tbarronzhongjun: gouthamr bswartz init_host in the manager currently iterates over all share instances and calls ensure_share, but19:24
*** jmlowe has quit IRC19:24
tbarronzhongjun: gouthamr bswartz but it passes only the share instance and its data, not the access rules themselves19:24
tbarronzhongjun: gouthamr bswartz with the new ensure_shares spec, I could return a dictionary with e.g. {'last-access-rule-sync': <datetime>} and19:26
tbarronthat would force a hash-mismatch19:26
tbarronbut the driver still just gets passed the shares and isn't allowed to retrieve the access rules from the DB itself.19:27
openstackgerritVictoria Martinez de la Cruz proposed openstack/manila master: Use get_notification_transport for notifications  https://review.openstack.org/46963019:29
tbarronzhongjun: gouthamr bswartz I can return {'access_rules_status': constants.MUMBLE} where MUMBLE is something other than STATUS_ACTIVE but -- goutham check me on this --19:30
tbarronunless there are rules that are still in ACCESS_STATE_APPLYING or ACCESS_STATE_DENYING -- the driver won't end up getting an update19:31
tbarron(even though if it does get an update it will see the full set of rules)19:31
tbarronensure_share(s) seems very close to being able to address my use case so I want to make sure there isn't something I'm missing19:32
tbarronOr see if there's some tweak we can make that will address this case.19:32
*** a-pugachev has joined #openstack-manila19:36
*** pcaruana has joined #openstack-manila19:45
*** arnewiebalck_ has quit IRC19:47
openstackgerritVictoria Martinez de la Cruz proposed openstack/manila master: Add share notifications  https://review.openstack.org/46658619:57
bswartztbarron:19:57
* bswartz fat fingers keyboard19:58
bswartztbarron: why do you need to recreate access rules?19:58
bswartzare they not stored somewhere persistent?19:58
tbarronbswartz: in this case the persistent store is stale.19:59
tbarronbswartz: it may allow accesses that are no longer valid.19:59
openstackgerritVictoria Martinez de la Cruz proposed openstack/manila master: Add share notifications  https://review.openstack.org/46658620:00
tbarronbswartz: we failover manila-share from one node to another.  On both nodes we have a ganesha service.  And currently we have20:00
bswartzright20:00
tbarronbswartz: no shared state between the two.20:00
bswartzwell the lack of shared state seems like a problem20:00
tbarronbswartz: so I want to (re)play the manila DB access rules into a newly started ganesha20:01
bswartzdoes this config allow for multiple nodes to be active at the same time?20:01
tbarronbswartz: eventually I want to address that, but for now I want to replay.20:01
tbarronbswartz: no, this is currently (for Pike) active/passive, just like manila share20:01
bswartzwell my thought is that if you want multiple active NFS servers for the same data, then MUST have shared state somewhere, and that somewhere is the logical place to persist the access rules20:02
*** pcaruana has quit IRC20:02
tbarronwe have shared state in the DB if I can just replay it20:02
bswartzyou're saying that there is no somewhere, and it's not needed because there's never more than 1 active one20:02
tbarronyes20:02
tbarroneventually I do want to do active/active with shared state, but not in Pike.20:03
bswartzyeah the DB has only the access rules -- not the other things you would need for proper pNFS or lock manager functionality20:03
tbarronAnd one can imagine corner cases where the driver's state is out of whack and needs refresh without failover.20:03
bswartztbarron: so why is it not good enough to just update the ones in transient states?20:04
tbarronThis is the kind of thing that ensure_shares() can fix for the share(instances) table.20:04
bswartzI agree that ensure_share() can fix this problem but it seems like a scalability nightmare20:04
bswartzthere has to be a way to know when it's actually necessary to fix the rules vs time when it's safe to skip it20:05
tbarronbswartz: if I rely at all on old saved state on the node going active it may contain non-transient state that is no longer valid.20:05
tbarronbswartz: yeah, I really only want to replay if I've failed over or have some other reason to suspect the local state.20:06
bswartzI feel like this is a case where we're trying to use manila to solve a problem that the backend should really solve on its own20:06
tbarronbswartz: and we might "reconcile" rather than replay everything if it's too slow.20:06
bswartzthe backend is in a better position to know if the rules are up to date or not20:06
tbarronbswartz: the backend would still decide if it wants a refresh and cause a hash mismatch only if it needs the refresh20:07
bswartzif I was designing what I think you're designing, I would have the NFS server writing the access rule list to some stable storage somewhere, so that it could read those rule back and reapply them without involvement from a higher level20:07
tbarronbswartz: well, we are looking at that, but it was for a later phase ...20:08
bswartzconsider what happens in the time between when the backend boots up and when manila starts managing it20:08
bswartzare the shares just in a bad state that whole time?20:08
bswartzcan't you just have the ganesha node write the access rules table to a hidden file on the share itself?20:09
tbarronto the first question, we were going to synchronize the ganesha service startup after the refresh (if it's needed)20:10
bswartzif you had something like that then the thing managing that node could fix the access rules before ganesha even started serving data20:11
tbarronthe hidden file suggestion is interesting.20:11
bswartzI think it's really worth looking into a way to stash the rules on the share itself -- so it's automatically accessible to everything serving that data20:11
tbarronwe were thinking more of using ceph or cephfs to hold the access info and have multiple ganeshas access it.20:11
bswartzeven in that case it should be possible to stash the rules into an auxiliary ceph object20:12
bswartzI would just be concerned about situation where the ganesha nodes are up and the manila nodes are down20:13
bswartzthey need to behave correctly during that time period (minus any access changes which the driver hadn't acknowledged yet)20:14
tbarronyeah, post Pike we would have that situation.  In pike ganesha processes will be running 1-1 with manila share on the same nodes and both under pacemaker control.20:14
bswartzthe whole point of acknowledging the driver rule updates is to tell Manila that the backend really has those updates20:14
bswartzso manila doesn't send them again20:15
tbarronright20:15
bswartzsending access updates for large numbers of shares simply won't scale20:16
tbarronarguably there should be a way to do it in extraordinary circumstances when backend state is corrupeted or invalid and should be rebuilt.20:18
tbarronbut I am not dismissing your remakrks about "a better way" for my immediate goal.20:18
*** jmlowe has joined #openstack-manila20:32
tbarronbswartz: I guess one could use DriverPrivateData for this too; but I agree that ideally one could bring up the backend even if manila nodes are down, which argues for keeping shared-state among ganeshas outside manila.20:38
*** chlong has quit IRC20:53
*** jmlowe has quit IRC20:59
*** winston-d_ has quit IRC21:00
*** jmlowe has joined #openstack-manila21:03
*** chlong has joined #openstack-manila21:05
*** pcaruana has joined #openstack-manila21:12
*** kaisers has quit IRC21:15
gouthamrtbarron: i like your idea of sending up the "access rules are stale" update to the share manager trying to ensure.. so we can run through the update access logic around those shares. this is the same thing as dumping your rules into the private-data or storing them in a persistent store elsewhere and running through the logic yourself, with the caveat of delaying the startup of the share service21:20
gouthamrif we didn't do that, there could be another problem... someone interacting with the share's access rules via manila before the driver has applied existing ones21:21
*** harlowja has quit IRC21:21
gouthamrperhaps we can weave in what exact shares need reconciling... would there ever be a subset of shares or shares belonging to a whole backend?21:23
tbarrongouthamr: well my case right now would be all shares belonging to the whole backend because I have no way of knowing which of them are out-of-date in a failover unless I see the current state of all shares.21:24
tbarrongouthamr: I can imagine other cases where the driver can know that only some share info is out of date though.21:24
gouthamrthis would need to work nicely with the current startup check that we perform on in-flight rules21:25
tbarrongouthamr: I think it makes sense to have a capability to refresh some or all share access info even if we avoid doing this (because of delayed startup at scale) every time that we can.21:26
gouthamreither case, in case of a failover like you describe, i don't see why we can't perform update_access calls inside ensure_share... it's going to be slow but necessary21:26
tbarrongouthamr: probably any backend can under some circumstances get out sync with manila and manila DB will be authoritative.21:26
gouthamr:P you'll make ganso smile.21:27
tbarrongouthamr: was ganso arguing this?21:27
gouthamrwe removed that logic from startup because we thought it doesn't exist today21:27
tbarrongouthamr: ah21:27
gouthamrwe used to call it "recovery mode"..21:28
tbarrongouthamr: well eventually I want to keep shared state outside manila for this.  But even then there could be corner cases where we'd need to recover.21:28
gouthamrwe have a variant of this in update_access...but that only gets invoked if you switch rules from r/o to r/w or vice-versa21:28
tbarronor compare and reconcile.21:28
gouthamrtbarron: invoking manila's update_access is better than doing your own thing because we perform the state changes necessary in one place21:29
*** pcaruana has quit IRC21:29
*** lpetrut has quit IRC21:30
tbarronthe state changes on the backend?  That's really all I want to refresh in this case.21:31
*** MVenesio has quit IRC21:31
gouthamrthe state changes to the rules21:31
*** MVenesio has joined #openstack-manila21:31
*** MVenesio has quit IRC21:32
gouthamrif the driver comes up, but the rules aren't as per manila's expectations, and someone performs access-rule interactions, does your driver do the right thing21:32
gouthamr?21:32
tbarrongouthamr: but in this case I'm assuming the rules are correct and I just need to make the backend match what we told manila before when we applied the rules via update_access.21:32
tbarrongouthamr: we told manila we applied rule X and denied/deleted rule Y.  But the state on the node to which we are failing over is stale.21:33
tbarrongouthamr: I doesn't show rule X applied or Y deleted.21:34
tbarrongouthamr: so I need to ignore the old state on that node and build it fresh.21:34
tbarrongouthamr: it was just a passive node and not getting any updates.21:34
gouthamrtbarron: is this failover initiated by the manila driver?21:36
tbarrongouthamr: no, by pacemaker.21:38
tbarrongouthamr: down the road, we might do something like that, but right now we're working with ganesha process on same node as manila-share.21:38
tbarronso if someone pulls the plug on that node, pacemaker will start up manila share and a new ganesha on a new node, and corosync will move the IP used for the export location  to the new node.21:39
tbarronbut the new ganesha instance will currently have no state or will have stale state w.r.t. access rules.21:40
tbarronEventually we are going to run ganesha independent of manila share, on other nodes.21:40
tbarronAnd we may run these active-active which will require shared access-rule state outside manila anyways.21:41
*** eharney has quit IRC21:42
tbarronBut in Queens we've got pacemaker control of manila-share/ganesha pairs.21:42
gouthamrinteresting.. so, you're saying we don't need the update_access stuff, just make ensure_share pass all the access rules if we tell it to21:43
tbarrongouthamr: that would do it.21:43
gouthamra variant of this exists with replication21:44
*** jmlowe has quit IRC21:44
tbarrongouthamr: do replicas share backend access rule state?  or does each replica have its own copy?21:44
gouthamrwe don't assume that21:45
*** kaisers has joined #openstack-manila21:45
gouthamri.e, the share manager just dumps it in the interface, because we don't know/care if you have an efficient way of replicating the access ruels21:45
tbarrongouthamr: yeah, you want replicas to (potentially) be in separate cDOT clusters, right?21:45
gouthamrrules*21:45
gouthamrtbarron: yeah, and mirroring that we setup is just for data, no metadata..21:46
tbarrongouthamr: but you update both replicas even though only one is active, i.e. all replicas listen for access-updates rather than having to refresh a replica when it goes active?21:47
gouthamrdepends... for readable replicas, where the secondary can be mounted, like the ZFS driver supports, we set the rules on create and I suppose every rule update is mirrored21:48
tbarrongouthamr: while we are using pacemaker to control ganesha services I don't think we can have all of them accept updates; so we're stuck with loading them at startup after a failover.21:48
gouthamrvponomaryov would know21:48
gouthamrfor cDOT, we support "dr", so we keep the secondary in the dark, unmounted21:49
gouthamrso, we only apply them on promotion21:49
tbarrongouthamr: ok, where do you get the info from on promotion, the manila DB?21:49
tbarrongouthamr: private data?21:49
tbarrongouthamr: or you could keep it somewhere in cDOT?21:50
gouthamryep, the manager passes them in the interface: https://github.com/openstack/manila/blob/master/manila/share/manager.py#L194721:50
gouthamrtbarron: we have it on cDOT.. but the feature was designed to not make that assumption21:51
tbarrongouthamr: ack21:51
gouthamrso we wrote the driver impl with that in mind21:51
gouthamrwe don't mirror rules, and we may not rely on the primary being around to query, so we just expect manila to tell us21:52
tbarrongouthamr: well, this is good food for thought21:53
tbarrongouthamr: atm I'm inclined to think (1) we should implement the new ensure_shares in a way that allows for a full refresh of the backend access rules from the manila DB.21:54
tbarrongouthamr: (2) we should be working to have our backend not depend on that except in extraordinary circumstances21:55
tbarrongouthamr: we need to be building shared state for our backend anyways, but from a practical standpoint with schedules I want21:56
gouthamr+1 i think (1) is sustainable.. it was the kind of extensibility that i was hoping ensure shares would bring....21:56
tbarrongouthamr: to minimize my dependencies on external teams (e.g. the ganesha team for new features) so I'm interested in manila-based solutions as well.21:56
gouthamragree... welcome back tbarron :P21:57
gouthamrlol, meant to say that yesterday21:58
tbarrongouthamr: yeah, the promise of ensure shares was that we could refresh the DB when we have backend info that is needed, and work in the other direction when the backend knows it needs a refresh.21:58
tbarrongouthamr: oh thanks, I don't know that I'm fully back yet, digging out of email and causing confusion to my teammates.21:58
gouthamrarnewiebalck zhongjun: i'm reviewing https://review.openstack.org/#/c/469148/ and the quota-class-sets logic seems weird.. thanks for the use cases and the links..21:59
gouthamrtbarron: yep.. and your mind's probably back in mexico.. :)22:01
tbarrongouthamr: yup, at least some of the time22:01
*** harlowja has joined #openstack-manila22:06
*** rpittau has quit IRC22:07
*** gouthamr has quit IRC22:20
bswartztbarron: sorry I blitzed out on you -- I'm back now for a bit22:21
bswartztbarron: driver private data is a bad idea22:21
bswartztbarron: I agree that in extraordinary cirumstances, there should be a way to refresh all the rules -- in my mind that would be something like a SQL query the forces the access rule state for all the shares to out of sync22:22
tbarronbswartz: hey, I have no problem with async communication on irc :)22:22
bswartztbarron: I'm still hung up on the case where manila is down and ganesha is up22:23
bswartzwhat if someone restarts ganesha and does nothing at all to manila -- your ensure_share approach would not solve that case22:23
bswartzI can think of so many cases where ensure_share is too little or too late to solve the problem22:23
tbarronbswartz: I'm not really inclined to use driver private data (unless as a temporary expedience if I can't get a better solution from another group in a particular release cycle).22:23
bswartzall of the truly robust solutions I can imagine involve the backend doing this itself22:24
tbarronbswartz: tend to agree22:24
bswartzmaybe I'm just biased by tradition though22:24
tbarronbswartz: but I think goutham has given good arguments for having the refresh capability as well22:24
bswartzI need to read the scrollback from gouthamr22:24
bswartzor maybe gouthamr will give me a TL;DR ;-p22:25
tbarronbswartz: it just shouldn't be our goto-approach for ganesha state between instances22:25
*** rpittau has joined #openstack-manila22:26
tbarronbswartz: i'd only use it (or driver private data if I had to) for the pacemaker-controlled manila-share/ganesha deployment.22:26
bswartztbarron: what about having the admin execute a SQL query in cases where his ganesha instance(s) got hosed?22:26
bswartzto force all the shares to out of sync access state22:27
tbarronwhich we're only going to do for one release, as tech-preview downstream, aiming to move ganesha off of controllers and outside of pcs control.22:27
tbarronbswartz: well, I think the spirit of the new ensure_shares spec was that we could (1) avoid manila DB/backend state synchronization on ordinary startupm, but (2)22:28
tbarronbe able to trigger a reconciliation in either direction when the backend knows best.22:28
*** xyang1 has quit IRC22:28
tbarronbswartz: so yeah, we could say, don't use manila for circumstances like #2, but that's not the way we were going.22:29
tbarronbswartz: gouthamr pointed out that we already do this kind of access-rule refresh of backend from DB with share replication.22:30
tbarronbswartz: so I'm inclined to think that yes, my backend should use shared storage outside manila to keep its access-rule state, but that22:31
tbarronthere should be a way to refresh in an emergency, as if the backend finds that its shared (or non-shared) view of the state is corrupt for some reason.22:32
tbarronThat second could be done outside of manila itself with sql but it seems like the kind of thing that the new ensure_shares spec was aiming at.22:32
tbarronbswartz: "what if someone restarts ganesha and does nothing at all to manila -- your ensure_share approach would not solve that case"22:38
tbarronbswartz: this is being considered only for the case where ganesha and manila share live and die together on the same node under pacemaker control where manila-share leads22:39
tbarronbswartz: restarting ganesha on the same node won't encounter stale state any more likely than restart of any other backend.22:39
tbarronbswartz: it's failover to another node where we'd hit stale state and in that case manila-share has failed over as well.22:40
tbarronbswartz: I guess there's a pathological case there where manila-share doesn't start up successfully and ganesha does, but I think pacmaker will force another failover in that case.22:41
* tbarron doesn't say that he likes pacemaker control but that's what we're working with near term22:41
*** chlong has quit IRC23:00
*** a-pugachev has quit IRC23:09
*** gouthamr has joined #openstack-manila23:11
bswartztbarron: understood23:39
bswartztbarron: so getting back to the original question -- what is needed from the share manager side to enable this use case?23:39
*** david_8 has quit IRC23:52
*** carthaca_ has quit IRC23:52
*** databus23_ has quit IRC23:52
*** sapcc-bot has quit IRC23:52
*** david_ has joined #openstack-manila23:53
*** carthaca_ has joined #openstack-manila23:53
*** sapcc-bot has joined #openstack-manila23:53
*** databus23_ has joined #openstack-manila23:53
*** ganso has quit IRC23:56

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