Re: [PATCH Version 4 2/2] NFSv4.1 Use the MDS nfs_server authflavor for pNFS data server connections

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2013-07-22 at 20:24 +0000, Adamson, Andy wrote:
> On Jul 22, 2013, at 2:50 PM, "Myklebust, Trond" <Trond.Myklebust@xxxxxxxxxx>
>  wrote:
> 
> > On Fri, 2013-07-19 at 17:06 -0400, andros@xxxxxxxxxx wrote:
> >> From: Andy Adamson <andros@xxxxxxxxxx>
> >> 
> >> pNFS data servers are not mounted in the normal sense as there is no associated
> >> nfs_server structure.
> >> Commit 4edaa308 "NFS: Use "krb5i" to establish NFSv4 state whenever possible"
> >> uses the nfs_client cl_rpcclient for all state management operations, and
> >> will use krb5i or auth_sys with no regard to the mount command authflavor
> >> choice.  For normal mounted servers, the nfs_server client authflavor is used
> >> for all non-state management operations
> >> 
> >> Data servers also need to use the same authflavor as the MDS mount for
> >> non-state management operations. Add a strut rpc_clnt to struct nfs_client for
> >> data server connections.
> > 
> > Is that sufficient? As far as I can tell, there is nothing that states
> > that the data servers must use the same security mechanism for all the
> > files?
> > In fact, section 13.12 specifically mentions that the data servers have
> > to support SECINFO_NO_NAME to allow clients to figure out what to use
> > for a given DS filehandle.
> 
> Good point.  We don't support per-file security, but we do support per fsid security and the DS should follow suit.
> 
> A non-pNFS NFSv4.1 mount can switch auth flavors on fsid boundaries - under the cover mount, create nfs_server with it's own rpc_clnt and a different security flavor. So what to do in the DS case where the DS exports more than one fsid, each with a different security flavor?
> 
> I discussed this with Dros who is also doing some work on the SECINFO code. As a first pass, it would make sense to use the security flavor that the MDS server->client uses for DS access, and replace the single data server rpc_clnt with an array of rpc_clnts one for each flavor (sys, krb5, krb5i, krb5p)  that get allocated (for the DS-only case) when first needed and cached.
> 
> For the MDS + DS case this cache could also be used by the MDS nfs_server->clients.

You don't want to us those rpc_clients directly in the
nfs_server->client. Instead you want to clone them, so that they can be
shut down without affecting the functioning of the nfs_client.

That said, it would be great to be able to share the same auth cache
with all rpc_clients that that talk to the same NFS server and use the
same auth flavour.

-- 
Trond Myklebust
Linux NFS client maintainer

NetApp
Trond.Myklebust@xxxxxxxxxx
www.netapp.com
��.n��������+%������w��{.n�����{��w���jg��������ݢj����G�������j:+v���w�m������w�������h�����٥





[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux