Details
-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
None
-
3
-
3
-
8563
Description
Notes from Andreas:
"33.1. User/Group Cache Upcall" and "33.2.
l_getgroups Utility", with the caveat that this text was only partially updated for Lustre 2.x. The "l_getgroups" upcall was renamed "l_getidentity", and the /proc file is changed also, some (fragmented) updates to the text (... is typewriter font, [] are changes):
33.1. User/Group Cache Upcall
[This section describes the supplementary user and group upcall, which allows the
MDS to retrieve and verify the supplementary groups that a particular user is
assigned. This avoids the need to pass all of the supplementary groups from the
client to the MDS on every RPC.]
33.1.1 Name
The MDS will use the utility given by [{{lctl get_param mdt.$MDT.identity_upcall}}]
to look up the supplied UID in order to retrieve the user's supplementary group
membership.
33.1.2 Description
The [identity] upcall file ...
... This utility should [fill in the {{identity_downcall_data}}] data structure ...
For a sample upcall program, see [{{lustre/utils/l_getidentity.c}}] in ...
33.1.2.1
... and it fails, [at most one] supplementary group will be added as supplied
by the client.
Use tunefs.lustre --param=[mdt.identity_upcall=<upcall_program> to set the
upcall at format time.
[please just remove rmtacl and normtacl entirely from the description and text]
... [The {{/usr/sbin/l_getidentity}}] utility ...
Use [lctl set_param mdt.*.identity_expire=<seconds>] to set the cache time ...
Set the wait time via [lctl set_param
mdt.*.identity_acquire_expire=<seconds>]
to change the length of time that the kernel will wait for the upcall to finish.
Note that the client process will be blocked during this time. Cached entries
are flushed via [lctl set_param mdt.$MDT.identity_flush=0].
33.1.4 Data Structures
struct perm_downcall_data
{ __u64 pdd_nid; __u32 pdd_perm; __u32 pdd_padding; };
struct identity_downcall_data {
__u32 idd_magic;
:
:
33.2 [l_getidenity] Utility
The [l_getidentity] utility handles the Lustre supplementary group upcall by default,
as described in the preceding section.
33.2.1 Synopsis
l_getidentity
{mdtname}{uid}
33.2.2 Description
The identity upcall file ... should complete the [{{identity_downcall_data}}] ...
... write it to the [{{/proc/fs/lustre/mdt/$MDT/identity_info}}] pseudo file.
[l_getidentity] is the reference ...
33.2.3 Files
/proc/fs/lustre/mdt/$MDT/identity_upcall
/proc/fs/lustre/mdt/$MDT/identity_info