'\" t
.\" Title: vfs_glusterfs
.\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets vsnapshot
.\" Date: 05/09/2024
.\" Manual: System Administration tools
.\" Source: Samba 4.20.1
.\" Language: English
.\"
.TH "VFS_GLUSTERFS" "8" "05/09/2024" "Samba 4\&.20\&.1" "System Administration tools"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
vfs_glusterfs \- Utilize features provided by GlusterFS
.SH "SYNOPSIS"
.HP \w'\ 'u
vfs objects = glusterfs
.SH "DESCRIPTION"
.PP
This VFS module is part of the
\fBsamba\fR(8)
suite\&.
.PP
GlusterFS (http://www\&.gluster\&.org) is an Open Source clustered file system capable of scaling to several peta\-bytes\&. With its FUSE based native client, GlusterFS is available as a POSIX compliant file system and can hence be shared by Samba without additional steps\&.
.PP
The
vfs_glusterfs
VFS module provides an alternative, and superior way to access a Gluster filesystem from Samba for sharing\&. It does not require a Gluster FUSE mount but directly accesses the GlusterFS daemon through its library
libgfapi, thereby omitting the expensive kernel\-userspace context switches and taking advantage of some of the more advanced features of GlusterFS\&.
.PP
This module can be combined with other modules, but it should be the last module in the
vfs objects
list\&. Modules added to this list to the right of the glusterfs entry may not have any effect at all\&.
.SH "CONFIGURATION"
.PP
A basic configuration looks like this\&.
.sp
.if n \{\
.RS 4
.\}
.nf
\fI[share]\fR
\m[blue]\fBvfs objects = glusterfs\fR\m[]
\m[blue]\fBpath = /relative/base/path\fR\m[]
\m[blue]\fBglusterfs:volume = gv0\fR\m[]
\m[blue]\fBkernel share modes = no\fR\m[]
.fi
.if n \{\
.RE
.\}
.PP
Note that since
vfs_glusterfs
does not require a Gluster mount, the share
path
is treated differently than for other shares: It is interpreted as the base path of the share relative to the gluster volume used\&. Because this is usually not at the same time a system path, in a ctdb cluster setup where ctdb manages Samba, you need to set
CTDB_SAMBA_SKIP_SHARE_CHECK=yes
in ctdb\*(Aqs configuration file\&. Otherwise ctdb will not get healthy\&.
.PP
Note that currently kernel share modes have to be disabled in a share running with the glusterfs vfs module for file serving to work properly\&.
.SH "OPTIONS"
.PP
glusterfs:logfile = path
.RS 4
Defines whether and where to store a vfs_glusterfs specific logfile\&. Client variable substitution is supported (i\&.e\&. %M, %m, %I), hence per client log file can be specified\&.
.sp
Example: glusterfs:logfile = /var/log/samba/glusterfs\-vol2\&.%M\&.log
.RE
.PP
glusterfs:loglevel = 0\-9
.RS 4
Defines the level of logging, with higher numbers corresponding to more verbosity\&. 0 \- No logs; 9 \- Trace log level; 7 being the info log level is preferred\&.
.sp
If this option is not defined with an explicit loglevel, the glusterfs default is used (currently loglevel 7)\&.
.RE
.PP
glusterfs:volfile_server = servername
.RS 4
Defines which volfile server to use, defaults to localhost\&. It could be list of white space separated elements where each element could be
.sp
1\&. unix+/path/to/socket/file
.sp
2\&. [tcp+]IP|hostname|\e[IPv6\e][:port]
.sp
Note the restriction on naming a IPv6 host, it follows the same restriction that is based on IPv6 naming in URL as per RFC 2732\&.
.RE
.PP
glusterfs:volume = volumename
.RS 4
Defines the glusterfs volumename to use for this share\&.
.RE
.SH "CAVEATS"
.PP
The GlusterFS write\-behind performance translator, when used with Samba, could be a source of data corruption\&. The translator, while processing a write call, immediately returns success but continues writing the data to the server in the background\&. This can cause data corruption when two clients relying on Samba to provide data consistency are operating on the same file\&.
.PP
The write\-behind translator is enabled by default on GlusterFS\&. The vfs_glusterfs plugin will check for the presence of the translator and refuse to connect if detected\&. Please disable the write\-behind translator for the GlusterFS volume to allow the plugin to connect to the volume\&. The write\-behind translator can easily be disabled via calling
.sp
.if n \{\
.RS 4
.\}
.nf
gluster volume set performance\&.write\-behind off
.fi
.if n \{\
.RE
.\}
.sp
on the commandline\&.
.PP
With GlusterFS versions >= 9, we silently bypass write\-behind translator during initial connect and failure is avoided\&.
.SH "VERSION"
.PP
This man page is part of version 4\&.20\&.1 of the Samba suite\&.
.SH "AUTHOR"
.PP
The original Samba software and related utilities were created by Andrew Tridgell\&. Samba is now developed by the Samba Team as an Open Source project similar to the way the Linux kernel is developed\&.