Samba/CIFS export¶
In order to serve files via Samba, configure a BeeGFS client host to be a Samba server and re-export the BeeGFS client mount-point via Samba. Samba versions 4.2 and above are recommended.
Add a share definition to file /etc/samba/smb.conf
for the BeeGFS mount-point, as shown in the
example below. For more information on these options, please have a look at the Samba documentation.
[beegfs]
comment = BeeGFS file system
public = yes
path = /mnt/beegfs
browsable = yes
writable = yes
read only = no
Restart the samba server service. Now, you should be able to access the BeeGFS file system from a Samba client.
In case you are configuring a Clustered Samba cluster, take the following additional steps.
Add the following definitions to file /etc/samba/smb.conf
:
[global]
...
clustering = yes
netbios name = BeeGFS *
clustering = yes
...
idmap config * : backend = autorid
idmap config * : range = 1000000-1999999
...
vfs objects = fileid
fileid:algorithm = fsid
[BeeGFS]
...
strict locking = yes
kernel oplocks = yes
blocking locks = yes
mmap = no
When configuring the cluster manager CTDB, add the following settings to /etc/default/ctdb
:
CTDB_RECOVERY_LOCK=/mnt/beegfs/.ctdb/lock
CTDB_NODES=/etc/ctdb/nodes
CTDB_PUBLIC_ADDRESSES=/etc/ctdb/public_addresses
CTDB_MANAGES_SAMBA=yes
CTDB_SERVICE_SMB=smbd
CTDB_SERVICE_NMB=nmbd
For Samba Versions > 4.8, the recovery lock option CTDB_RECOVERY_LOCK
is moved to /etc/samba/smb.conf
,
where the following entry must be added:
[cluster]
recovery lock = /mnt/beegfs/.ctdb/reclock
Turn on global file locks in BeeGFS by changing the following option in the BeeGFS client
configuration file /etc/beegfs/beegfs-client.conf
:
tuneUseGlobalFileLocks = true
Configure the files /etc/ctdb/nodes
and /etc/ctdb/pubcic_addresses
according to the environment.
Hints¶
Consider exporting BeeGFS via NFS, which usually has a better performance than Samba and is supported by recent Windows versions.
If you are using Windows Samba clients, please consider adding the option case sensitive = true
to the share definition above, in order to make the BeeGFS export case sensitive. This setting has a
positive performance impact on the client, as case-insensitive lookups perform fewer system calls on
the exported file system.
Another way of improving performance of Windows clients, but keeping the BeeGFS export
case-insensitive for ASCII file names, is to store the BeeGFS metadata in a case-insensitive XFS
partition, formatted using the command mkfs.xfs
with the option -n version=ci
, as seen in
the example below. This allows now to set the Samba option case sensitive = true
, as suggested
above so that Samba is led to perform less system calls on the exported file system. However, this
means that all filenames are case-insensitive, even for Linux clients.
$ mkfs.xfs -d su=128k,sw=8 -l version=2,su=128k -isize=512 -n version=ci /dev/sdx -f