[Gluster-devel] Question regarding to gluster and vfs

Shyam Ranganathan srangana at redhat.com
Thu Aug 17 11:46:21 UTC 2017


On 08/17/2017 07:36 AM, Amar Tumballi wrote:
> 
> 
> On Thu, Aug 17, 2017 at 1:21 PM, Raghavendra Talur <rtalur at redhat.com 
> <mailto:rtalur at redhat.com>> wrote:
> 
>     On Wed, Aug 16, 2017 at 5:52 PM, Ilan Schwarts <ilan84 at gmail.com
>     <mailto:ilan84 at gmail.com>> wrote:
>      > Hi,
>      > So this is a bit odd case.
>      > I have created 2 servers nodes (running CentOS 7.3)
>      > From Client machine (CentOS 7.2) I mount to one of the nodes
>     (nfs) using:
>      > [root at CentOS7286-64 mnt]#  mount -t nfs
>      > L137B-GlusterFS-Node1.L137B-root.com:/volume1 /mnt/glustervianfs/
>      >
>      > When i created (touch) a file over the NFS:
>      > From Client Machine:
>      > [revivo at CentOS7286-64 glustervianfs]$ touch nfs3file
>      > [revivo at CentOS7286-64 glustervianfs]$ id revivo
>      > uid=2021(revivo) gid=2020(maccabi) groups=2020(maccabi),10(wheel)
>      >
>      > On Server machine:
>      > I monitor the file operations at VFS kernel level.
>      > I receive 1 event of file create, and 2 events of set attribute
>     changes.
>      > What I see is that root creates the file (uid/gid of 0)
>      > And then root (also) use chown and chgrp to set security (attribute)
>      > of the new file.
>      >
>      > When i go to the glutser volume itself and ls -la,i do see the
>      > *correct* (2021 - revivo /2020 - revivo) uid/gid:
>      > [root at L137B-GlusterFS-Node1 volume1]# ls -lia
>      > total 24
>      > 11 drwxrwxrwx.  3 revivo maccabi 4096 Aug 10 12:13 .
>      >  2 drwxr-xr-x.  3 root   root    4096 Aug  9 14:32 ..
>      > 12 drw-------. 16 root   root    4096 Aug 10 12:13 .glusterfs
>      > 31 -rw-r--r--.  2 revivo maccabi    0 Aug 10 12:13 nfs3file
>      >
>      > Why on the VFS layer i get uid/gid - 0/0
> 
>     As you have pointed out above, the file is created with 0:0
>     owner:group but subsequent operations change owner and group using
>     chown and chgrp. This is because the glusterfsd(brick daemon) process
>     always runs as root. I don't know the exact reason why setfsuid and
>     setfsgid are not used although the code exist.
> 
>     Amar/Pranith/Raghavendra/Vijay,
> 
>     Do you know why HAVE_SET_FSID is undefined in line
>     https://github.com/gluster/glusterfs/blob/master/xlators/storage/posix/src/posix.c#L65
>     <https://github.com/gluster/glusterfs/blob/master/xlators/storage/posix/src/posix.c#L65>
> 
> 
> Its been ~10 years since its disabled in codebase, and I don't recollect 
> why completely right now.
> 
> By checking the patch [1] which got this change, I couldn't make out 
> much: Probably something to do with Solaris support IMO.
> 
> [1] - 
> https://github.com/gluster/historic/commit/3176ddf99f701412bd799cc730afd598c2a13e39
> 
> May be time to run a test by removing that line as we are friendly with 
> only Linux/BSD right now.

 From memory (so take it with a pinch of salt), setting internal xattrs 
and the like needed root permissions, and not UID/GID permissions, this 
was when parts of DHT xattr setting was fixed and this code path 
analyzed (about less than a year back).

So when testing it out this possibly needs some consideration. @Nithya 
do you have a better context to provide?

> 
> Regards,
> Amar
> 
>     Thanks,
>     Raghavendra Talur
> 
> 
> 
> 
> -- 
> Amar Tumballi (amarts)
> 
> 
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at gluster.org
> http://lists.gluster.org/mailman/listinfo/gluster-devel
> 


More information about the Gluster-devel mailing list