Unable to create subdirectories/files in samba mount when using vfs objects = glusterfs

Mahesh Taluru mtaluru87 at gmail.com
Tue Sep 1 13:32:47 UTC 2020


Hi Team,



I am trying to setup a samba CTDB cluster to export gluster volme as samba
share. While CTDB cluster works well, I ran into an issue with creating
subdirectories and also creating files/directories within subdictories when
accessing the share from both linux  and windows servers.



Setup details :



We have a three node cluster with nodes snode1, snode2 and snode3. I have a
gluster volume named smbshare32 exported as samba share using vfs objects =
glusterfs (libgfapi).  When I mount the share on linux, I am able to create
files/directories in the root of the mount point i.e under /smbshare32.



[root at sclient1 /]# df -h /smbshare32

Filesystem                      Size  Used Avail Use% Mounted on

//10.4.0.31/gluster-smbshare32  600G  6.1G  594G   2% /smbshare32

[root at sclient1 /]#



[root at sclient1 /]# cd /smbshare32

[root at sclient1 smbshare32]# ls

[root at sclient1 smbshare32]# mkdir subdir1

[root at sclient1 smbshare32]# touch a

[root at sclient1 smbshare32]# ls

*a*  *subdir1*

[root at sclient1 smbshare32]#



When I switch to subdir1, I cannot create files or directories. Same issue
happens on windows , but I get a different error message it says “the file
‘ ‘ is too large for the destination file system.



[root at sclient1 smbshare32]# cd subdir1/

[root at sclient1 subdir1]# touch a

touch: setting times of ‘a’: Invalid argument

[root at sclient1 subdir1]# mkdir subdir2

mkdir: cannot create directory ‘subdir2’: Invalid argument

[root at sclient1 subdir1]#



Below two scenarios works well:



If I mount the cifs mount on the client using vers 1.0 , I am able to
create files and directories.



//10.4.0.31/gluster-smbshare32 /smbshare32 cifs
vers=1.0,credentials=/etc/smbclient.passwd     0       0



[root at sclient1 /]# cd /smbshare32

[root at sclient1 smbshare32]# ls

*a*  *subdir1*

[root at sclient1 smbshare32]# cd subdir1/

[root at sclient1 subdir1]# touch a

[root at sclient1 subdir1]# mkdir test2

[root at sclient1 subdir1]#



Also if I mount the gluster volume using fuse and then export the fuse
mount as samba share, I have no issues creating file/directories.   We
would prefer accessing the gluster volume using vfs_glusterfs and also use
the latest SMB protocol version.



Could you please let me know if I missed some configuration.



I have mounted the gluster volume using fuse and set below ACLs as for the
volume.



[root at snode3 /]# getfacl /share

getfacl: Removing leading '/' from absolute path names

# file: share

# owner: smbtest

# group: smbtest

user::rwx

user:smbtest:rwx

group::r-x

group:smbtest:rwx

mask::rwx

other::r-x

default:user::rwx

default:user:smbtest:rwx

default:group::r-x

default:mask::rwx

default:other::r-x



[root at snode3 /]#





Samba config file.



[global]

       workgroup = SAMBA

       security = user



       passdb backend = tdbsam

       printing = cups

       printcap name = cups

       load printers = yes

       cups options = raw

    clustering = yes

    min protocol = NT1



[homes]

       comment = Home Directories

       valid users = %S, %D%w%S

       browseable = No

       read only = No

       inherit acls = Yes



[printers]

       comment = All Printers

       path = /var/tmp

       printable = Yes

       create mask = 0600

       browseable = No



[print$]

       comment = Printer Drivers

       path = /var/lib/samba/drivers

       write list = @printadmin root

       force group = @printadmin

       create mask = 0664

       directory mask = 0775



[gluster-smbshare32]

comment = For samba share of volume smbshare32

*vfs objects = glusterfs*

glusterfs:volume = smbshare32

glusterfs:logfile = /var/log/samba/glusterfs-smbshare32.%M.log

glusterfs:loglevel = 7

path = /

read only = no

guest ok = yes

kernel share modes = no



gluster and samba versions.



[root at snode3 /]# rpm -qa|grep -i gluster

*gluster*fs-client-xlators-6.8-1.el7.x86_64

samba-vfs-*gluster*fs-4.10.4-11.el7_8.x86_64

*gluster*fs-6.8-1.el7.x86_64

*gluster*fs-api-6.8-1.el7.x86_64

*gluster*fs-cli-6.8-1.el7.x86_64

*gluster*fs-server-6.8-1.el7.x86_64

python2-*gluster*-6.8-1.el7.x86_64

*gluster*fs-libs-6.8-1.el7.x86_64

*gluster*fs-fuse-6.8-1.el7.x86_64

*gluster*fs-rdma-6.8-1.el7.x86_64

*gluster*fs-extra-xlators-6.8-1.el7.x86_64

[root at snode3 /]# rpm -qa|grep -i samba

*samba*-libs-4.10.4-11.el7_8.x86_64

*samba*-vfs-glusterfs-4.10.4-11.el7_8.x86_64

*samba*-common-4.10.4-11.el7_8.noarch

*samba*-client-libs-4.10.4-11.el7_8.x86_64

*samba*-common-libs-4.10.4-11.el7_8.x86_64

*samba*-4.10.4-11.el7_8.x86_64

*samba*-common-tools-4.10.4-11.el7_8.x86_64

[root at snode3 /]#



Regards



Mahesh Taluru


More information about the samba-technical mailing list