GlusterFS 9 : GlusterFS + SMB2021/05/25 |
Configure GlusterFS volume to enable SMB protocol.
For example, Configure SMB setting to a Gluster Volume [vol_distributed] like an example of the link here.
|
|
[1] | Configure GlusterFS to enable SMB setting on a Node in GlusterFS Cluster. |
[root@node01 ~]#
yum -y install centos-release-samba411
[root@node01 ~]#
sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/CentOS-Samba-411.repo
[root@node01 ~]#
yum --enablerepo=centos-samba411 -y install samba ctdb samba-vfs-glusterfs # stop the target Gluster volume and change settings [root@node01 ~]# gluster volume stop vol_distributed Stopping volume will make its data inaccessible. Do you want to continue? (y/n) y volume stop: vol_distributed: success [root@node01 ~]# gluster volume set vol_distributed user.smb enable volume set: success [root@node01 ~]# gluster volume set vol_distributed performance.write-behind off volume set: success
[root@node01 ~]#
gluster volume set vol_distributed group samba volume set: success
[root@node01 ~]#
vi /var/lib/glusterd/hooks/1/start/post/S29CTDBsetup.sh # line 25 : change to the target Gluster volume name META=" vol_distributed "
[root@node01 ~]#
vi /var/lib/glusterd/hooks/1/stop/pre/S29CTDB-teardown.sh # line 13 : change to the target Gluster volume name META=" vol_distributed "
# start Gluster volume [root@node01 ~]# gluster volume start vol_distributed volume start: vol_distributed: success # with the settings above, following mounting is done automatically [root@node01 ~]# df -h /gluster/lock Filesystem Size Used Avail Use% Mounted on node01.srv.world:/vol_distributed.tcp 52G 3.9G 49G 8% /gluster/lock[root@node01 ~]# tail -1 /etc/fstab node01.srv.world:/vol_distributed /gluster/lock glusterfs _netdev,transport=tcp,xlator-option=*client*.ping-timeout=10 0 0
[root@node01 ~]#
vi /etc/ctdb/nodes # create new # write all Nodes that configure target Gluster volume 10.0.0.51 10.0.0.52
[root@node01 ~]#
vi /etc/ctdb/public_addresses # create new # set virtual IP address for SMB access # [eth0] means network interface name ⇒ replace to your environment 10.0.0.59/24 eth0
[root@node01 ~]#
systemctl enable --now ctdb
# confirm status [root@node01 ~]# ctdb status Number of nodes:2 pnn:0 10.0.0.51 OK (THIS NODE) pnn:1 10.0.0.52 DISCONNECTED|UNHEALTHY|INACTIVE Generation:843141804 Size:1 hash:0 lmaster:0 Recovery mode:NORMAL (0) Recovery master:0[root@node01 ~]# ctdb ip Public IPs on node 0 10.0.0.59 0 |
[2] | Configure Samba. For example, Create a shared Folder that users in [smbgroup] group can only access to shared folder [smbshare] and also they are required user authetication. |
# mount Gluster volume with GlusterFS Native and create a shared folder for SMB access [root@node01 ~]# mount -t glusterfs node01.srv.world:/vol_distributed /mnt [root@node01 ~]# mkdir /mnt/smbshare [root@node01 ~]# groupadd smbgroup [root@node01 ~]# chgrp smbgroup /mnt/smbshare [root@node01 ~]# chmod 770 /mnt/smbshare [root@node01 ~]# umount /mnt
[root@node01 ~]#
vi /etc/samba/smb.conf [global] workgroup = MYGROUP netbios name = MYSERVER server string = Samba Server Version %v log file = /var/log/samba/log.%m max log size = 50 security = user passdb backend = tdbsam load printers = yes cups options = raw # add follows clustering = yes kernel share modes = no kernel oplocks = no map archive = no map hidden = no map read only = no map system = no store dos attributes = yes # following 9 lines are configred automatically [gluster-vol_distributed] comment = For samba share of volume vol_distributed vfs objects = glusterfs glusterfs:volume = vol_distributed glusterfs:logfile = /var/log/samba/glusterfs-vol_distributed.%M.log glusterfs:loglevel = 7 path = / read only = no kernel share modes = no # add follows writable = yes valid users = @smbgroup force create mode = 777 force directory mode = 777 inherit permissions = yes
[root@node01 ~]#
systemctl enable --now smb
# add Samba user [root@node01 ~]# useradd cent [root@node01 ~]# smbpasswd -a cent New SMB password: # set any SMB password Retype new SMB password: Added user cent. [root@node01 ~]# usermod -aG smbgroup cent |
[3] | If SELinux is enabled, change policy. |
[root@node01 ~]# setsebool -P use_fusefs_home_dirs on [root@node01 ~]# setsebool -P samba_load_libgfapi on [root@node01 ~]# setsebool -P domain_kernel_load_modules on |
[4] | If Firewalld is running, allow services. |
[root@node01 ~]# firewall-cmd --add-service={samba,ctdb} --permanent success [root@node01 ~]# firewall-cmd --reload success |
[5] | Verify it can access to the target share with SMB from any Linux client computer. The examples below are on Linux clients but it's possible to access from Windows clients with common way. |
# verify with [smbclient] [root@client ~]# smbclient //node01.srv.world/gluster-vol_distributed -U cent Enter MYGROUP\cent's password: Try "help" to get a list of possible commands. # verify witable to move to shared folder smb: \> cd smbshare smb: \smbshare\> mkdir testdir smb: \smbshare\> ls . D 0 Tue May 25 11:25:11 2021 .. D 0 Tue May 25 11:19:01 2021 testdir D 0 Tue May 25 11:25:11 2021 54491144 blocks of size 1024. 50354420 blocks available smb: \smbshare\> exit # verify with [mount] # for [10.0.0.59], it is virtual IP address set in [1] section [root@client ~]# mount -t cifs -o vers=3.0,username=cent //10.0.0.59/gluster-vol_distributed /mnt Password for cent@//10.0.0.59/gluster-vol_distributed: ******** df -hT Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs tmpfs 1.9G 8.6M 1.9G 1% /run tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/mapper/centos-root xfs 26G 1.7G 25G 7% / /dev/vda1 xfs 1014M 319M 696M 32% /boot tmpfs tmpfs 379M 0 379M 0% /run/user/0 //10.0.0.59/gluster-vol_distributed cifs 52G 4.0G 49G 8% /mnt[root@client ~]# touch /mnt/smbshare/testfile.txt [root@client ~]# ll /mnt/smbshare total 4 drwxr-xr-x. 2 root root 0 May 24 19:25 testdir -rwxr-xr-x. 1 root root 0 May 24 19:26 testfile.txt |
Sponsored Link |