[Gluster-devel] rpc: solving issues with users that belong too many (> 93) groups
Niels de Vos
ndevos at redhat.com
Wed Apr 23 08:48:58 UTC 2014
Hi all,
TL;DR:
I'd appreciate it if someone can review http://review.gluster.org/7501
There is a well known limit for the number of groups (16) that NFS, or
more specifically the RPC/AUTH_SYS header can transfer from client to
server. Originally, Gluster suffered the same restriction, but by
inventing it's own RPC/AUTH_GLUSTERFS_V2 header, this limit was
overcome.
Unfortunately, it seems that there is a protocol specification that
limits the size of the RPC/AUTH header to 400 bytes [1]. The maximum
number of groups that RPC/AUTH_GLUSTERFS_V2 can carry is limited to
93 (depending on the size of other attributes in the header) [2].
NFS servers have solved this by providing an option to resolve the
groups on the NFS-server (using nss, ldap, nis, ..) and disregarding the
groups from RPC/AUTH_SYS that the nfs-client sends.
* The Gluster/NFS server offers this as a volume option:
nfs.server-aux-gids
* The Linux kernel NFS server offers --manage-gids for rpc.mountd.
I'm proposing a similar option for the GlusterFS protocol. Internally
Gluster can use up to 65535 groups, the limitation is completely
contained in the RPC/AUTH_GLUSTERFS_V2 header. A new volume option
called 'server.manage-gids' has been implemented and tested. This option
causes the glusterfs-client to not send any auxiliary groups, and the
brick processes will resolve the groups of the user themselves. This
obviously, just like the NFS solution, requires that all storage servers
can resolve the groups of any users (ldap, nis, ...).
More reviews for http://review.gluster.org/7501 are more than welcome.
A little of background and previous related bug fix can be found in [2].
Many thanks,
Niels
[1] http://tools.ietf.org/html/rfc5531#section-8.2 see opaque_auth
[2] http://review.gluster.org/7202
More information about the Gluster-devel
mailing list