* Configuring fs_locations on Linux upstream server pseudo fs for session trunking [not found] <04273F60-806B-4E12-B097-388C346F2DED@oracle.com> @ 2016-05-25 17:29 ` Adamson, Andy 2016-05-25 18:48 ` bfields 2016-05-31 18:23 ` Steve Dickson 0 siblings, 2 replies; 15+ messages in thread From: Adamson, Andy @ 2016-05-25 17:29 UTC (permalink / raw) To: bfields; +Cc: chuck.lever, linux-nfs QW5uYSBTY2h1bWFrZXIgd2hvIHJldmlld2VkIG15IGNsaWVudCBzaWRlIHNlc3Npb24gdHJ1bmtp bmcgcGF0Y2hzZXQsIHdhbnRzIGEgZnVsbCBmZWF0dXJlZCB2ZXJzaW9uIG9mIGJvdGggdGhlIGNs aWVudCBhbmQgdGhlIHNlcnZlciBzZXNzaW9uIHRydW5raW5nIHBpZWNlcyBiZWZvcmUgYWNjZXB0 aW5nIHRoZSBzZXNzaW9uIHRydW5raW5nIGZlYXR1cmUgdXBzdHJlYW0uIFRvIHRoYXQgZW5kLCBJ IHdhbnQgdG8gaW1wbGVtZW50IHRoZSBzZXJ2ZXIgbW91bnRkIFY0Uk9PVCBwcm9jZXNzaW5nIG9m IGFuIGZzX2xvY2F0aW9ucyBjb25maWd1cmF0aW9uIHRvIHNhdGlzZnkgYW4gZnNfbG9jYXRpb25z IHJlcXVlc3Qgb24gdGhlIHBzZXVkbyBmcy4NCg0KVGhlIGZvcndhcmRlZCBtZXNzYWdlIGlzIGZy b20gYW4gZW1haWwgc3RyZWFtIGJldHdlZW4gQnJ1Y2UsIENodWNrIGFuZCBJIGNvbmNlcm5pbmcg dGhlIHNlcnZlciBwc2V1Zm8gZnMgZnNfbG9jYXRpb25zIGNvbmZpZ3VyYXRpb24gdGhhdCBJ4oCZ bSBub3cgc2hhcmluZyB3aXRoIHRoZSBsaXN0Lg0KDQpTb21lIGJhY2tncm91bmQ6DQoNClRoZSBy ZWNlbnQgIk5GU1Y0LjEsMiBzZXNzaW9uIHRydW5raW5n4oCdIFZlcnNpb24tNSBwYXRjaCBzZXQg c2VudCB0byB0aGUgbGlzdCBub3RlcyAoaW4gcGF0Y2ggMDAvMTApOg0KDQpUaGUgcHNldWRvLWZz IEdFVEFUVFIoZnNfbG9jYXRpb25zKSBwcm9iZSBzZXNzaW9uIHRydW5raW5nDQp3YXMgdGVzdGVk IGFnYWluc3QgYSBMaW51eCBzZXJ2ZXIgd2l0aCBhIHBzZXVkby1mcw0KZXhwb3J0IHN0YW56YSAo ZS5nLiBhIHN0YW56YSB3aXRoIHRoZSBmc2lkPTAgb3IgZnNpZD1yb290DQpleHBvcnQgb3B0aW9u KSBhbmQgYSByZXBsaWNhcz0gZXhwb3J0IG9wdGlvbg0KKHJlcGxpY2FzPTxwYXRoMT5APHNlcnZl cjE+OjxwYXRoMj5APHNlcnZlcjI+Li4pDQpOb3RlIHRoYXQgdGhpcyBjb25maWd1cmF0aW9uIGlz IGZvciB0ZXN0aW5nIG9ubHkuIEEgZnV0dXJlDQpwYXRjaHNldCB3aWxsIGFkZCB0aGUgcmVwbGlj YXM9IGNvbmZpZ3VyYXRpb24gdG8gdGhlDQpORlNFWFBfVjRST09UIG5mc2QgYW5kIG1vdW50ZCBw cm9jZXNzaW5nLg0KDQoNClRoZXJlIGFyZSBzZXZlcmFsIGlkZWFzIG9uIGhvdyB0byBhY2NvbXBs aXNoIG1vdW50ZC9WNFJPT1QgZnNfbG9jYXRpb25zIGNvbmZpZ3VyYXRpb24gaW4gdGhlIGZvcndh cmRlZCBtZXNzYWdlLiBTZWUgaW5saW5lLg0KDQoNCj4gQmVnaW4gZm9yd2FyZGVkIG1lc3NhZ2U6 DQo+IA0KPiBGcm9tOiBDaHVjayBMZXZlciA8Y2h1Y2subGV2ZXJAb3JhY2xlLmNvbT4NCj4gU3Vi amVjdDogUmU6IENvbmZpZ3VyaW5nIGZzX2xvY2F0aW9ucyBvbiBMaW51eCB1cHN0cmVhbSBzZXJ2 ZXINCj4gRGF0ZTogTWF5IDYsIDIwMTYgYXQgNDozMTowMCBQTSBFRFQNCj4gVG86ICJKLiBCcnVj ZSBGaWVsZHMiIDxiZmllbGRzQGZpZWxkc2VzLm9yZz4NCj4gQ2M6ICJBZGFtc29uLCBBbmR5IiA8 V2lsbGlhbS5BZGFtc29uQG5ldGFwcC5jb20+DQo+IA0KPiANCj4+IE9uIE1heSA2LCAyMDE2LCBh dCA0OjE2IFBNLCBKLiBCcnVjZSBGaWVsZHMgPGJmaWVsZHNAZmllbGRzZXMub3JnPiB3cm90ZToN Cj4+IA0KPj4gT24gRnJpLCBNYXkgMDYsIDIwMTYgYXQgMDI6MjA6MTJQTSAtMDQwMCwgQ2h1Y2sg TGV2ZXIgd3JvdGU6DQo+Pj4gU2VlbXMgbGlrZSB3aGVuIGEgc2VydmVyIGRvZXMgbm90IHJldHVy biBhIGxpc3QsIHRoYXQgaXMNCj4+PiBpbmZvcm1hdGlvbiB0aGUgY2xpZW50IGNhbiB1c2U6IGJh c2ljYWxseSwgdGhlcmUgaXMgbm8NCj4+PiBhYmlsaXR5IHRvIGRvIGFueSBzZXNzaW9uIHRydW5r aW5nLiBJdCBoYXMgdG8gYmUgc2V0IHVwDQo+Pj4gZXhwbGljaXRseTsgaXMgdGhhdCBhIGJhZCB0 aGluZywgb3BlcmF0aW9uYWxseT8NCj4+IA0KPj4gSSBsaWtlIHRoZSBpZGVhIG9mIGl0IGJlaW5n IG9wdCBpbiBvbiB0aGUgc2VydmVyLg0KPj4gDQo+PiBTdXBwb3NlIHRoZSBzZXJ2ZXIgdHJhbnNw YXJlbnRseSBzdGFydHMgYWR2ZXJ0aXNpbmcgYWxsIGF2YWlsYWJsZQ0KPj4gYWRkcmVzc2VzIGZv ciBzZXNzaW9uIHRydW5raW5nLiAgSXQncyBub3QgaGFyZCB0byBpbWFnaW5lIGNhc2VzIHdoZXJl DQo+PiB0aGF0IHdvdWxkIGdvIHdyb25nLiAgRS5nLiwgbWF5YmUgdGhlIHNlcnZlciBoYXMgdGhl IG9kZCB3aXJlbGVzcyBvcg0KPj4gMTAwTWIgb3Igb3RoZXIgaW50ZXJmYWNlIHRoYXQgaGFwcGVu cyB0byB3b3JrIGJ1dCB0aGF0J3Mgc2xvdy4gIFRoZW4NCj4+IHNvbWVib2R5IHVwZ3JhZGVzIHRo ZWlyIHNlcnZlciBhbmQgcGVyZm9ybWFuY2UgZ29lcyBkb3duIGFuZCBpdCBtYXkgdGFrZQ0KPj4g dGhlbSBhIHdoaWxlIHRvIGZpZ3VyZSBvdXQgd2h5LiAgV2hlcmVhcyBpZiB0aGV5J2QgaGFkIHRv IG9wdCBpbiB0aGV5J2QNCj4+IHByb2JhYmx5IGhhdmUgYXZvaWRlZCBhZHZlcnRpc2luZyBhbiBp bmFwcHJvcHJpYXRlIGludGVyZmFjZS4gIE9yIGF0DQo+PiBsZWFzdCB0aGV5J2QgaGF2ZSBhIGJl dHRlciBjaGFuY2Ugb2YgZmlndXJpbmcgb3V0IHRoYXQgdHVybmluZyBvbg0KPj4gdHJ1bmtpbmcg d2FzIHdoYXQgY2F1c2VkIHRoZSBwcm9ibGVtLg0KPj4gDQo+PiBJJ2QgcmF0aGVyIG5vdCBmb3Jj ZSBwZW9wbGUgdG8gZXhwb3J0ICIvIiBleHBsaWNpdGx5LCB0aG91Z2guICBJdCdzIGZpbmUNCj4+ IGZvciB0ZXN0aW5nLCBidXQ6DQo+PiANCj4+IAktIEkgZG9uJ3QgdGhpbmsgd2UgZ2l2ZSBhIHdh eSB0byBkbyBhbiBleHBsaWNpdCBWNFJPT1QgZXhwb3J0LA0KPj4gCSAgc28gdGhleSdkIGJlIGV4 cG9zaW5nIHRoZWlyIGVudGlyZSByb290IHBhcnRpdGlvbi4gIFdlIGNvdWxkDQo+PiAJICBmaXgg dGhhdCwgYnV0DQo+PiAJLSB0aGUgcHNldWRvZnMganVzdCBzZWVtcyB0byBtZSBsaWtlIHNvbWV0 aGluZyBwZW9wbGUgc2hvdWxkbid0DQo+PiAJICBub3JtYWxseSBoYXZlIHRvIHRoaW5rIGFib3V0 LiAgSXQncyBhIHByb3RvY29sIGltcGxlbWVudGF0aW9uDQo+PiAJICBkZXRhaWwsIEknZCByYXRo ZXIgaGlkZSBpdC4gIEl0J2QgYmUgdG8gZWFzeSB0byBjb25maWd1cmUgaXQgYQ0KPj4gCSAgbGl0 dGxlIHdyb25nLCBJIHRoaW5rLg0KPj4gDQo+PiBXZSBjYW4gc3RpbGwgZG8gdGhpcyBieSBhZGRp bmcgYSByZXBsaWNhcz0gb3B0aW9uIHRvIHRoZSAvIGV4cG9ydCwgYnV0DQo+PiB3ZSBjYW4gbGV0 IHJwYy5tb3VudGQgZG8gdGhhdCBpbnRlcm5hbGx5IGluc3RlYWQgb2YgbWFraW5nIHRoZSBhZG1p biBhZGQNCj4+IGl0IHRvIC9ldGMvZXhwb3J0cy4NCj4+IA0KPj4gQnV0IHRoZW4geW91IHN0aWxs IG5lZWQgYSB3YXkgZm9yIHRoZSBhZG1pbiB0byB0ZWxsIHJwYy5tb3VudGQgdG8gY29vaw0KPj4g dXAgdGhlIHJlcGxpY2FzPSBvcHRpb24uLi4uLiAgSSdtIG5vdCBzdXJlIHdoYXQgdGhhdCBzaG91 bGQgbG9vayBsaWtlLg0KDQpJZGVhIDE6IGV4dHJhIHN5bnRheCBpbiAvZXRjL2V4cG9ydHMNCg0K DQo+PiBNYXliZSBzb21lIGV4dHJhIHN5bnRheCBpbiAvZXRjL2V4cG9ydHMsIGJ1dCB3aGF0IGRv IHRoZXkgbmVlZCB0byBnaXZlDQo+PiB1cy0tanVzdCBvbmUgbGlzdCBvZiBJUCBhZGRyZXNzZXM/ ICBDaHVjaywgYW55IGlkZWFzPw0KDQpJZGVhIDI6IHhhdHRyIGF0dGFjaGVkIHRvIOKAnC8iDQoN Cj4gDQo+IEhvdyBhYm91dCB1c2luZyB0aGUgc2FtZSBhcHByb2FjaCB1c2VkIGZvciBqdW5jdGlv bnM6DQo+IHB1dCB0aGUgbGlzdCBpbiBhbiB4YXR0ciBhdHRhY2hlZCB0byAvID8gbW91bnRkIGNh bg0KPiBleHRyYWN0IHRoYXQgd2hlbiB0aGUga2VybmVsIGFza3MgZm9yIGhlbHAgc2F0aXNmeWlu Zw0KPiBhIEdFVEFUVFIoZnNfbG9jYXRpb25zKSBvbiBWNFJPT1QuDQoNCg0KSWRlYSAzOiBuZXcg L2V0Yy8gY29uZmlnIGZpbGUNCj4gDQo+IE9yIGl0IGNvdWxkIGJlIHB1dCBpbiBhIHNlcGFyYXRl IGNvbmZpZyBmaWxlIGluIC9ldGMuDQo+IFlvdSBtaWdodCB3YW50IHRvIHNwZWNpZnkgbW9yZSB0 aGFuIGp1c3QgdGhlIGkvZiBsaXN0DQo+IGhlcmU7IGZvciBpbnN0YW5jZSwgdGhlIHNlY3VyaXR5 IHBvbGljeSBmb3IgdGhlDQo+IHBzZXVkb2ZzLCBvciBhIGNvbnN0YW50IGZzaWQgVVVJRCwgYW1v bmcgb3RoZXIgdGhpbmdzLg0KDQoNCkFQSSB0byB1cGRhdGUgdGhlIGkvZiBsaXN0LiAgVGhpcyBp cyBub3QgYWJvdXQgd2hlcmUgdG8gaG9sZCBmc19sb2NhdGlvbnMgY29uZmlnIGluZm8sIGJ1dCBy YXRoZXIgaG93IHRvIGluc2VydCB0aGUgKGNoYW5nZWQpIGluZm8gaW50byB0aGUgcnVubmluZyBz eXN0ZW0uDQoNCj4gDQo+IEFsc28sIEkgc3VnZ2VzdGVkIHRvIEFuZHkgZWFybGllcjoNCj4gDQo+ PiBJIGZpbmQgbXlzZWxmIGxlYW5pbmcgdG93YXJkcyBtZWNoYW5pc21zIHRoYXQgYXJlIGVhc3kN Cj4+IGJvdGggZm9yIGFkbWlucyBhbmQgZm9yIHByb2dyYW1zIChpZSwgYW4gQVBJKS4gUGVyaGFw cw0KPj4gb25lIGRheSB5b3UgbWlnaHQgd2FudCB0byBhZGQgYSBjb21tYW5kIHRoYXQgdXBkYXRl cyB0aGUNCj4+IGkvZiBsaXN0IGZyb20gdGhlIHNjcmlwdHMgaW4gL2V0Yy9zeXNjb25maWcvbmV0 d29yay1zY3JpcHRzLA0KPj4gZm9yIGluc3RhbmNlLg0KPj4gDQo+PiBBcyBwYXJ0IG9mIGFuIGlm dXA6DQo+PiANCj4+IG5mc3BmcyBhZGQgPGFkZHI+DQo+PiANCj4+IGFuZCBpZmRvd246DQo+PiAN Cj4+IG5mc3BmcyByZW1vdmUgPGFkZHI+DQo+PiANCj4+IEkgd3JvdGUgc29tZSBQeXRob24gY29k ZSB0byBtYW5pcHVsYXRlIGVudHJpZXMgaW4NCj4+IC9ldGMvZXhwb3J0cywgbm93IGZvdW5kIGlu IGZlZGZzLXV0aWxzLiBJdCdzIGlja3kuDQo+IA0KPiANCj4gSSB0aGluayB3ZSBzaG91bGQgbW92 ZSBhd2F5IGZyb20gImVkaXQgdGhpcyBmaWxlDQo+IGFuZCBzYXZlIGl0LCB0aGVuIHJlc3RhcnQg cnBjLnh5enBkcSIuIEJ1aWxkIHNvbWUNCj4gY29tbWFuZCBsaW5lIGludGVyZmFjZXMgZm9yIHRo aXMuDQo+IA0KPiBBbmQgYXMgeW91IGhhdmUgc3VnZ2VzdGVkIG1hbnkgdGltZXM6IHNlcGFyYXRl DQo+IHBvbGljeSBmcm9tIG1lY2hhbmlzbS4gL2V0Yy9leHBvcnRzIGlzIHRoZQ0KPiBtZWNoYW5p c20uDQo+IA0KPiAtLQ0KPiBDaHVjayBMZXZlcg0KDQpCcnVjZSAtIGRvIHlvdSBoYXZlIGEgcHJl ZmVyZW5jZSBiZXR3ZWVuICMxIGFuZCAjMiBvciAjMyAob3IgYW5vdGhlciBpZGVhPykNCg0KVGhh bmtzDQoNCuKAlD5BbmR5 ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Configuring fs_locations on Linux upstream server pseudo fs for session trunking 2016-05-25 17:29 ` Configuring fs_locations on Linux upstream server pseudo fs for session trunking Adamson, Andy @ 2016-05-25 18:48 ` bfields 2016-05-25 18:55 ` Chuck Lever 2016-05-31 18:23 ` Steve Dickson 1 sibling, 1 reply; 15+ messages in thread From: bfields @ 2016-05-25 18:48 UTC (permalink / raw) To: Adamson, Andy; +Cc: chuck.lever, linux-nfs On Wed, May 25, 2016 at 05:29:35PM +0000, Adamson, Andy wrote: > Anna Schumaker who reviewed my client side session trunking patchset, wants a full featured version of both the client and the server session trunking pieces before accepting the session trunking feature upstream. To that end, I want to implement the server mountd V4ROOT processing of an fs_locations configuration to satisfy an fs_locations request on the pseudo fs. > > The forwarded message is from an email stream between Bruce, Chuck and I concerning the server pseufo fs fs_locations configuration that I’m now sharing with the list. > > Some background: > > The recent "NFSV4.1,2 session trunking” Version-5 patch set sent to the list notes (in patch 00/10): > > The pseudo-fs GETATTR(fs_locations) probe session trunking > was tested against a Linux server with a pseudo-fs > export stanza (e.g. a stanza with the fsid=0 or fsid=root > export option) and a replicas= export option > (replicas=<path1>@<server1>:<path2>@<server2>..) > Note that this configuration is for testing only. A future > patchset will add the replicas= configuration to the > NFSEXP_V4ROOT nfsd and mountd processing. > > > There are several ideas on how to accomplish mountd/V4ROOT fs_locations configuration in the forwarded message. See inline. > > > > Begin forwarded message: > > > > From: Chuck Lever <chuck.lever@oracle.com> > > Subject: Re: Configuring fs_locations on Linux upstream server > > Date: May 6, 2016 at 4:31:00 PM EDT > > To: "J. Bruce Fields" <bfields@fieldses.org> > > Cc: "Adamson, Andy" <William.Adamson@netapp.com> > > > > > >> On May 6, 2016, at 4:16 PM, J. Bruce Fields <bfields@fieldses.org> wrote: > >> > >> On Fri, May 06, 2016 at 02:20:12PM -0400, Chuck Lever wrote: > >>> Seems like when a server does not return a list, that is > >>> information the client can use: basically, there is no > >>> ability to do any session trunking. It has to be set up > >>> explicitly; is that a bad thing, operationally? > >> > >> I like the idea of it being opt in on the server. > >> > >> Suppose the server transparently starts advertising all available > >> addresses for session trunking. It's not hard to imagine cases where > >> that would go wrong. E.g., maybe the server has the odd wireless or > >> 100Mb or other interface that happens to work but that's slow. Then > >> somebody upgrades their server and performance goes down and it may take > >> them a while to figure out why. Whereas if they'd had to opt in they'd > >> probably have avoided advertising an inappropriate interface. Or at > >> least they'd have a better chance of figuring out that turning on > >> trunking was what caused the problem. > >> > >> I'd rather not force people to export "/" explicitly, though. It's fine > >> for testing, but: > >> > >> - I don't think we give a way to do an explicit V4ROOT export, > >> so they'd be exposing their entire root partition. We could > >> fix that, but > >> - the pseudofs just seems to me like something people shouldn't > >> normally have to think about. It's a protocol implementation > >> detail, I'd rather hide it. It'd be to easy to configure it a > >> little wrong, I think. > >> > >> We can still do this by adding a replicas= option to the / export, but > >> we can let rpc.mountd do that internally instead of making the admin add > >> it to /etc/exports. > >> > >> But then you still need a way for the admin to tell rpc.mountd to cook > >> up the replicas= option..... I'm not sure what that should look like. > > Idea 1: extra syntax in /etc/exports It's not really export-specific information. I wonder if it'd be better to pass it on the rpc.nfsd commandline? rpc.nfsd --multipath-set="192.168.0.1,192.168.0.2" (and then that can be configured in /etc/sysconfig/nfs or whatever)? > >> Maybe some extra syntax in /etc/exports, but what do they need to give > >> us--just one list of IP addresses? Chuck, any ideas? > > Idea 2: xattr attached to “/" > > > > > How about using the same approach used for junctions: > > put the list in an xattr attached to / ? mountd can > > extract that when the kernel asks for help satisfying > > a GETATTR(fs_locations) on V4ROOT. I don't think that works. "/" isn't a good place to put configuration. It could be read-only, among other things. > Idea 3: new /etc/ config file > > > > Or it could be put in a separate config file in /etc. > > You might want to specify more than just the i/f list > > here; for instance, the security policy for the > > pseudofs, or a constant fsid UUID, among other things. > > > API to update the i/f list. This is not about where to hold fs_locations config info, but rather how to insert the (changed) info into the running system. > > > > > Also, I suggested to Andy earlier: > > > >> I find myself leaning towards mechanisms that are easy > >> both for admins and for programs (ie, an API). Perhaps > >> one day you might want to add a command that updates the > >> i/f list from the scripts in /etc/sysconfig/network-scripts, > >> for instance. > >> > >> As part of an ifup: > >> > >> nfspfs add <addr> > >> > >> and ifdown: > >> > >> nfspfs remove <addr> > >> > >> I wrote some Python code to manipulate entries in > >> /etc/exports, now found in fedfs-utils. It's icky. > > > > I think we should move away from "edit this file > > and save it, then restart rpc.xyzpdq". Build some > > command line interfaces for this. I'm OK with that. (Note do have that for information in /etc/exports--we have exportfs. Is there a reason that didn't work for fedfs-utils?) --b. > > > > And as you have suggested many times: separate > > policy from mechanism. /etc/exports is the > > mechanism. > > > > -- > > Chuck Lever > > Bruce - do you have a preference between #1 and #2 or #3 (or another idea?) > > Thanks > > —>Andy ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Configuring fs_locations on Linux upstream server pseudo fs for session trunking 2016-05-25 18:48 ` bfields @ 2016-05-25 18:55 ` Chuck Lever 2016-05-26 13:54 ` Andy Adamson 0 siblings, 1 reply; 15+ messages in thread From: Chuck Lever @ 2016-05-25 18:55 UTC (permalink / raw) To: J. Bruce Fields; +Cc: Adamson, Andy, Linux NFS Mailing List > On May 25, 2016, at 2:48 PM, bfields@fieldses.org wrote: > > On Wed, May 25, 2016 at 05:29:35PM +0000, Adamson, Andy wrote: >> Anna Schumaker who reviewed my client side session trunking patchset, wants a full featured version of both the client and the server session trunking pieces before accepting the session trunking feature upstream. To that end, I want to implement the server mountd V4ROOT processing of an fs_locations configuration to satisfy an fs_locations request on the pseudo fs. >> >> The forwarded message is from an email stream between Bruce, Chuck and I concerning the server pseufo fs fs_locations configuration that I’m now sharing with the list. >> >> Some background: >> >> The recent "NFSV4.1,2 session trunking” Version-5 patch set sent to the list notes (in patch 00/10): >> >> The pseudo-fs GETATTR(fs_locations) probe session trunking >> was tested against a Linux server with a pseudo-fs >> export stanza (e.g. a stanza with the fsid=0 or fsid=root >> export option) and a replicas= export option >> (replicas=<path1>@<server1>:<path2>@<server2>..) >> Note that this configuration is for testing only. A future >> patchset will add the replicas= configuration to the >> NFSEXP_V4ROOT nfsd and mountd processing. >> >> >> There are several ideas on how to accomplish mountd/V4ROOT fs_locations configuration in the forwarded message. See inline. >> >> >>> Begin forwarded message: >>> >>> From: Chuck Lever <chuck.lever@oracle.com> >>> Subject: Re: Configuring fs_locations on Linux upstream server >>> Date: May 6, 2016 at 4:31:00 PM EDT >>> To: "J. Bruce Fields" <bfields@fieldses.org> >>> Cc: "Adamson, Andy" <William.Adamson@netapp.com> >>> >>> >>>> On May 6, 2016, at 4:16 PM, J. Bruce Fields <bfields@fieldses.org> wrote: >>>> >>>> On Fri, May 06, 2016 at 02:20:12PM -0400, Chuck Lever wrote: >>>>> Seems like when a server does not return a list, that is >>>>> information the client can use: basically, there is no >>>>> ability to do any session trunking. It has to be set up >>>>> explicitly; is that a bad thing, operationally? >>>> >>>> I like the idea of it being opt in on the server. >>>> >>>> Suppose the server transparently starts advertising all available >>>> addresses for session trunking. It's not hard to imagine cases where >>>> that would go wrong. E.g., maybe the server has the odd wireless or >>>> 100Mb or other interface that happens to work but that's slow. Then >>>> somebody upgrades their server and performance goes down and it may take >>>> them a while to figure out why. Whereas if they'd had to opt in they'd >>>> probably have avoided advertising an inappropriate interface. Or at >>>> least they'd have a better chance of figuring out that turning on >>>> trunking was what caused the problem. >>>> >>>> I'd rather not force people to export "/" explicitly, though. It's fine >>>> for testing, but: >>>> >>>> - I don't think we give a way to do an explicit V4ROOT export, >>>> so they'd be exposing their entire root partition. We could >>>> fix that, but >>>> - the pseudofs just seems to me like something people shouldn't >>>> normally have to think about. It's a protocol implementation >>>> detail, I'd rather hide it. It'd be to easy to configure it a >>>> little wrong, I think. >>>> >>>> We can still do this by adding a replicas= option to the / export, but >>>> we can let rpc.mountd do that internally instead of making the admin add >>>> it to /etc/exports. >>>> >>>> But then you still need a way for the admin to tell rpc.mountd to cook >>>> up the replicas= option..... I'm not sure what that should look like. >> >> Idea 1: extra syntax in /etc/exports > > It's not really export-specific information. I wonder if it'd be better > to pass it on the rpc.nfsd commandline? > > rpc.nfsd --multipath-set="192.168.0.1,192.168.0.2" > > (and then that can be configured in /etc/sysconfig/nfs or whatever)? > >>>> Maybe some extra syntax in /etc/exports, but what do they need to give >>>> us--just one list of IP addresses? Chuck, any ideas? >> >> Idea 2: xattr attached to “/" >> >>> >>> How about using the same approach used for junctions: >>> put the list in an xattr attached to / ? mountd can >>> extract that when the kernel asks for help satisfying >>> a GETATTR(fs_locations) on V4ROOT. > > I don't think that works. "/" isn't a good place to put configuration. > It could be read-only, among other things. > >> Idea 3: new /etc/ config file >>> >>> Or it could be put in a separate config file in /etc. >>> You might want to specify more than just the i/f list >>> here; for instance, the security policy for the >>> pseudofs, or a constant fsid UUID, among other things. >> >> >> API to update the i/f list. This is not about where to hold fs_locations config info, but rather how to insert the (changed) info into the running system. >> >>> >>> Also, I suggested to Andy earlier: >>> >>>> I find myself leaning towards mechanisms that are easy >>>> both for admins and for programs (ie, an API). Perhaps >>>> one day you might want to add a command that updates the >>>> i/f list from the scripts in /etc/sysconfig/network-scripts, >>>> for instance. >>>> >>>> As part of an ifup: >>>> >>>> nfspfs add <addr> >>>> >>>> and ifdown: >>>> >>>> nfspfs remove <addr> >>>> >>>> I wrote some Python code to manipulate entries in >>>> /etc/exports, now found in fedfs-utils. It's icky. >>> >>> I think we should move away from "edit this file >>> and save it, then restart rpc.xyzpdq". Build some >>> command line interfaces for this. > > I'm OK with that. > > (Note do have that for information in /etc/exports--we have exportfs. > Is there a reason that didn't work for fedfs-utils?) To make changes that can survive a server reboot, you have to update /etc/exports. > --b. > >>> >>> And as you have suggested many times: separate >>> policy from mechanism. /etc/exports is the >>> mechanism. >>> >>> -- >>> Chuck Lever >> >> Bruce - do you have a preference between #1 and #2 or #3 (or another idea?) >> >> Thanks >> >> —>Andy > -- > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Chuck Lever ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Configuring fs_locations on Linux upstream server pseudo fs for session trunking 2016-05-25 18:55 ` Chuck Lever @ 2016-05-26 13:54 ` Andy Adamson 2016-05-26 14:25 ` Chuck Lever 2016-05-26 15:22 ` J. Bruce Fields 0 siblings, 2 replies; 15+ messages in thread From: Andy Adamson @ 2016-05-26 13:54 UTC (permalink / raw) To: Chuck Lever; +Cc: J. Bruce Fields, Adamson, Andy, Linux NFS Mailing List On Wed, May 25, 2016 at 2:55 PM, Chuck Lever <chuck.lever@oracle.com> wrote: > >> On May 25, 2016, at 2:48 PM, bfields@fieldses.org wrote: >> >> On Wed, May 25, 2016 at 05:29:35PM +0000, Adamson, Andy wrote: >>> Anna Schumaker who reviewed my client side session trunking patchset, wants a full featured version of both the client and the server session trunking pieces before accepting the session trunking feature upstream. To that end, I want to implement the server mountd V4ROOT processing of an fs_locations configuration to satisfy an fs_locations request on the pseudo fs. >>> >>> The forwarded message is from an email stream between Bruce, Chuck and I concerning the server pseufo fs fs_locations configuration that I’m now sharing with the list. >>> >>> Some background: >>> >>> The recent "NFSV4.1,2 session trunking” Version-5 patch set sent to the list notes (in patch 00/10): >>> >>> The pseudo-fs GETATTR(fs_locations) probe session trunking >>> was tested against a Linux server with a pseudo-fs >>> export stanza (e.g. a stanza with the fsid=0 or fsid=root >>> export option) and a replicas= export option >>> (replicas=<path1>@<server1>:<path2>@<server2>..) >>> Note that this configuration is for testing only. A future >>> patchset will add the replicas= configuration to the >>> NFSEXP_V4ROOT nfsd and mountd processing. >>> >>> >>> There are several ideas on how to accomplish mountd/V4ROOT fs_locations configuration in the forwarded message. See inline. >>> >>> >>>> Begin forwarded message: >>>> >>>> From: Chuck Lever <chuck.lever@oracle.com> >>>> Subject: Re: Configuring fs_locations on Linux upstream server >>>> Date: May 6, 2016 at 4:31:00 PM EDT >>>> To: "J. Bruce Fields" <bfields@fieldses.org> >>>> Cc: "Adamson, Andy" <William.Adamson@netapp.com> >>>> >>>> >>>>> On May 6, 2016, at 4:16 PM, J. Bruce Fields <bfields@fieldses.org> wrote: >>>>> >>>>> On Fri, May 06, 2016 at 02:20:12PM -0400, Chuck Lever wrote: >>>>>> Seems like when a server does not return a list, that is >>>>>> information the client can use: basically, there is no >>>>>> ability to do any session trunking. It has to be set up >>>>>> explicitly; is that a bad thing, operationally? >>>>> >>>>> I like the idea of it being opt in on the server. >>>>> >>>>> Suppose the server transparently starts advertising all available >>>>> addresses for session trunking. It's not hard to imagine cases where >>>>> that would go wrong. E.g., maybe the server has the odd wireless or >>>>> 100Mb or other interface that happens to work but that's slow. Then >>>>> somebody upgrades their server and performance goes down and it may take >>>>> them a while to figure out why. Whereas if they'd had to opt in they'd >>>>> probably have avoided advertising an inappropriate interface. Or at >>>>> least they'd have a better chance of figuring out that turning on >>>>> trunking was what caused the problem. >>>>> >>>>> I'd rather not force people to export "/" explicitly, though. It's fine >>>>> for testing, but: >>>>> >>>>> - I don't think we give a way to do an explicit V4ROOT export, >>>>> so they'd be exposing their entire root partition. We could >>>>> fix that, but >>>>> - the pseudofs just seems to me like something people shouldn't >>>>> normally have to think about. It's a protocol implementation >>>>> detail, I'd rather hide it. It'd be to easy to configure it a >>>>> little wrong, I think. >>>>> >>>>> We can still do this by adding a replicas= option to the / export, but >>>>> we can let rpc.mountd do that internally instead of making the admin add >>>>> it to /etc/exports. >>>>> >>>>> But then you still need a way for the admin to tell rpc.mountd to cook >>>>> up the replicas= option..... I'm not sure what that should look like. >>> >>> Idea 1: extra syntax in /etc/exports >> >> It's not really export-specific information. I wonder if it'd be better >> to pass it on the rpc.nfsd commandline? >> >> rpc.nfsd --multipath-set="192.168.0.1,192.168.0.2" >> >> (and then that can be configured in /etc/sysconfig/nfs or whatever)? Is this (the rpc.nfsd command line and /etc/sysconfig/nfs entry) the preferred way? Is /etc/sysconfig/nfs read upon reboot? -->Andy >> >>>>> Maybe some extra syntax in /etc/exports, but what do they need to give >>>>> us--just one list of IP addresses? Chuck, any ideas? >>> >>> Idea 2: xattr attached to “/" >>> >>>> >>>> How about using the same approach used for junctions: >>>> put the list in an xattr attached to / ? mountd can >>>> extract that when the kernel asks for help satisfying >>>> a GETATTR(fs_locations) on V4ROOT. >> >> I don't think that works. "/" isn't a good place to put configuration. >> It could be read-only, among other things. >> >>> Idea 3: new /etc/ config file >>>> >>>> Or it could be put in a separate config file in /etc. >>>> You might want to specify more than just the i/f list >>>> here; for instance, the security policy for the >>>> pseudofs, or a constant fsid UUID, among other things. >>> >>> >>> API to update the i/f list. This is not about where to hold fs_locations config info, but rather how to insert the (changed) info into the running system. >>> >>>> >>>> Also, I suggested to Andy earlier: >>>> >>>>> I find myself leaning towards mechanisms that are easy >>>>> both for admins and for programs (ie, an API). Perhaps >>>>> one day you might want to add a command that updates the >>>>> i/f list from the scripts in /etc/sysconfig/network-scripts, >>>>> for instance. >>>>> >>>>> As part of an ifup: >>>>> >>>>> nfspfs add <addr> >>>>> >>>>> and ifdown: >>>>> >>>>> nfspfs remove <addr> >>>>> >>>>> I wrote some Python code to manipulate entries in >>>>> /etc/exports, now found in fedfs-utils. It's icky. >>>> >>>> I think we should move away from "edit this file >>>> and save it, then restart rpc.xyzpdq". Build some >>>> command line interfaces for this. >> >> I'm OK with that. >> >> (Note do have that for information in /etc/exports--we have exportfs. >> Is there a reason that didn't work for fedfs-utils?) > > To make changes that can survive a server reboot, > you have to update /etc/exports. > > >> --b. >> >>>> >>>> And as you have suggested many times: separate >>>> policy from mechanism. /etc/exports is the >>>> mechanism. >>>> >>>> -- >>>> Chuck Lever >>> >>> Bruce - do you have a preference between #1 and #2 or #3 (or another idea?) >>> >>> Thanks >>> >>> —>Andy >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html > > -- > Chuck Lever > > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Configuring fs_locations on Linux upstream server pseudo fs for session trunking 2016-05-26 13:54 ` Andy Adamson @ 2016-05-26 14:25 ` Chuck Lever 2016-05-26 14:44 ` Adamson, Andy 2016-05-26 15:22 ` J. Bruce Fields 1 sibling, 1 reply; 15+ messages in thread From: Chuck Lever @ 2016-05-26 14:25 UTC (permalink / raw) To: William A. (Andy) Adamson Cc: J. Bruce Fields, Adamson, Andy, Linux NFS Mailing List > On May 26, 2016, at 9:54 AM, Andy Adamson <androsadamson@gmail.com> wrote: > > On Wed, May 25, 2016 at 2:55 PM, Chuck Lever <chuck.lever@oracle.com> wrote: >> >>> On May 25, 2016, at 2:48 PM, bfields@fieldses.org wrote: >>> >>> On Wed, May 25, 2016 at 05:29:35PM +0000, Adamson, Andy wrote: >>>> Anna Schumaker who reviewed my client side session trunking patchset, wants a full featured version of both the client and the server session trunking pieces before accepting the session trunking feature upstream. To that end, I want to implement the server mountd V4ROOT processing of an fs_locations configuration to satisfy an fs_locations request on the pseudo fs. >>>> >>>> The forwarded message is from an email stream between Bruce, Chuck and I concerning the server pseufo fs fs_locations configuration that I’m now sharing with the list. >>>> >>>> Some background: >>>> >>>> The recent "NFSV4.1,2 session trunking” Version-5 patch set sent to the list notes (in patch 00/10): >>>> >>>> The pseudo-fs GETATTR(fs_locations) probe session trunking >>>> was tested against a Linux server with a pseudo-fs >>>> export stanza (e.g. a stanza with the fsid=0 or fsid=root >>>> export option) and a replicas= export option >>>> (replicas=<path1>@<server1>:<path2>@<server2>..) >>>> Note that this configuration is for testing only. A future >>>> patchset will add the replicas= configuration to the >>>> NFSEXP_V4ROOT nfsd and mountd processing. >>>> >>>> >>>> There are several ideas on how to accomplish mountd/V4ROOT fs_locations configuration in the forwarded message. See inline. >>>> >>>> >>>>> Begin forwarded message: >>>>> >>>>> From: Chuck Lever <chuck.lever@oracle.com> >>>>> Subject: Re: Configuring fs_locations on Linux upstream server >>>>> Date: May 6, 2016 at 4:31:00 PM EDT >>>>> To: "J. Bruce Fields" <bfields@fieldses.org> >>>>> Cc: "Adamson, Andy" <William.Adamson@netapp.com> >>>>> >>>>> >>>>>> On May 6, 2016, at 4:16 PM, J. Bruce Fields <bfields@fieldses.org> wrote: >>>>>> >>>>>> On Fri, May 06, 2016 at 02:20:12PM -0400, Chuck Lever wrote: >>>>>>> Seems like when a server does not return a list, that is >>>>>>> information the client can use: basically, there is no >>>>>>> ability to do any session trunking. It has to be set up >>>>>>> explicitly; is that a bad thing, operationally? >>>>>> >>>>>> I like the idea of it being opt in on the server. >>>>>> >>>>>> Suppose the server transparently starts advertising all available >>>>>> addresses for session trunking. It's not hard to imagine cases where >>>>>> that would go wrong. E.g., maybe the server has the odd wireless or >>>>>> 100Mb or other interface that happens to work but that's slow. Then >>>>>> somebody upgrades their server and performance goes down and it may take >>>>>> them a while to figure out why. Whereas if they'd had to opt in they'd >>>>>> probably have avoided advertising an inappropriate interface. Or at >>>>>> least they'd have a better chance of figuring out that turning on >>>>>> trunking was what caused the problem. >>>>>> >>>>>> I'd rather not force people to export "/" explicitly, though. It's fine >>>>>> for testing, but: >>>>>> >>>>>> - I don't think we give a way to do an explicit V4ROOT export, >>>>>> so they'd be exposing their entire root partition. We could >>>>>> fix that, but >>>>>> - the pseudofs just seems to me like something people shouldn't >>>>>> normally have to think about. It's a protocol implementation >>>>>> detail, I'd rather hide it. It'd be to easy to configure it a >>>>>> little wrong, I think. >>>>>> >>>>>> We can still do this by adding a replicas= option to the / export, but >>>>>> we can let rpc.mountd do that internally instead of making the admin add >>>>>> it to /etc/exports. >>>>>> >>>>>> But then you still need a way for the admin to tell rpc.mountd to cook >>>>>> up the replicas= option..... I'm not sure what that should look like. >>>> >>>> Idea 1: extra syntax in /etc/exports >>> >>> It's not really export-specific information. I wonder if it'd be better >>> to pass it on the rpc.nfsd commandline? >>> >>> rpc.nfsd --multipath-set="192.168.0.1,192.168.0.2" >>> >>> (and then that can be configured in /etc/sysconfig/nfs or whatever)? > > Is this (the rpc.nfsd command line and /etc/sysconfig/nfs entry) the > preferred way? I don't prefer it. See below: I think we want something that is more convenient to update automatically. > Is /etc/sysconfig/nfs read upon reboot? It's read by all the start-up scripts related to NFS. > -->Andy > > > >>> >>>>>> Maybe some extra syntax in /etc/exports, but what do they need to give >>>>>> us--just one list of IP addresses? Chuck, any ideas? >>>> >>>> Idea 2: xattr attached to “/" >>>> >>>>> >>>>> How about using the same approach used for junctions: >>>>> put the list in an xattr attached to / ? mountd can >>>>> extract that when the kernel asks for help satisfying >>>>> a GETATTR(fs_locations) on V4ROOT. >>> >>> I don't think that works. "/" isn't a good place to put configuration. >>> It could be read-only, among other things. >>> >>>> Idea 3: new /etc/ config file >>>>> >>>>> Or it could be put in a separate config file in /etc. >>>>> You might want to specify more than just the i/f list >>>>> here; for instance, the security policy for the >>>>> pseudofs, or a constant fsid UUID, among other things. >>>> >>>> >>>> API to update the i/f list. This is not about where to hold fs_locations config info, but rather how to insert the (changed) info into the running system. >>>> >>>>> >>>>> Also, I suggested to Andy earlier: >>>>> >>>>>> I find myself leaning towards mechanisms that are easy >>>>>> both for admins and for programs (ie, an API). Perhaps >>>>>> one day you might want to add a command that updates the >>>>>> i/f list from the scripts in /etc/sysconfig/network-scripts, >>>>>> for instance. >>>>>> >>>>>> As part of an ifup: >>>>>> >>>>>> nfspfs add <addr> >>>>>> >>>>>> and ifdown: >>>>>> >>>>>> nfspfs remove <addr> >>>>>> >>>>>> I wrote some Python code to manipulate entries in >>>>>> /etc/exports, now found in fedfs-utils. It's icky. >>>>> >>>>> I think we should move away from "edit this file >>>>> and save it, then restart rpc.xyzpdq". Build some >>>>> command line interfaces for this. >>> >>> I'm OK with that. >>> >>> (Note do have that for information in /etc/exports--we have exportfs. >>> Is there a reason that didn't work for fedfs-utils?) >> >> To make changes that can survive a server reboot, >> you have to update /etc/exports. >> >> >>> --b. >>> >>>>> >>>>> And as you have suggested many times: separate >>>>> policy from mechanism. /etc/exports is the >>>>> mechanism. >>>>> >>>>> -- >>>>> Chuck Lever >>>> >>>> Bruce - do you have a preference between #1 and #2 or #3 (or another idea?) >>>> >>>> Thanks >>>> >>>> —>Andy >>> -- >>> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in >>> the body of a message to majordomo@vger.kernel.org >>> More majordomo info at http://vger.kernel.org/majordomo-info.html >> >> -- >> Chuck Lever >> >> >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html > -- > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Chuck Lever ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Configuring fs_locations on Linux upstream server pseudo fs for session trunking 2016-05-26 14:25 ` Chuck Lever @ 2016-05-26 14:44 ` Adamson, Andy 2016-05-26 15:22 ` Chuck Lever 0 siblings, 1 reply; 15+ messages in thread From: Adamson, Andy @ 2016-05-26 14:44 UTC (permalink / raw) To: Chuck Lever Cc: William A. (Andy) Adamson, J. Bruce Fields, Adamson, Andy, Linux NFS Mailing List DQo+IE9uIE1heSAyNiwgMjAxNiwgYXQgMTA6MjUgQU0sIENodWNrIExldmVyIDxjaHVjay5sZXZl ckBvcmFjbGUuY29tPiB3cm90ZToNCj4gDQo+IA0KPj4gT24gTWF5IDI2LCAyMDE2LCBhdCA5OjU0 IEFNLCBBbmR5IEFkYW1zb24gPGFuZHJvc2FkYW1zb25AZ21haWwuY29tPiB3cm90ZToNCj4+IA0K Pj4gT24gV2VkLCBNYXkgMjUsIDIwMTYgYXQgMjo1NSBQTSwgQ2h1Y2sgTGV2ZXIgPGNodWNrLmxl dmVyQG9yYWNsZS5jb20+IHdyb3RlOg0KPj4+IA0KPj4+PiBPbiBNYXkgMjUsIDIwMTYsIGF0IDI6 NDggUE0sIGJmaWVsZHNAZmllbGRzZXMub3JnIHdyb3RlOg0KPj4+PiANCj4+Pj4gT24gV2VkLCBN YXkgMjUsIDIwMTYgYXQgMDU6Mjk6MzVQTSArMDAwMCwgQWRhbXNvbiwgQW5keSB3cm90ZToNCj4+ Pj4+IEFubmEgU2NodW1ha2VyIHdobyByZXZpZXdlZCBteSBjbGllbnQgc2lkZSBzZXNzaW9uIHRy dW5raW5nIHBhdGNoc2V0LCB3YW50cyBhIGZ1bGwgZmVhdHVyZWQgdmVyc2lvbiBvZiBib3RoIHRo ZSBjbGllbnQgYW5kIHRoZSBzZXJ2ZXIgc2Vzc2lvbiB0cnVua2luZyBwaWVjZXMgYmVmb3JlIGFj Y2VwdGluZyB0aGUgc2Vzc2lvbiB0cnVua2luZyBmZWF0dXJlIHVwc3RyZWFtLiBUbyB0aGF0IGVu ZCwgSSB3YW50IHRvIGltcGxlbWVudCB0aGUgc2VydmVyIG1vdW50ZCBWNFJPT1QgcHJvY2Vzc2lu ZyBvZiBhbiBmc19sb2NhdGlvbnMgY29uZmlndXJhdGlvbiB0byBzYXRpc2Z5IGFuIGZzX2xvY2F0 aW9ucyByZXF1ZXN0IG9uIHRoZSBwc2V1ZG8gZnMuDQo+Pj4+PiANCj4+Pj4+IFRoZSBmb3J3YXJk ZWQgbWVzc2FnZSBpcyBmcm9tIGFuIGVtYWlsIHN0cmVhbSBiZXR3ZWVuIEJydWNlLCBDaHVjayBh bmQgSSBjb25jZXJuaW5nIHRoZSBzZXJ2ZXIgcHNldWZvIGZzIGZzX2xvY2F0aW9ucyBjb25maWd1 cmF0aW9uIHRoYXQgSeKAmW0gbm93IHNoYXJpbmcgd2l0aCB0aGUgbGlzdC4NCj4+Pj4+IA0KPj4+ Pj4gU29tZSBiYWNrZ3JvdW5kOg0KPj4+Pj4gDQo+Pj4+PiBUaGUgcmVjZW50ICJORlNWNC4xLDIg c2Vzc2lvbiB0cnVua2luZ+KAnSBWZXJzaW9uLTUgcGF0Y2ggc2V0IHNlbnQgdG8gdGhlIGxpc3Qg bm90ZXMgKGluIHBhdGNoIDAwLzEwKToNCj4+Pj4+IA0KPj4+Pj4gVGhlIHBzZXVkby1mcyBHRVRB VFRSKGZzX2xvY2F0aW9ucykgcHJvYmUgc2Vzc2lvbiB0cnVua2luZw0KPj4+Pj4gd2FzIHRlc3Rl ZCBhZ2FpbnN0IGEgTGludXggc2VydmVyIHdpdGggYSBwc2V1ZG8tZnMNCj4+Pj4+IGV4cG9ydCBz dGFuemEgKGUuZy4gYSBzdGFuemEgd2l0aCB0aGUgZnNpZD0wIG9yIGZzaWQ9cm9vdA0KPj4+Pj4g ZXhwb3J0IG9wdGlvbikgYW5kIGEgcmVwbGljYXM9IGV4cG9ydCBvcHRpb24NCj4+Pj4+IChyZXBs aWNhcz08cGF0aDE+QDxzZXJ2ZXIxPjo8cGF0aDI+QDxzZXJ2ZXIyPi4uKQ0KPj4+Pj4gTm90ZSB0 aGF0IHRoaXMgY29uZmlndXJhdGlvbiBpcyBmb3IgdGVzdGluZyBvbmx5LiBBIGZ1dHVyZQ0KPj4+ Pj4gcGF0Y2hzZXQgd2lsbCBhZGQgdGhlIHJlcGxpY2FzPSBjb25maWd1cmF0aW9uIHRvIHRoZQ0K Pj4+Pj4gTkZTRVhQX1Y0Uk9PVCBuZnNkIGFuZCBtb3VudGQgcHJvY2Vzc2luZy4NCj4+Pj4+IA0K Pj4+Pj4gDQo+Pj4+PiBUaGVyZSBhcmUgc2V2ZXJhbCBpZGVhcyBvbiBob3cgdG8gYWNjb21wbGlz aCBtb3VudGQvVjRST09UIGZzX2xvY2F0aW9ucyBjb25maWd1cmF0aW9uIGluIHRoZSBmb3J3YXJk ZWQgbWVzc2FnZS4gU2VlIGlubGluZS4NCj4+Pj4+IA0KPj4+Pj4gDQo+Pj4+Pj4gQmVnaW4gZm9y d2FyZGVkIG1lc3NhZ2U6DQo+Pj4+Pj4gDQo+Pj4+Pj4gRnJvbTogQ2h1Y2sgTGV2ZXIgPGNodWNr LmxldmVyQG9yYWNsZS5jb20+DQo+Pj4+Pj4gU3ViamVjdDogUmU6IENvbmZpZ3VyaW5nIGZzX2xv Y2F0aW9ucyBvbiBMaW51eCB1cHN0cmVhbSBzZXJ2ZXINCj4+Pj4+PiBEYXRlOiBNYXkgNiwgMjAx NiBhdCA0OjMxOjAwIFBNIEVEVA0KPj4+Pj4+IFRvOiAiSi4gQnJ1Y2UgRmllbGRzIiA8YmZpZWxk c0BmaWVsZHNlcy5vcmc+DQo+Pj4+Pj4gQ2M6ICJBZGFtc29uLCBBbmR5IiA8V2lsbGlhbS5BZGFt c29uQG5ldGFwcC5jb20+DQo+Pj4+Pj4gDQo+Pj4+Pj4gDQo+Pj4+Pj4+IE9uIE1heSA2LCAyMDE2 LCBhdCA0OjE2IFBNLCBKLiBCcnVjZSBGaWVsZHMgPGJmaWVsZHNAZmllbGRzZXMub3JnPiB3cm90 ZToNCj4+Pj4+Pj4gDQo+Pj4+Pj4+IE9uIEZyaSwgTWF5IDA2LCAyMDE2IGF0IDAyOjIwOjEyUE0g LTA0MDAsIENodWNrIExldmVyIHdyb3RlOg0KPj4+Pj4+Pj4gU2VlbXMgbGlrZSB3aGVuIGEgc2Vy dmVyIGRvZXMgbm90IHJldHVybiBhIGxpc3QsIHRoYXQgaXMNCj4+Pj4+Pj4+IGluZm9ybWF0aW9u IHRoZSBjbGllbnQgY2FuIHVzZTogYmFzaWNhbGx5LCB0aGVyZSBpcyBubw0KPj4+Pj4+Pj4gYWJp bGl0eSB0byBkbyBhbnkgc2Vzc2lvbiB0cnVua2luZy4gSXQgaGFzIHRvIGJlIHNldCB1cA0KPj4+ Pj4+Pj4gZXhwbGljaXRseTsgaXMgdGhhdCBhIGJhZCB0aGluZywgb3BlcmF0aW9uYWxseT8NCj4+ Pj4+Pj4gDQo+Pj4+Pj4+IEkgbGlrZSB0aGUgaWRlYSBvZiBpdCBiZWluZyBvcHQgaW4gb24gdGhl IHNlcnZlci4NCj4+Pj4+Pj4gDQo+Pj4+Pj4+IFN1cHBvc2UgdGhlIHNlcnZlciB0cmFuc3BhcmVu dGx5IHN0YXJ0cyBhZHZlcnRpc2luZyBhbGwgYXZhaWxhYmxlDQo+Pj4+Pj4+IGFkZHJlc3NlcyBm b3Igc2Vzc2lvbiB0cnVua2luZy4gIEl0J3Mgbm90IGhhcmQgdG8gaW1hZ2luZSBjYXNlcyB3aGVy ZQ0KPj4+Pj4+PiB0aGF0IHdvdWxkIGdvIHdyb25nLiAgRS5nLiwgbWF5YmUgdGhlIHNlcnZlciBo YXMgdGhlIG9kZCB3aXJlbGVzcyBvcg0KPj4+Pj4+PiAxMDBNYiBvciBvdGhlciBpbnRlcmZhY2Ug dGhhdCBoYXBwZW5zIHRvIHdvcmsgYnV0IHRoYXQncyBzbG93LiAgVGhlbg0KPj4+Pj4+PiBzb21l Ym9keSB1cGdyYWRlcyB0aGVpciBzZXJ2ZXIgYW5kIHBlcmZvcm1hbmNlIGdvZXMgZG93biBhbmQg aXQgbWF5IHRha2UNCj4+Pj4+Pj4gdGhlbSBhIHdoaWxlIHRvIGZpZ3VyZSBvdXQgd2h5LiAgV2hl cmVhcyBpZiB0aGV5J2QgaGFkIHRvIG9wdCBpbiB0aGV5J2QNCj4+Pj4+Pj4gcHJvYmFibHkgaGF2 ZSBhdm9pZGVkIGFkdmVydGlzaW5nIGFuIGluYXBwcm9wcmlhdGUgaW50ZXJmYWNlLiAgT3IgYXQN Cj4+Pj4+Pj4gbGVhc3QgdGhleSdkIGhhdmUgYSBiZXR0ZXIgY2hhbmNlIG9mIGZpZ3VyaW5nIG91 dCB0aGF0IHR1cm5pbmcgb24NCj4+Pj4+Pj4gdHJ1bmtpbmcgd2FzIHdoYXQgY2F1c2VkIHRoZSBw cm9ibGVtLg0KPj4+Pj4+PiANCj4+Pj4+Pj4gSSdkIHJhdGhlciBub3QgZm9yY2UgcGVvcGxlIHRv IGV4cG9ydCAiLyIgZXhwbGljaXRseSwgdGhvdWdoLiAgSXQncyBmaW5lDQo+Pj4+Pj4+IGZvciB0 ZXN0aW5nLCBidXQ6DQo+Pj4+Pj4+IA0KPj4+Pj4+PiAgLSBJIGRvbid0IHRoaW5rIHdlIGdpdmUg YSB3YXkgdG8gZG8gYW4gZXhwbGljaXQgVjRST09UIGV4cG9ydCwNCj4+Pj4+Pj4gICAgc28gdGhl eSdkIGJlIGV4cG9zaW5nIHRoZWlyIGVudGlyZSByb290IHBhcnRpdGlvbi4gIFdlIGNvdWxkDQo+ Pj4+Pj4+ICAgIGZpeCB0aGF0LCBidXQNCj4+Pj4+Pj4gIC0gdGhlIHBzZXVkb2ZzIGp1c3Qgc2Vl bXMgdG8gbWUgbGlrZSBzb21ldGhpbmcgcGVvcGxlIHNob3VsZG4ndA0KPj4+Pj4+PiAgICBub3Jt YWxseSBoYXZlIHRvIHRoaW5rIGFib3V0LiAgSXQncyBhIHByb3RvY29sIGltcGxlbWVudGF0aW9u DQo+Pj4+Pj4+ICAgIGRldGFpbCwgSSdkIHJhdGhlciBoaWRlIGl0LiAgSXQnZCBiZSB0byBlYXN5 IHRvIGNvbmZpZ3VyZSBpdCBhDQo+Pj4+Pj4+ICAgIGxpdHRsZSB3cm9uZywgSSB0aGluay4NCj4+ Pj4+Pj4gDQo+Pj4+Pj4+IFdlIGNhbiBzdGlsbCBkbyB0aGlzIGJ5IGFkZGluZyBhIHJlcGxpY2Fz PSBvcHRpb24gdG8gdGhlIC8gZXhwb3J0LCBidXQNCj4+Pj4+Pj4gd2UgY2FuIGxldCBycGMubW91 bnRkIGRvIHRoYXQgaW50ZXJuYWxseSBpbnN0ZWFkIG9mIG1ha2luZyB0aGUgYWRtaW4gYWRkDQo+ Pj4+Pj4+IGl0IHRvIC9ldGMvZXhwb3J0cy4NCj4+Pj4+Pj4gDQo+Pj4+Pj4+IEJ1dCB0aGVuIHlv dSBzdGlsbCBuZWVkIGEgd2F5IGZvciB0aGUgYWRtaW4gdG8gdGVsbCBycGMubW91bnRkIHRvIGNv b2sNCj4+Pj4+Pj4gdXAgdGhlIHJlcGxpY2FzPSBvcHRpb24uLi4uLiAgSSdtIG5vdCBzdXJlIHdo YXQgdGhhdCBzaG91bGQgbG9vayBsaWtlLg0KPj4+Pj4gDQo+Pj4+PiBJZGVhIDE6IGV4dHJhIHN5 bnRheCBpbiAvZXRjL2V4cG9ydHMNCj4+Pj4gDQo+Pj4+IEl0J3Mgbm90IHJlYWxseSBleHBvcnQt c3BlY2lmaWMgaW5mb3JtYXRpb24uICBJIHdvbmRlciBpZiBpdCdkIGJlIGJldHRlcg0KPj4+PiB0 byBwYXNzIGl0IG9uIHRoZSBycGMubmZzZCBjb21tYW5kbGluZT8NCj4+Pj4gDQo+Pj4+ICAgICBy cGMubmZzZCAtLW11bHRpcGF0aC1zZXQ9IjE5Mi4xNjguMC4xLDE5Mi4xNjguMC4yIg0KPj4+PiAN Cj4+Pj4gKGFuZCB0aGVuIHRoYXQgY2FuIGJlIGNvbmZpZ3VyZWQgaW4gL2V0Yy9zeXNjb25maWcv bmZzIG9yIHdoYXRldmVyKT8NCj4+IA0KPj4gSXMgdGhpcyAodGhlIHJwYy5uZnNkIGNvbW1hbmQg bGluZSBhbmQgL2V0Yy9zeXNjb25maWcvbmZzIGVudHJ5KSB0aGUNCj4+IHByZWZlcnJlZCB3YXk/ DQo+IA0KPiBJIGRvbid0IHByZWZlciBpdC4NCj4gDQo+IFNlZSBiZWxvdzogSSB0aGluayB3ZSB3 YW50IHNvbWV0aGluZyB0aGF0IGlzIG1vcmUNCj4gY29udmVuaWVudCB0byB1cGRhdGUgYXV0b21h dGljYWxseS4NCg0KRmluZSwgYnV0IEnigJltIGhhdmluZyBkaWZmaWN1bHR5IGluIHVuZGVyc3Rh bmRpbmcgdGhlIGRlc2lnbiB5b3UgYXJlIHN1Z2dlc3RpbmcgdG8gZnVsZmlsbCB0aGUgdXBkYXRl IGF1dG9tYXRpY2FsbHkgcmVxdWlyZW1lbnQuDQpTZWUgaW5saW5lIGJlbG93Lg0KDQo+IA0KPiAN Cj4+IElzIC9ldGMvc3lzY29uZmlnL25mcyByZWFkIHVwb24gcmVib290Pw0KPiANCj4gSXQncyBy ZWFkIGJ5IGFsbCB0aGUgc3RhcnQtdXAgc2NyaXB0cyByZWxhdGVkIHRvIE5GUy4NCj4gDQo+IA0K Pj4gLS0+QW5keQ0KPj4gDQo+PiANCj4+IA0KPj4+PiANCj4+Pj4+Pj4gTWF5YmUgc29tZSBleHRy YSBzeW50YXggaW4gL2V0Yy9leHBvcnRzLCBidXQgd2hhdCBkbyB0aGV5IG5lZWQgdG8gZ2l2ZQ0K Pj4+Pj4+PiB1cy0tanVzdCBvbmUgbGlzdCBvZiBJUCBhZGRyZXNzZXM/ICBDaHVjaywgYW55IGlk ZWFzPw0KPj4+Pj4gDQo+Pj4+PiBJZGVhIDI6IHhhdHRyIGF0dGFjaGVkIHRvIOKAnC8iDQo+Pj4+ PiANCj4+Pj4+PiANCj4+Pj4+PiBIb3cgYWJvdXQgdXNpbmcgdGhlIHNhbWUgYXBwcm9hY2ggdXNl ZCBmb3IganVuY3Rpb25zOg0KPj4+Pj4+IHB1dCB0aGUgbGlzdCBpbiBhbiB4YXR0ciBhdHRhY2hl ZCB0byAvID8gbW91bnRkIGNhbg0KPj4+Pj4+IGV4dHJhY3QgdGhhdCB3aGVuIHRoZSBrZXJuZWwg YXNrcyBmb3IgaGVscCBzYXRpc2Z5aW5nDQo+Pj4+Pj4gYSBHRVRBVFRSKGZzX2xvY2F0aW9ucykg b24gVjRST09ULg0KPj4+PiANCj4+Pj4gSSBkb24ndCB0aGluayB0aGF0IHdvcmtzLiAgIi8iIGlz bid0IGEgZ29vZCBwbGFjZSB0byBwdXQgY29uZmlndXJhdGlvbi4NCj4+Pj4gSXQgY291bGQgYmUg cmVhZC1vbmx5LCBhbW9uZyBvdGhlciB0aGluZ3MuDQo+Pj4+IA0KPj4+Pj4gSWRlYSAzOiBuZXcg L2V0Yy8gY29uZmlnIGZpbGUNCj4+Pj4+PiANCj4+Pj4+PiBPciBpdCBjb3VsZCBiZSBwdXQgaW4g YSBzZXBhcmF0ZSBjb25maWcgZmlsZSBpbiAvZXRjLg0KPj4+Pj4+IFlvdSBtaWdodCB3YW50IHRv IHNwZWNpZnkgbW9yZSB0aGFuIGp1c3QgdGhlIGkvZiBsaXN0DQo+Pj4+Pj4gaGVyZTsgZm9yIGlu c3RhbmNlLCB0aGUgc2VjdXJpdHkgcG9saWN5IGZvciB0aGUNCj4+Pj4+PiBwc2V1ZG9mcywgb3Ig YSBjb25zdGFudCBmc2lkIFVVSUQsIGFtb25nIG90aGVyIHRoaW5ncy4NCj4+Pj4+IA0KPj4+Pj4g DQo+Pj4+PiBBUEkgdG8gdXBkYXRlIHRoZSBpL2YgbGlzdC4gIFRoaXMgaXMgbm90IGFib3V0IHdo ZXJlIHRvIGhvbGQgZnNfbG9jYXRpb25zIGNvbmZpZyBpbmZvLCBidXQgcmF0aGVyIGhvdyB0byBp bnNlcnQgdGhlIChjaGFuZ2VkKSBpbmZvIGludG8gdGhlIHJ1bm5pbmcgc3lzdGVtLg0KPj4+Pj4g DQo+Pj4+Pj4gDQo+Pj4+Pj4gQWxzbywgSSBzdWdnZXN0ZWQgdG8gQW5keSBlYXJsaWVyOg0KPj4+ Pj4+IA0KPj4+Pj4+PiBJIGZpbmQgbXlzZWxmIGxlYW5pbmcgdG93YXJkcyBtZWNoYW5pc21zIHRo YXQgYXJlIGVhc3kNCj4+Pj4+Pj4gYm90aCBmb3IgYWRtaW5zIGFuZCBmb3IgcHJvZ3JhbXMgKGll LCBhbiBBUEkpLiBQZXJoYXBzDQo+Pj4+Pj4+IG9uZSBkYXkgeW91IG1pZ2h0IHdhbnQgdG8gYWRk IGEgY29tbWFuZCB0aGF0IHVwZGF0ZXMgdGhlDQo+Pj4+Pj4+IGkvZiBsaXN0IGZyb20gdGhlIHNj cmlwdHMgaW4gL2V0Yy9zeXNjb25maWcvbmV0d29yay1zY3JpcHRzLA0KPj4+Pj4+PiBmb3IgaW5z dGFuY2UuDQo+Pj4+Pj4+IA0KPj4+Pj4+PiBBcyBwYXJ0IG9mIGFuIGlmdXA6DQo+Pj4+Pj4+IA0K Pj4+Pj4+PiBuZnNwZnMgYWRkIDxhZGRyPg0KPj4+Pj4+PiANCj4+Pj4+Pj4gYW5kIGlmZG93bjoN Cj4+Pj4+Pj4gDQo+Pj4+Pj4+IG5mc3BmcyByZW1vdmUgPGFkZHI+DQo+Pj4+Pj4+IA0KPj4+Pj4+ PiBJIHdyb3RlIHNvbWUgUHl0aG9uIGNvZGUgdG8gbWFuaXB1bGF0ZSBlbnRyaWVzIGluDQo+Pj4+ Pj4+IC9ldGMvZXhwb3J0cywgbm93IGZvdW5kIGluIGZlZGZzLXV0aWxzLiBJdCdzIGlja3kuDQo+ Pj4+Pj4gDQo+Pj4+Pj4gSSB0aGluayB3ZSBzaG91bGQgbW92ZSBhd2F5IGZyb20gImVkaXQgdGhp cyBmaWxlDQo+Pj4+Pj4gYW5kIHNhdmUgaXQsIHRoZW4gcmVzdGFydCBycGMueHl6cGRxIi4gQnVp bGQgc29tZQ0KPj4+Pj4+IGNvbW1hbmQgbGluZSBpbnRlcmZhY2VzIGZvciB0aGlzLg0KPj4+PiAN Cj4+Pj4gSSdtIE9LIHdpdGggdGhhdC4NCj4+Pj4gDQo+Pj4+IChOb3RlIGRvIGhhdmUgdGhhdCBm b3IgaW5mb3JtYXRpb24gaW4gL2V0Yy9leHBvcnRzLS13ZSBoYXZlIGV4cG9ydGZzLg0KPj4+PiBJ cyB0aGVyZSBhIHJlYXNvbiB0aGF0IGRpZG4ndCB3b3JrIGZvciBmZWRmcy11dGlscz8pDQo+Pj4g DQo+Pj4gVG8gbWFrZSBjaGFuZ2VzIHRoYXQgY2FuIHN1cnZpdmUgYSBzZXJ2ZXIgcmVib290LA0K Pj4+IHlvdSBoYXZlIHRvIHVwZGF0ZSAvZXRjL2V4cG9ydHMuDQoNCg0KDQpZb3VyIHN1Z2dlc3Rp b24gdGhlbiBpcyB0byBidWlsZCBhIG5ldyBjb21tYW5kLWxpbmUgaW50ZXJmYWNlIHRvOg0KDQot IHRlbGwgbW91bnRkIG9mIGEgVjRST09UIG11bHRpcGF0aCBsaXN0Pw0KLSBoYXZlIHNhaWQgbGlz dCBzdXJ2aXZlIHJlYm9vdHMsIGUuZy4gc3RvcmVkIGluIGEgZmlsZT8NCg0KUGxlYXNlIHBvdmlk ZSBtb3JlIGRldGFpbCBvbiB5b3VyIHRob3VnaHRzLg0KDQpUaGFua3MNCg0K4oCUPiBBbmR5DQoN Cj4+PiANCj4+PiANCj4+PiANCj4+Pj4gLS1iLg0KPj4+PiANCj4+Pj4+PiANCj4+Pj4+PiBBbmQg YXMgeW91IGhhdmUgc3VnZ2VzdGVkIG1hbnkgdGltZXM6IHNlcGFyYXRlDQo+Pj4+Pj4gcG9saWN5 IGZyb20gbWVjaGFuaXNtLiAvZXRjL2V4cG9ydHMgaXMgdGhlDQo+Pj4+Pj4gbWVjaGFuaXNtLg0K Pj4+Pj4+IA0KPj4+Pj4+IC0tDQo+Pj4+Pj4gQ2h1Y2sgTGV2ZXINCj4+Pj4+IA0KPj4+Pj4gQnJ1 Y2UgLSBkbyB5b3UgaGF2ZSBhIHByZWZlcmVuY2UgYmV0d2VlbiAjMSBhbmQgIzIgb3IgIzMgKG9y IGFub3RoZXIgaWRlYT8pDQo+Pj4+PiANCj4+Pj4+IFRoYW5rcw0KPj4+Pj4gDQo+Pj4+PiDigJQ+ QW5keQ0KPj4+PiAtLQ0KPj4+PiBUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0 aGUgbGluZSAidW5zdWJzY3JpYmUgbGludXgtbmZzIiBpbg0KPj4+PiB0aGUgYm9keSBvZiBhIG1l c3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZw0KPj4+PiBNb3JlIG1ham9yZG9tbyBp bmZvIGF0ICBodHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1pbmZvLmh0bWwNCj4+PiAN Cj4+PiAtLQ0KPj4+IENodWNrIExldmVyDQo+Pj4gDQo+Pj4gDQo+Pj4gDQo+Pj4gLS0NCj4+PiBU byB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUg bGludXgtbmZzIiBpbg0KPj4+IHRoZSBib2R5IG9mIGEgbWVzc2FnZSB0byBtYWpvcmRvbW9Admdl ci5rZXJuZWwub3JnDQo+Pj4gTW9yZSBtYWpvcmRvbW8gaW5mbyBhdCAgaHR0cDovL3ZnZXIua2Vy bmVsLm9yZy9tYWpvcmRvbW8taW5mby5odG1sDQo+PiAtLQ0KPj4gVG8gdW5zdWJzY3JpYmUgZnJv bSB0aGlzIGxpc3Q6IHNlbmQgdGhlIGxpbmUgInVuc3Vic2NyaWJlIGxpbnV4LW5mcyIgaW4NCj4+ IHRoZSBib2R5IG9mIGEgbWVzc2FnZSB0byBtYWpvcmRvbW9Admdlci5rZXJuZWwub3JnDQo+PiBN b3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1p bmZvLmh0bWwNCj4gDQo+IC0tDQo+IENodWNrIExldmVyDQo+IA0KPiANCj4gDQoNCg== ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Configuring fs_locations on Linux upstream server pseudo fs for session trunking 2016-05-26 14:44 ` Adamson, Andy @ 2016-05-26 15:22 ` Chuck Lever 2016-06-13 17:30 ` J. Bruce Fields 0 siblings, 1 reply; 15+ messages in thread From: Chuck Lever @ 2016-05-26 15:22 UTC (permalink / raw) To: Adamson, Andy Cc: William A. (Andy) Adamson, J. Bruce Fields, Linux NFS Mailing List > On May 26, 2016, at 10:44 AM, Adamson, Andy <William.Adamson@netapp.com> wrote: > >> >> On May 26, 2016, at 10:25 AM, Chuck Lever <chuck.lever@oracle.com> wrote: >> >> >>> On May 26, 2016, at 9:54 AM, Andy Adamson <androsadamson@gmail.com> wrote: >>> >>> On Wed, May 25, 2016 at 2:55 PM, Chuck Lever <chuck.lever@oracle.com> wrote: >>>> >>>>> On May 25, 2016, at 2:48 PM, bfields@fieldses.org wrote: >>>>> >>>>> On Wed, May 25, 2016 at 05:29:35PM +0000, Adamson, Andy wrote: >>>>>> Anna Schumaker who reviewed my client side session trunking patchset, wants a full featured version of both the client and the server session trunking pieces before accepting the session trunking feature upstream. To that end, I want to implement the server mountd V4ROOT processing of an fs_locations configuration to satisfy an fs_locations request on the pseudo fs. >>>>>> >>>>>> The forwarded message is from an email stream between Bruce, Chuck and I concerning the server pseufo fs fs_locations configuration that I’m now sharing with the list. >>>>>> >>>>>> Some background: >>>>>> >>>>>> The recent "NFSV4.1,2 session trunking” Version-5 patch set sent to the list notes (in patch 00/10): >>>>>> >>>>>> The pseudo-fs GETATTR(fs_locations) probe session trunking >>>>>> was tested against a Linux server with a pseudo-fs >>>>>> export stanza (e.g. a stanza with the fsid=0 or fsid=root >>>>>> export option) and a replicas= export option >>>>>> (replicas=<path1>@<server1>:<path2>@<server2>..) >>>>>> Note that this configuration is for testing only. A future >>>>>> patchset will add the replicas= configuration to the >>>>>> NFSEXP_V4ROOT nfsd and mountd processing. >>>>>> >>>>>> >>>>>> There are several ideas on how to accomplish mountd/V4ROOT fs_locations configuration in the forwarded message. See inline. >>>>>> >>>>>> >>>>>>> Begin forwarded message: >>>>>>> >>>>>>> From: Chuck Lever <chuck.lever@oracle.com> >>>>>>> Subject: Re: Configuring fs_locations on Linux upstream server >>>>>>> Date: May 6, 2016 at 4:31:00 PM EDT >>>>>>> To: "J. Bruce Fields" <bfields@fieldses.org> >>>>>>> Cc: "Adamson, Andy" <William.Adamson@netapp.com> >>>>>>> >>>>>>> >>>>>>>> On May 6, 2016, at 4:16 PM, J. Bruce Fields <bfields@fieldses.org> wrote: >>>>>>>> >>>>>>>> On Fri, May 06, 2016 at 02:20:12PM -0400, Chuck Lever wrote: >>>>>>>>> Seems like when a server does not return a list, that is >>>>>>>>> information the client can use: basically, there is no >>>>>>>>> ability to do any session trunking. It has to be set up >>>>>>>>> explicitly; is that a bad thing, operationally? >>>>>>>> >>>>>>>> I like the idea of it being opt in on the server. >>>>>>>> >>>>>>>> Suppose the server transparently starts advertising all available >>>>>>>> addresses for session trunking. It's not hard to imagine cases where >>>>>>>> that would go wrong. E.g., maybe the server has the odd wireless or >>>>>>>> 100Mb or other interface that happens to work but that's slow. Then >>>>>>>> somebody upgrades their server and performance goes down and it may take >>>>>>>> them a while to figure out why. Whereas if they'd had to opt in they'd >>>>>>>> probably have avoided advertising an inappropriate interface. Or at >>>>>>>> least they'd have a better chance of figuring out that turning on >>>>>>>> trunking was what caused the problem. >>>>>>>> >>>>>>>> I'd rather not force people to export "/" explicitly, though. It's fine >>>>>>>> for testing, but: >>>>>>>> >>>>>>>> - I don't think we give a way to do an explicit V4ROOT export, >>>>>>>> so they'd be exposing their entire root partition. We could >>>>>>>> fix that, but >>>>>>>> - the pseudofs just seems to me like something people shouldn't >>>>>>>> normally have to think about. It's a protocol implementation >>>>>>>> detail, I'd rather hide it. It'd be to easy to configure it a >>>>>>>> little wrong, I think. >>>>>>>> >>>>>>>> We can still do this by adding a replicas= option to the / export, but >>>>>>>> we can let rpc.mountd do that internally instead of making the admin add >>>>>>>> it to /etc/exports. >>>>>>>> >>>>>>>> But then you still need a way for the admin to tell rpc.mountd to cook >>>>>>>> up the replicas= option..... I'm not sure what that should look like. >>>>>> >>>>>> Idea 1: extra syntax in /etc/exports >>>>> >>>>> It's not really export-specific information. I wonder if it'd be better >>>>> to pass it on the rpc.nfsd commandline? >>>>> >>>>> rpc.nfsd --multipath-set="192.168.0.1,192.168.0.2" >>>>> >>>>> (and then that can be configured in /etc/sysconfig/nfs or whatever)? >>> >>> Is this (the rpc.nfsd command line and /etc/sysconfig/nfs entry) the >>> preferred way? >> >> I don't prefer it. >> >> See below: I think we want something that is more >> convenient to update automatically. > > Fine, but I’m having difficulty in understanding the design you are suggesting to fulfill the update automatically requirement. > See inline below. > >> >> >>> Is /etc/sysconfig/nfs read upon reboot? >> >> It's read by all the start-up scripts related to NFS. >> >> >>> -->Andy >>> >>> >>> >>>>> >>>>>>>> Maybe some extra syntax in /etc/exports, but what do they need to give >>>>>>>> us--just one list of IP addresses? Chuck, any ideas? >>>>>> >>>>>> Idea 2: xattr attached to “/" >>>>>> >>>>>>> >>>>>>> How about using the same approach used for junctions: >>>>>>> put the list in an xattr attached to / ? mountd can >>>>>>> extract that when the kernel asks for help satisfying >>>>>>> a GETATTR(fs_locations) on V4ROOT. >>>>> >>>>> I don't think that works. "/" isn't a good place to put configuration. >>>>> It could be read-only, among other things. >>>>> >>>>>> Idea 3: new /etc/ config file >>>>>>> >>>>>>> Or it could be put in a separate config file in /etc. >>>>>>> You might want to specify more than just the i/f list >>>>>>> here; for instance, the security policy for the >>>>>>> pseudofs, or a constant fsid UUID, among other things. >>>>>> >>>>>> >>>>>> API to update the i/f list. This is not about where to hold fs_locations config info, but rather how to insert the (changed) info into the running system. >>>>>> >>>>>>> >>>>>>> Also, I suggested to Andy earlier: >>>>>>> >>>>>>>> I find myself leaning towards mechanisms that are easy >>>>>>>> both for admins and for programs (ie, an API). Perhaps >>>>>>>> one day you might want to add a command that updates the >>>>>>>> i/f list from the scripts in /etc/sysconfig/network-scripts, >>>>>>>> for instance. >>>>>>>> As part of an ifup: >>>>>>>> >>>>>>>> nfspfs add <addr> >>>>>>>> >>>>>>>> and ifdown: >>>>>>>> >>>>>>>> nfspfs remove <addr> >>>>>>>> >>>>>>>> I wrote some Python code to manipulate entries in >>>>>>>> /etc/exports, now found in fedfs-utils. It's icky. >>>>>>> >>>>>>> I think we should move away from "edit this file >>>>>>> and save it, then restart rpc.xyzpdq". Build some >>>>>>> command line interfaces for this. >>>>> >>>>> I'm OK with that. >>>>> >>>>> (Note do have that for information in /etc/exports--we have exportfs. >>>>> Is there a reason that didn't work for fedfs-utils?) >>>> >>>> To make changes that can survive a server reboot, >>>> you have to update /etc/exports. > > > > Your suggestion then is to build a new command-line interface to: > > - tell mountd of a V4ROOT multipath list? > - have said list survive reboots, e.g. stored in a file? > > Please povide more detail on your thoughts. Persistence of multipath information doesn't seem as necessary as it is for FedFS junctions. I was just answering Bruce's question about why exportfs is not adequate for FedFS junctions. In fact, the multipath list itself will need attention after any change of the server's network configuration, including after a reboot where an i/f can be potentially added or removed. So the list is often not going to be persistent at all. However, the policy that determines how the multipath list is rebuilt should probably be stored in a configuration file. Eg, which i/f's to ignore (like lo); classes of i/f's to ignore (like IPv6 or RDMA); which i/f's should always be considered for the list if they are up; whether to advertise IP addresses or hostnames; and so on. So I agree, an xattr on / is right out, and /etc/exports is probably not a good long term solution either. But exportfs is a closer analog to how to manage the multipath list. If you can reuse exportfs that's OK too. > Thanks > > —> Andy > >>>> >>>> >>>> >>>>> --b. >>>>> >>>>>>> >>>>>>> And as you have suggested many times: separate >>>>>>> policy from mechanism. /etc/exports is the >>>>>>> mechanism. >>>>>>> >>>>>>> -- >>>>>>> Chuck Lever >>>>>> >>>>>> Bruce - do you have a preference between #1 and #2 or #3 (or another idea?) >>>>>> >>>>>> Thanks >>>>>> >>>>>> —>Andy >>>>> -- >>>>> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in >>>>> the body of a message to majordomo@vger.kernel.org >>>>> More majordomo info at http://vger.kernel.org/majordomo-info.html >>>> >>>> -- >>>> Chuck Lever >>>> >>>> >>>> >>>> -- >>>> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in >>>> the body of a message to majordomo@vger.kernel.org >>>> More majordomo info at http://vger.kernel.org/majordomo-info.html >>> -- >>> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in >>> the body of a message to majordomo@vger.kernel.org >>> More majordomo info at http://vger.kernel.org/majordomo-info.html >> >> -- >> Chuck Lever -- Chuck Lever ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Configuring fs_locations on Linux upstream server pseudo fs for session trunking 2016-05-26 15:22 ` Chuck Lever @ 2016-06-13 17:30 ` J. Bruce Fields 0 siblings, 0 replies; 15+ messages in thread From: J. Bruce Fields @ 2016-06-13 17:30 UTC (permalink / raw) To: Chuck Lever Cc: Adamson, Andy, William A. (Andy) Adamson, Linux NFS Mailing List On Thu, May 26, 2016 at 11:22:50AM -0400, Chuck Lever wrote: > > > On May 26, 2016, at 10:44 AM, Adamson, Andy <William.Adamson@netapp.com> wrote: > > > >> > >> On May 26, 2016, at 10:25 AM, Chuck Lever <chuck.lever@oracle.com> wrote: > >> > >> > >>> On May 26, 2016, at 9:54 AM, Andy Adamson <androsadamson@gmail.com> wrote: > >>> > >>> On Wed, May 25, 2016 at 2:55 PM, Chuck Lever <chuck.lever@oracle.com> wrote: > >>>> > >>>>> On May 25, 2016, at 2:48 PM, bfields@fieldses.org wrote: > >>>>> > >>>>> On Wed, May 25, 2016 at 05:29:35PM +0000, Adamson, Andy wrote: > >>>>>> Anna Schumaker who reviewed my client side session trunking patchset, wants a full featured version of both the client and the server session trunking pieces before accepting the session trunking feature upstream. To that end, I want to implement the server mountd V4ROOT processing of an fs_locations configuration to satisfy an fs_locations request on the pseudo fs. > >>>>>> > >>>>>> The forwarded message is from an email stream between Bruce, Chuck and I concerning the server pseufo fs fs_locations configuration that I’m now sharing with the list. > >>>>>> > >>>>>> Some background: > >>>>>> > >>>>>> The recent "NFSV4.1,2 session trunking” Version-5 patch set sent to the list notes (in patch 00/10): > >>>>>> > >>>>>> The pseudo-fs GETATTR(fs_locations) probe session trunking > >>>>>> was tested against a Linux server with a pseudo-fs > >>>>>> export stanza (e.g. a stanza with the fsid=0 or fsid=root > >>>>>> export option) and a replicas= export option > >>>>>> (replicas=<path1>@<server1>:<path2>@<server2>..) > >>>>>> Note that this configuration is for testing only. A future > >>>>>> patchset will add the replicas= configuration to the > >>>>>> NFSEXP_V4ROOT nfsd and mountd processing. > >>>>>> > >>>>>> > >>>>>> There are several ideas on how to accomplish mountd/V4ROOT fs_locations configuration in the forwarded message. See inline. > >>>>>> > >>>>>> > >>>>>>> Begin forwarded message: > >>>>>>> > >>>>>>> From: Chuck Lever <chuck.lever@oracle.com> > >>>>>>> Subject: Re: Configuring fs_locations on Linux upstream server > >>>>>>> Date: May 6, 2016 at 4:31:00 PM EDT > >>>>>>> To: "J. Bruce Fields" <bfields@fieldses.org> > >>>>>>> Cc: "Adamson, Andy" <William.Adamson@netapp.com> > >>>>>>> > >>>>>>> > >>>>>>>> On May 6, 2016, at 4:16 PM, J. Bruce Fields <bfields@fieldses.org> wrote: > >>>>>>>> > >>>>>>>> On Fri, May 06, 2016 at 02:20:12PM -0400, Chuck Lever wrote: > >>>>>>>>> Seems like when a server does not return a list, that is > >>>>>>>>> information the client can use: basically, there is no > >>>>>>>>> ability to do any session trunking. It has to be set up > >>>>>>>>> explicitly; is that a bad thing, operationally? > >>>>>>>> > >>>>>>>> I like the idea of it being opt in on the server. > >>>>>>>> > >>>>>>>> Suppose the server transparently starts advertising all available > >>>>>>>> addresses for session trunking. It's not hard to imagine cases where > >>>>>>>> that would go wrong. E.g., maybe the server has the odd wireless or > >>>>>>>> 100Mb or other interface that happens to work but that's slow. Then > >>>>>>>> somebody upgrades their server and performance goes down and it may take > >>>>>>>> them a while to figure out why. Whereas if they'd had to opt in they'd > >>>>>>>> probably have avoided advertising an inappropriate interface. Or at > >>>>>>>> least they'd have a better chance of figuring out that turning on > >>>>>>>> trunking was what caused the problem. > >>>>>>>> > >>>>>>>> I'd rather not force people to export "/" explicitly, though. It's fine > >>>>>>>> for testing, but: > >>>>>>>> > >>>>>>>> - I don't think we give a way to do an explicit V4ROOT export, > >>>>>>>> so they'd be exposing their entire root partition. We could > >>>>>>>> fix that, but > >>>>>>>> - the pseudofs just seems to me like something people shouldn't > >>>>>>>> normally have to think about. It's a protocol implementation > >>>>>>>> detail, I'd rather hide it. It'd be to easy to configure it a > >>>>>>>> little wrong, I think. > >>>>>>>> > >>>>>>>> We can still do this by adding a replicas= option to the / export, but > >>>>>>>> we can let rpc.mountd do that internally instead of making the admin add > >>>>>>>> it to /etc/exports. > >>>>>>>> > >>>>>>>> But then you still need a way for the admin to tell rpc.mountd to cook > >>>>>>>> up the replicas= option..... I'm not sure what that should look like. > >>>>>> > >>>>>> Idea 1: extra syntax in /etc/exports > >>>>> > >>>>> It's not really export-specific information. I wonder if it'd be better > >>>>> to pass it on the rpc.nfsd commandline? > >>>>> > >>>>> rpc.nfsd --multipath-set="192.168.0.1,192.168.0.2" > >>>>> > >>>>> (and then that can be configured in /etc/sysconfig/nfs or whatever)? > >>> > >>> Is this (the rpc.nfsd command line and /etc/sysconfig/nfs entry) the > >>> preferred way? > >> > >> I don't prefer it. > >> > >> See below: I think we want something that is more > >> convenient to update automatically. > > > > Fine, but I’m having difficulty in understanding the design you are suggesting to fulfill the update automatically requirement. > > See inline below. > > > >> > >> > >>> Is /etc/sysconfig/nfs read upon reboot? > >> > >> It's read by all the start-up scripts related to NFS. > >> > >> > >>> -->Andy > >>> > >>> > >>> > >>>>> > >>>>>>>> Maybe some extra syntax in /etc/exports, but what do they need to give > >>>>>>>> us--just one list of IP addresses? Chuck, any ideas? > >>>>>> > >>>>>> Idea 2: xattr attached to “/" > >>>>>> > >>>>>>> > >>>>>>> How about using the same approach used for junctions: > >>>>>>> put the list in an xattr attached to / ? mountd can > >>>>>>> extract that when the kernel asks for help satisfying > >>>>>>> a GETATTR(fs_locations) on V4ROOT. > >>>>> > >>>>> I don't think that works. "/" isn't a good place to put configuration. > >>>>> It could be read-only, among other things. > >>>>> > >>>>>> Idea 3: new /etc/ config file > >>>>>>> > >>>>>>> Or it could be put in a separate config file in /etc. > >>>>>>> You might want to specify more than just the i/f list > >>>>>>> here; for instance, the security policy for the > >>>>>>> pseudofs, or a constant fsid UUID, among other things. > >>>>>> > >>>>>> > >>>>>> API to update the i/f list. This is not about where to hold fs_locations config info, but rather how to insert the (changed) info into the running system. > >>>>>> > >>>>>>> > >>>>>>> Also, I suggested to Andy earlier: > >>>>>>> > >>>>>>>> I find myself leaning towards mechanisms that are easy > >>>>>>>> both for admins and for programs (ie, an API). Perhaps > >>>>>>>> one day you might want to add a command that updates the > >>>>>>>> i/f list from the scripts in /etc/sysconfig/network-scripts, > >>>>>>>> for instance. > > >>>>>>>> As part of an ifup: > >>>>>>>> > >>>>>>>> nfspfs add <addr> > >>>>>>>> > >>>>>>>> and ifdown: > >>>>>>>> > >>>>>>>> nfspfs remove <addr> > >>>>>>>> > >>>>>>>> I wrote some Python code to manipulate entries in > >>>>>>>> /etc/exports, now found in fedfs-utils. It's icky. > >>>>>>> > >>>>>>> I think we should move away from "edit this file > >>>>>>> and save it, then restart rpc.xyzpdq". Build some > >>>>>>> command line interfaces for this. > >>>>> > >>>>> I'm OK with that. > >>>>> > >>>>> (Note do have that for information in /etc/exports--we have exportfs. > >>>>> Is there a reason that didn't work for fedfs-utils?) > >>>> > >>>> To make changes that can survive a server reboot, > >>>> you have to update /etc/exports. > > > > > > > > Your suggestion then is to build a new command-line interface to: > > > > - tell mountd of a V4ROOT multipath list? > > - have said list survive reboots, e.g. stored in a file? > > > > Please povide more detail on your thoughts. > > Persistence of multipath information doesn't > seem as necessary as it is for FedFS junctions. > I was just answering Bruce's question about why > exportfs is not adequate for FedFS junctions. > > In fact, the multipath list itself will need > attention after any change of the server's > network configuration, including after a reboot > where an i/f can be potentially added or removed. > So the list is often not going to be persistent > at all. > > However, the policy that determines how the > multipath list is rebuilt should probably be > stored in a configuration file. Eg, which i/f's > to ignore (like lo); classes of i/f's to > ignore (like IPv6 or RDMA); which i/f's should > always be considered for the list if they are > up; whether to advertise IP addresses or > hostnames; and so on. > > So I agree, an xattr on / is right out, and > /etc/exports is probably not a good long term > solution either. But exportfs is a closer > analog to how to manage the multipath list. > > If you can reuse exportfs that's OK too. OK, so you could check whether we could piggyback on the same mechanism exportfs and mountd use to communicate (which is basically just reading, writing, and locking /var/lib/nfs/etab, if I remember right). And then add some syntax to the exportfs commandline. As long as you're doing that, I don't see why you couldn't also allow people to specify the same information in /etc/exports, if they'd like. But, whatever, maybe that's not necessary. A new rpc.mountd commandline option might work too? Whatever we choose doesn't have to do everything we want--as long as we can build whatever you want on top of it later. So, ideally we choose something simple that we can build on later, just to unblock Andy's work. --b. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Configuring fs_locations on Linux upstream server pseudo fs for session trunking 2016-05-26 13:54 ` Andy Adamson 2016-05-26 14:25 ` Chuck Lever @ 2016-05-26 15:22 ` J. Bruce Fields 2016-05-26 18:31 ` Configuring flex file DS on Linux upstream Tom Haynes 2016-05-31 18:31 ` Configuring fs_locations on Linux upstream server pseudo fs for session trunking Steve Dickson 1 sibling, 2 replies; 15+ messages in thread From: J. Bruce Fields @ 2016-05-26 15:22 UTC (permalink / raw) To: Andy Adamson; +Cc: Chuck Lever, Adamson, Andy, Linux NFS Mailing List On Thu, May 26, 2016 at 09:54:50AM -0400, Andy Adamson wrote: > On Wed, May 25, 2016 at 2:55 PM, Chuck Lever <chuck.lever@oracle.com> wrote: > > > >> On May 25, 2016, at 2:48 PM, bfields@fieldses.org wrote: > >> > >> On Wed, May 25, 2016 at 05:29:35PM +0000, Adamson, Andy wrote: > >>> Anna Schumaker who reviewed my client side session trunking patchset, wants a full featured version of both the client and the server session trunking pieces before accepting the session trunking feature upstream. To that end, I want to implement the server mountd V4ROOT processing of an fs_locations configuration to satisfy an fs_locations request on the pseudo fs. > >>> > >>> The forwarded message is from an email stream between Bruce, Chuck and I concerning the server pseufo fs fs_locations configuration that I’m now sharing with the list. > >>> > >>> Some background: > >>> > >>> The recent "NFSV4.1,2 session trunking” Version-5 patch set sent to the list notes (in patch 00/10): > >>> > >>> The pseudo-fs GETATTR(fs_locations) probe session trunking > >>> was tested against a Linux server with a pseudo-fs > >>> export stanza (e.g. a stanza with the fsid=0 or fsid=root > >>> export option) and a replicas= export option > >>> (replicas=<path1>@<server1>:<path2>@<server2>..) > >>> Note that this configuration is for testing only. A future > >>> patchset will add the replicas= configuration to the > >>> NFSEXP_V4ROOT nfsd and mountd processing. > >>> > >>> > >>> There are several ideas on how to accomplish mountd/V4ROOT fs_locations configuration in the forwarded message. See inline. > >>> > >>> > >>>> Begin forwarded message: > >>>> > >>>> From: Chuck Lever <chuck.lever@oracle.com> > >>>> Subject: Re: Configuring fs_locations on Linux upstream server > >>>> Date: May 6, 2016 at 4:31:00 PM EDT > >>>> To: "J. Bruce Fields" <bfields@fieldses.org> > >>>> Cc: "Adamson, Andy" <William.Adamson@netapp.com> > >>>> > >>>> > >>>>> On May 6, 2016, at 4:16 PM, J. Bruce Fields <bfields@fieldses.org> wrote: > >>>>> > >>>>> On Fri, May 06, 2016 at 02:20:12PM -0400, Chuck Lever wrote: > >>>>>> Seems like when a server does not return a list, that is > >>>>>> information the client can use: basically, there is no > >>>>>> ability to do any session trunking. It has to be set up > >>>>>> explicitly; is that a bad thing, operationally? > >>>>> > >>>>> I like the idea of it being opt in on the server. > >>>>> > >>>>> Suppose the server transparently starts advertising all available > >>>>> addresses for session trunking. It's not hard to imagine cases where > >>>>> that would go wrong. E.g., maybe the server has the odd wireless or > >>>>> 100Mb or other interface that happens to work but that's slow. Then > >>>>> somebody upgrades their server and performance goes down and it may take > >>>>> them a while to figure out why. Whereas if they'd had to opt in they'd > >>>>> probably have avoided advertising an inappropriate interface. Or at > >>>>> least they'd have a better chance of figuring out that turning on > >>>>> trunking was what caused the problem. > >>>>> > >>>>> I'd rather not force people to export "/" explicitly, though. It's fine > >>>>> for testing, but: > >>>>> > >>>>> - I don't think we give a way to do an explicit V4ROOT export, > >>>>> so they'd be exposing their entire root partition. We could > >>>>> fix that, but > >>>>> - the pseudofs just seems to me like something people shouldn't > >>>>> normally have to think about. It's a protocol implementation > >>>>> detail, I'd rather hide it. It'd be to easy to configure it a > >>>>> little wrong, I think. > >>>>> > >>>>> We can still do this by adding a replicas= option to the / export, but > >>>>> we can let rpc.mountd do that internally instead of making the admin add > >>>>> it to /etc/exports. > >>>>> > >>>>> But then you still need a way for the admin to tell rpc.mountd to cook > >>>>> up the replicas= option..... I'm not sure what that should look like. > >>> > >>> Idea 1: extra syntax in /etc/exports > >> > >> It's not really export-specific information. I wonder if it'd be better > >> to pass it on the rpc.nfsd commandline? > >> > >> rpc.nfsd --multipath-set="192.168.0.1,192.168.0.2" > >> > >> (and then that can be configured in /etc/sysconfig/nfs or whatever)? > > Is this (the rpc.nfsd command line and /etc/sysconfig/nfs entry) the > preferred way? > Is /etc/sysconfig/nfs read upon reboot? Yes. (Well, the details are distribution-dependent, I think it's up to the /usr/lib/systemd/scripts/nfs-utils_env.sh script referenced in nfs-utils/systemd/nfs-config.service.) The annoying thing about putting it on the rpc.nfsd commandline is that it's mountd, not nfsd, that manages the NFSv4 pseudofs, and would be responsible for cooking up the fs_locations info. Let me think about it a little more.... --b. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Configuring flex file DS on Linux upstream 2016-05-26 15:22 ` J. Bruce Fields @ 2016-05-26 18:31 ` Tom Haynes 2016-05-26 18:41 ` J. Bruce Fields 2016-05-31 18:31 ` Configuring fs_locations on Linux upstream server pseudo fs for session trunking Steve Dickson 1 sibling, 1 reply; 15+ messages in thread From: Tom Haynes @ 2016-05-26 18:31 UTC (permalink / raw) To: J. Bruce Fields Cc: Andy Adamson, Chuck Lever, Adamson, Andy, Linux NFS Mailing List fwiw, I'm looking at being able to specify a remote DS for the next version of the flex file server. Is it worth considering that in the discussion being done in Andy's thread about "Configuring fs_locations on Linux upstream server pseudo fs for session trunking"? For example: /mds *(rw,pnfs,ff_ds=192.168.2.101.2049:/ds,insecure,no_root_squash,no_all_squash) And in the far future, I'd want it to be a multipath list. I don't see this as something that changes often and the exports seem like the most natural fit. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Configuring flex file DS on Linux upstream 2016-05-26 18:31 ` Configuring flex file DS on Linux upstream Tom Haynes @ 2016-05-26 18:41 ` J. Bruce Fields 2016-05-26 19:33 ` Adamson, Andy 2016-05-26 20:51 ` Tom Haynes 0 siblings, 2 replies; 15+ messages in thread From: J. Bruce Fields @ 2016-05-26 18:41 UTC (permalink / raw) To: Tom Haynes Cc: Andy Adamson, Chuck Lever, Adamson, Andy, Linux NFS Mailing List On Thu, May 26, 2016 at 11:31:34AM -0700, Tom Haynes wrote: > fwiw, I'm looking at being able to specify a remote DS for the next version > of the flex file server. Is it worth considering that in the discussion > being done in Andy's thread about "Configuring fs_locations on Linux upstream server pseudo fs for session trunking"? > > For example: > > /mds *(rw,pnfs,ff_ds=192.168.2.101.2049:/ds,insecure,no_root_squash,no_all_squash) > > And in the far future, I'd want it to be a multipath list. > > I don't see this as something that changes often and the exports > seem like the most natural fit. I don't understand the ":/ds" part. You just look up stuff by filehandle on the data server, so we shouldn't have to know anything about paths there, should we? Or is the problem that it might need to mount something first in the v3 case? Otherwise, I guess exports makes sense, as long as this really is per-export information. The thing that's a little different about the multipath information is that that's really a global server property, not something that can vary from one filesystem to another. --b. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Configuring flex file DS on Linux upstream 2016-05-26 18:41 ` J. Bruce Fields @ 2016-05-26 19:33 ` Adamson, Andy 2016-05-26 20:51 ` Tom Haynes 1 sibling, 0 replies; 15+ messages in thread From: Adamson, Andy @ 2016-05-26 19:33 UTC (permalink / raw) To: J. Bruce Fields Cc: Tom Haynes, Andy Adamson, Chuck Lever, Adamson, Andy, Linux NFS Mailing List DQo+IE9uIE1heSAyNiwgMjAxNiwgYXQgMjo0MSBQTSwgSi4gQnJ1Y2UgRmllbGRzIDxiZmllbGRz QGZpZWxkc2VzLm9yZz4gd3JvdGU6DQo+IA0KPiBPbiBUaHUsIE1heSAyNiwgMjAxNiBhdCAxMToz MTozNEFNIC0wNzAwLCBUb20gSGF5bmVzIHdyb3RlOg0KPj4gZndpdywgSSdtIGxvb2tpbmcgYXQg YmVpbmcgYWJsZSB0byBzcGVjaWZ5IGEgcmVtb3RlIERTIGZvciB0aGUgbmV4dCB2ZXJzaW9uDQo+ PiBvZiB0aGUgZmxleCBmaWxlIHNlcnZlci4gSXMgaXQgd29ydGggY29uc2lkZXJpbmcgdGhhdCBp biB0aGUgZGlzY3Vzc2lvbg0KPj4gYmVpbmcgZG9uZSBpbiBBbmR5J3MgdGhyZWFkIGFib3V0ICJD b25maWd1cmluZyBmc19sb2NhdGlvbnMgb24gTGludXggdXBzdHJlYW0gc2VydmVyIHBzZXVkbyBm cyBmb3Igc2Vzc2lvbiB0cnVua2luZyI/DQo+PiANCj4+IEZvciBleGFtcGxlOg0KPj4gDQo+PiAv bWRzICoocncscG5mcyxmZl9kcz0xOTIuMTY4LjIuMTAxLjIwNDk6L2RzLGluc2VjdXJlLG5vX3Jv b3Rfc3F1YXNoLG5vX2FsbF9zcXVhc2gpDQo+PiANCj4+IEFuZCBpbiB0aGUgZmFyIGZ1dHVyZSwg SSdkIHdhbnQgaXQgdG8gYmUgYSBtdWx0aXBhdGggbGlzdC4NCj4+IA0KPj4gSSBkb24ndCBzZWUg dGhpcyBhcyBzb21ldGhpbmcgdGhhdCBjaGFuZ2VzIG9mdGVuIGFuZCB0aGUgZXhwb3J0cw0KPj4g c2VlbSBsaWtlIHRoZSBtb3N0IG5hdHVyYWwgZml0Lg0KPiANCj4gSSBkb24ndCB1bmRlcnN0YW5k IHRoZSAiOi9kcyIgcGFydC4gIFlvdSBqdXN0IGxvb2sgdXAgc3R1ZmYgYnkNCj4gZmlsZWhhbmRs ZSBvbiB0aGUgZGF0YSBzZXJ2ZXIsIHNvIHdlIHNob3VsZG4ndCBoYXZlIHRvIGtub3cgYW55dGhp bmcNCj4gYWJvdXQgcGF0aHMgdGhlcmUsIHNob3VsZCB3ZT8gIE9yIGlzIHRoZSBwcm9ibGVtIHRo YXQgaXQgbWlnaHQgbmVlZCB0bw0KPiBtb3VudCBzb21ldGhpbmcgZmlyc3QgaW4gdGhlIHYzIGNh c2U/DQo+IA0KPiBPdGhlcndpc2UsIEkgZ3Vlc3MgZXhwb3J0cyBtYWtlcyBzZW5zZSwgYXMgbG9u ZyBhcyB0aGlzIHJlYWxseSBpcw0KPiBwZXItZXhwb3J0IGluZm9ybWF0aW9uLg0KDQoNCklJVUMg dGhlIGZmX2RzPSBsaW5lIHRlbGxzIHRoZSBtZHMgb2YgZGF0YSBzZXJ2ZXJzIGl0IGlzIG1hbmFn aW5nLCBhbmQgaG93IHRvIG1vdW50IHRoZW0uIFNvIHRoaXMgaXMgbm90IG1kcyBleHBvcnQgaW5m b3JtYXRpb24gLSBtZHMgaXMgbm90IGV4cG9ydGluZyB0aGUgZmZfZHM9ICwgcmF0aGVyIG1kcyBt b3VudCBpbmZvcm1hdGlvbi4NCg0K4oCUPkFuZHkNCg0KPiANCj4gDQo+IFRoZSB0aGluZyB0aGF0 J3MgYSBsaXR0bGUgZGlmZmVyZW50IGFib3V0IHRoZSBtdWx0aXBhdGggaW5mb3JtYXRpb24gaXMN Cj4gdGhhdCB0aGF0J3MgcmVhbGx5IGEgZ2xvYmFsIHNlcnZlciBwcm9wZXJ0eSwgbm90IHNvbWV0 aGluZyB0aGF0IGNhbiB2YXJ5DQo+IGZyb20gb25lIGZpbGVzeXN0ZW0gdG8gYW5vdGhlci4NCj4g DQo+IC0tYi4NCg0K ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Configuring flex file DS on Linux upstream 2016-05-26 18:41 ` J. Bruce Fields 2016-05-26 19:33 ` Adamson, Andy @ 2016-05-26 20:51 ` Tom Haynes 1 sibling, 0 replies; 15+ messages in thread From: Tom Haynes @ 2016-05-26 20:51 UTC (permalink / raw) To: J. Bruce Fields Cc: Tom Haynes, Andy Adamson, Chuck Lever, Adamson, Andy, Linux NFS Mailing List On Thu, May 26, 2016 at 02:41:18PM -0400, J. Bruce Fields wrote: > On Thu, May 26, 2016 at 11:31:34AM -0700, Tom Haynes wrote: > > fwiw, I'm looking at being able to specify a remote DS for the next version > > of the flex file server. Is it worth considering that in the discussion > > being done in Andy's thread about "Configuring fs_locations on Linux upstream server pseudo fs for session trunking"? > > > > For example: > > > > /mds *(rw,pnfs,ff_ds=192.168.2.101.2049:/ds,insecure,no_root_squash,no_all_squash) > > > > And in the far future, I'd want it to be a multipath list. > > > > I don't see this as something that changes often and the exports > > seem like the most natural fit. > > I don't understand the ":/ds" part. You just look up stuff by > filehandle on the data server, so we shouldn't have to know anything > about paths there, should we? Or is the problem that it might need to > mount something first in the v3 case? You need at least the root fh in order to create/remove files: struct CREATE3args { diropargs3 where; createhow3 how; }; struct REMOVE3args { diropargs3 object; }; > > Otherwise, I guess exports makes sense, as long as this really is > per-export information. > > The thing that's a little different about the multipath information is > that that's really a global server property, not something that can vary > from one filesystem to another. Thanks for the explanation... ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Configuring fs_locations on Linux upstream server pseudo fs for session trunking 2016-05-26 15:22 ` J. Bruce Fields 2016-05-26 18:31 ` Configuring flex file DS on Linux upstream Tom Haynes @ 2016-05-31 18:31 ` Steve Dickson 1 sibling, 0 replies; 15+ messages in thread From: Steve Dickson @ 2016-05-31 18:31 UTC (permalink / raw) To: J. Bruce Fields, Andy Adamson Cc: Chuck Lever, Adamson, Andy, Linux NFS Mailing List On 05/26/2016 11:22 AM, J. Bruce Fields wrote: >>>>> Idea 1: extra syntax in /etc/exports >>>> > >> >>>> > >> It's not really export-specific information. I wonder if it'd be better >>>> > >> to pass it on the rpc.nfsd commandline? >>>> > >> >>>> > >> rpc.nfsd --multipath-set="192.168.0.1,192.168.0.2" >>>> > >> >>>> > >> (and then that can be configured in /etc/sysconfig/nfs or whatever)? >> > >> > Is this (the rpc.nfsd command line and /etc/sysconfig/nfs entry) the >> > preferred way? >> > Is /etc/sysconfig/nfs read upon reboot? Again, I think this is just globing new stuff on old stuff... I'm just thinking having new commands to manage new technology better direction. > Yes. (Well, the details are distribution-dependent, I think it's up to > the /usr/lib/systemd/scripts/nfs-utils_env.sh script referenced in > nfs-utils/systemd/nfs-config.service.) These new command could have their very own system start up scripts > > The annoying thing about putting it on the rpc.nfsd commandline is that > it's mountd, not nfsd, that manages the NFSv4 pseudofs, and would be > responsible for cooking up the fs_locations info. I agree with this... structurally this just seems wrong. steved. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Configuring fs_locations on Linux upstream server pseudo fs for session trunking 2016-05-25 17:29 ` Configuring fs_locations on Linux upstream server pseudo fs for session trunking Adamson, Andy 2016-05-25 18:48 ` bfields @ 2016-05-31 18:23 ` Steve Dickson 1 sibling, 0 replies; 15+ messages in thread From: Steve Dickson @ 2016-05-31 18:23 UTC (permalink / raw) To: Adamson, Andy, bfields; +Cc: chuck.lever, linux-nfs Hello, Sorry for coming the party late... On 05/25/2016 01:29 PM, Adamson, Andy wrote: > Anna Schumaker who reviewed my client side session trunking patchset, wants a full featured version of both the client and the server session trunking pieces before accepting the session trunking feature upstream. To that end, I want to implement the server mountd V4ROOT processing of an fs_locations configuration to satisfy an fs_locations request on the pseudo fs. > > The forwarded message is from an email stream between Bruce, Chuck and I concerning the server pseufo fs fs_locations configuration that I’m now sharing with the list. > > Some background: > > The recent "NFSV4.1,2 session trunking” Version-5 patch set sent to the list notes (in patch 00/10): > > The pseudo-fs GETATTR(fs_locations) probe session trunking > was tested against a Linux server with a pseudo-fs > export stanza (e.g. a stanza with the fsid=0 or fsid=root > export option) and a replicas= export option > (replicas=<path1>@<server1>:<path2>@<server2>..) > Note that this configuration is for testing only. A future > patchset will add the replicas= configuration to the > NFSEXP_V4ROOT nfsd and mountd processing. > > > There are several ideas on how to accomplish mountd/V4ROOT fs_locations configuration in the forwarded message. See inline. > > >> Begin forwarded message: >> >> From: Chuck Lever <chuck.lever@oracle.com> >> Subject: Re: Configuring fs_locations on Linux upstream server >> Date: May 6, 2016 at 4:31:00 PM EDT >> To: "J. Bruce Fields" <bfields@fieldses.org> >> Cc: "Adamson, Andy" <William.Adamson@netapp.com> >> >> >>> On May 6, 2016, at 4:16 PM, J. Bruce Fields <bfields@fieldses.org> wrote: >>> >>> On Fri, May 06, 2016 at 02:20:12PM -0400, Chuck Lever wrote: >>>> Seems like when a server does not return a list, that is >>>> information the client can use: basically, there is no >>>> ability to do any session trunking. It has to be set up >>>> explicitly; is that a bad thing, operationally? >>> >>> I like the idea of it being opt in on the server. >>> >>> Suppose the server transparently starts advertising all available >>> addresses for session trunking. It's not hard to imagine cases where >>> that would go wrong. E.g., maybe the server has the odd wireless or >>> 100Mb or other interface that happens to work but that's slow. Then >>> somebody upgrades their server and performance goes down and it may take >>> them a while to figure out why. Whereas if they'd had to opt in they'd >>> probably have avoided advertising an inappropriate interface. Or at >>> least they'd have a better chance of figuring out that turning on >>> trunking was what caused the problem. >>> >>> I'd rather not force people to export "/" explicitly, though. It's fine >>> for testing, but: >>> >>> - I don't think we give a way to do an explicit V4ROOT export, >>> so they'd be exposing their entire root partition. We could >>> fix that, but >>> - the pseudofs just seems to me like something people shouldn't >>> normally have to think about. It's a protocol implementation >>> detail, I'd rather hide it. It'd be to easy to configure it a >>> little wrong, I think. >>> >>> We can still do this by adding a replicas= option to the / export, but >>> we can let rpc.mountd do that internally instead of making the admin add >>> it to /etc/exports. >>> >>> But then you still need a way for the admin to tell rpc.mountd to cook >>> up the replicas= option..... I'm not sure what that should look like. > > Idea 1: extra syntax in /etc/exports As someone said during this thread we really should be moving away from edit/write/rerun configuration... When you are talking about 1000s of entries it becomes a bit painful. > > >>> Maybe some extra syntax in /etc/exports, but what do they need to give >>> us--just one list of IP addresses? Chuck, any ideas? > > Idea 2: xattr attached to “/" I guess this is not possible... so its out. > >> >> How about using the same approach used for junctions: >> put the list in an xattr attached to / ? mountd can >> extract that when the kernel asks for help satisfying >> a GETATTR(fs_locations) on V4ROOT. > > > Idea 3: new /etc/ config file >> >> Or it could be put in a separate config file in /etc. >> You might want to specify more than just the i/f list >> here; for instance, the security policy for the >> pseudofs, or a constant fsid UUID, among other things. Add new configuration files is become very unpopular in a particular distro I know of... ;-) and once again it comes down managing flat files... > > > API to update the i/f list. This is not about where to hold fs_locations config info, but rather how to insert the (changed) info into the running system. > >> >> Also, I suggested to Andy earlier: >> >>> I find myself leaning towards mechanisms that are easy >>> both for admins and for programs (ie, an API). Perhaps >>> one day you might want to add a command that updates the >>> i/f list from the scripts in /etc/sysconfig/network-scripts, >>> for instance. >>> >>> As part of an ifup: >>> >>> nfspfs add <addr> >>> >>> and ifdown: >>> >>> nfspfs remove <addr> What happens to this idea? This seems like the most straightforward... I'm guess I'm leaning for new commands to new stuff instead of globing on new stuff on old stuff... if that makes any sense. ;-) Question, these list of ip address are they dynamic? Meaning can the change on the fly or they are only set on startup and restarts? >>> >>> I wrote some Python code to manipulate entries in >>> /etc/exports, now found in fedfs-utils. It's icky. I never like editing files that admins also edit. It just seems like not a good thing to do. >> >> >> I think we should move away from "edit this file >> and save it, then restart rpc.xyzpdq". Build some >> command line interfaces for this. This what I was thinking about above... >> >> And as you have suggested many times: separate >> policy from mechanism. /etc/exports is the >> mechanism. Hmm.. I see this as adding more complexity to something that is already complex... my two cents, steved. >> >> -- >> Chuck Lever > > Bruce - do you have a preference between #1 and #2 or #3 (or another idea?) > > Thanks > > —>AndyN�����r��y���b�X��ǧv�^�){.n�+����{���"��^n�r���z�\x1a��h����&��\x1e�G���h�\x03(�階�ݢj"��\x1a�^[m�����z�ޖ���f���h���~�mml== > ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2016-06-13 17:30 UTC | newest] Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <04273F60-806B-4E12-B097-388C346F2DED@oracle.com> 2016-05-25 17:29 ` Configuring fs_locations on Linux upstream server pseudo fs for session trunking Adamson, Andy 2016-05-25 18:48 ` bfields 2016-05-25 18:55 ` Chuck Lever 2016-05-26 13:54 ` Andy Adamson 2016-05-26 14:25 ` Chuck Lever 2016-05-26 14:44 ` Adamson, Andy 2016-05-26 15:22 ` Chuck Lever 2016-06-13 17:30 ` J. Bruce Fields 2016-05-26 15:22 ` J. Bruce Fields 2016-05-26 18:31 ` Configuring flex file DS on Linux upstream Tom Haynes 2016-05-26 18:41 ` J. Bruce Fields 2016-05-26 19:33 ` Adamson, Andy 2016-05-26 20:51 ` Tom Haynes 2016-05-31 18:31 ` Configuring fs_locations on Linux upstream server pseudo fs for session trunking Steve Dickson 2016-05-31 18:23 ` Steve Dickson
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.