Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
VFS_GPFS(8)		  System Administration	tools		   VFS_GPFS(8)

       vfs_gpfs	- gpfs specific	samba extensions like acls and prealloc

       vfs objects = gpfs

       This VFS	module is part of the samba(7) suite.

       The gpfs	VFS module is the home for all gpfs extensions that Samba
       requires	for proper integration with GPFS. It uses the GPL library
       interfaces provided by GPFS.

       Currently the gpfs vfs module provides extensions in following areas :

       o   NFSv4 ACL Interfaces	with configurable options for GPFS

       o   Kernel oplock support on GPFS

       o   Lease support on GPFS

       NOTE: This module follows the posix-acl behaviour and hence allows
       permission stealing via chown. Samba might allow	at a later point in
       time, to	restrict the chown via this module as such restrictions	are
       the responsibility of the underlying filesystem than of Samba.

       This module makes use of	the smb.conf parameter acl map full control.
       When set	to yes (the default), this parameter will add in the
       FILE_DELETE_CHILD bit on	a returned ACE entry for a file	(not a
       directory) that already contains	all file permissions except for
       FILE_DELETE and FILE_DELETE_CHILD. This can prevent Windows
       applications that request GENERIC_ALL access from getting ACCESS_DENIED
       errors when running against a filesystem	with NFSv4 compatible ACLs.

       This module is stackable.

       Since Samba 4.0 all options are per share options.

       gpfs:sharemodes = [ yes | no ]
	   Enable/Disable cross	node sharemode handling	for GPFS.

	   o   yes(default) - propagate	sharemodes across all GPFS nodes.

	   o   no - do not propagate sharemodes	across all GPFS	nodes. This
	       should only be used if the GPFS file system is exclusively
	       exported	by Samba. Access by local unix application or NFS
	       exports could lead to corrupted files.

       gpfs:leases = [ yes | no	]
	   Enable/Disable cross	node leases (oplocks) for GPFS.	You should
	   also	set the	oplocks	and kernel oplocks options to the same value.

	   o   yes(default) - propagate	leases across all GPFS nodes.

	   o   no - do not propagate leases across all GPFS nodes. This	should
	       only be used if the GPFS	file system is exclusively exported by
	       Samba. Access by	local unix application or NFS exports could
	       lead to corrupted files.

       gpfs:hsm	= [ yes	| no ]
	   Enable/Disable announcing if	this FS	has HSM	enabled.

	   o   no(default) - Do	not announce HSM.

	   o   yes - Announce HSM.

       gpfs:recalls = [	yes | no ]
	   When	this option is set to no, an attempt to	open an	offline	file
	   will	be rejected with access	denied.	This helps preventing recall
	   storms triggered by careless	applications like Finder and Explorer.

	   o   yes(default) - Open files that are offline. This	will recall
	       the files from HSM.

	   o   no - Reject access to offline files with	access denied. This
	       will prevent recalls of files from HSM. Using this setting also
	       requires	gpfs:hsm to be set to yes.

       gpfs:getrealfilename = [	yes | no ]
	   Enable/Disable usage	of the gpfs_get_realfilename_path() function.
	   This	improves the casesensitive wildcard file name access.

	   o   yes(default) - use gpfs_get_realfilename_path().

	   o   no - do not use gpfs_get_realfilename_path(). It	seems that
	       gpfs_get_realfilename_path() doesn't work on AIX.

       gpfs:winattr = [	yes | no ]
	   Enable/Disable usage	of the windows attributes in GPFS. GPFS	is
	   able	to store windows file attributes e.g. HIDDEN, READONLY,	SYSTEM
	   and others natively.	That means Samba doesn't need to map them to
	   permission bits or extended attributes.

	   o   no(default) - do	not use	GPFS windows attributes.

	   o   yes - use GPFS windows attributes.

       gpfs:merge_writeappend =	[ yes |	no ]
	   GPFS	ACLs doesn't know about	the 'APPEND' right. This option	lets
	   Samba map the 'APPEND' right	to 'WRITE'.

	   o   yes(default) - map 'APPEND' to 'WRITE'.

	   o   no - do not map 'APPEND'	to 'WRITE'.

       gpfs:acl	= [ yes	| no ]
	   This	option lets Samba use or ignore	GPFS ACLs.

	   o   yes(default) - use GPFS ACLs.

	   o   no - do not use GPFS ACLs and pass everything to	the next
	       SMB_VFS module.

       gpfs:refuse_dacl_protected = [ yes | no ]
	   As GPFS does	not support the	ACE4_FLAG_NO_PROPAGATE NFSv4 flag
	   (which would	be the mapping for the DESC_DACL_PROTECTED flag), the
	   status of this flag is currently silently ignored by	Samba. That
	   means that if you deselect the "Allow inheritable permissions..."
	   checkbox in Windows'	ACL dialog and then apply the ACL, the flag
	   will	be back	immediately.

	   To make sure	that automatic migration with e.g. robocopy does not
	   lead	to ACLs	silently (and unintentionally) changed,	you can	set
	   gpfs:refuse_dacl_protected =	yes to enable an explicit check	for
	   this	flag and if set, it will return	NT_STATUS_NOT_SUPPORTED	so
	   errors are shown up on the Windows side and the Administrator is
	   aware of the	ACLs not being settable	like intended

	   o   no(default) - ignore the	DESC_DACL_PROTECTED flags.

	   o   yes - reject ACLs with DESC_DACL_PROTECTED.

       gpfs:dfreequota = [ yes | no ]
	   Adjust reporting of the size	and free space of a share according to
	   quotas. If this setting is "yes", a request for size	and free space
	   will	also evaluate the user quota of	the user requesting the	data
	   and the group quota of the primary group of the user. Fileset
	   quotas are not queried, since GPFS already provides the option
	   --dfreequota	to reflect the fileset quota in	the free space query.
	   Please use that option to include fileset quotas in the reported
	   disk	space.

	   If any of the soft or hard quota limits has been reached, the free
	   space will be reported as 0.	If a quota is in place,	but the	limits
	   have	not been reached, the free space will be reported according to
	   the space left in the quota.	If more	than one quota applies the
	   free	space will be reported as the smallest space left in those
	   quotas. The size of the share will be reported according to the
	   quota usage.	If more	than one quota applies,	the smallest size will
	   be reported for the share size according to these quotas.

	   o   yes - include the quotas	when reporting the share size and free

	   o   no(default) - do	not include quotas, simply report the size and
	       free space of the file system

       gpfs:prealloc = [ yes | no ]
	   If set to yes the gpfs_prealloc function will be used in the
	   fallocate callback when appropriate.	If set to no gpfs_prealloc
	   will	not be used. In	both cases the system and libc calls are

	   o   yes (default) - Use gpfs_prealloc for the fallocate callback.

	   o   no - Do not use gpfs_prealloc for the fallocate callback.

       gpfs:settimes = [ yes | no ]
	   Use the gpfs_set_times API when changing the	timestamps of a	file
	   or directory. If the	GPFS API is not	available the old method of
	   using utime and the GPFS winattr call will be used instead.

	   o   yes(default) - Use gpfs_set_times. Fall back to utime and
	       winattr when it is not available.

	   o   no - Do not use gpfs_set_times.

       nfs4:mode = [ simple | special ]
	   Controls substitution of special IDs	(OWNER@	and GROUP@) on GPFS.
	   The use of mode simple is recommended. In this mode only non
	   inheriting ACL entries for the file owner and group are mapped to
	   special IDs.

	   The following MODEs are understood by the module:

	   o   simple(default) - use OWNER@ and	GROUP@ special IDs for non
	       inheriting ACEs only.

	   o   special(deprecated) - use OWNER@	and GROUP@ special IDs in ACEs
	       for all file owner and group ACEs.

       nfs4:acedup = [dontcare|reject|ignore|merge]
	   This	parameter configures how Samba handles duplicate ACEs
	   encountered in GPFS ACLs. GPFS allows/creates duplicate ACE for
	   different bits for same ID.

	   Following is	the behaviour of Samba for different values :

	   o   dontcare	(default) - copy the ACEs as they come

	   o   reject -	stop operation and exit	with error on ACL set op

	   o   ignore -	don't include the second matching ACE

	   o   merge - bitwise OR the 2	ace.flag fields	and 2 ace.mask fields
	       of the 2	duplicate ACEs into 1 ACE

       nfs4:chown = [yes|no]
	   This	parameter allows enabling or disabling the chown supported by
	   the underlying filesystem. This parameter should be enabled with
	   care	as it might leave your system insecure.

	   Some	filesystems allow chown	as a) giving b)	stealing. It is	the
	   latter that is considered a risk.

	   Following is	the behaviour of Samba for different values :

	   o   yes - Enable chown if as	supported by the under filesystem

	   o   no (default) - Disable chown

       gpfs:syncio = [yes|no]
	   This	parameter makes	Samba open all files with O_SYNC. This
	   triggers optimizations in GPFS for workloads	that heavily share

	   Following is	the behaviour of Samba for different values:

	   o   yes - Open files	with O_SYNC

	   o   no (default) - Open files as normal Samba would do

       A GPFS mount can	be exported via	Samba as follows :

		vfs objects = gpfs
		path = /test/gpfs_mount
		nfs4: mode = special
		nfs4: acedup = merge

       Depending on the	version	of gpfs, the libgpfs_gpl library or the
       libgpfs library is needed at runtime by the gpfs	VFS module: Starting
       with gpfs 3.2.1 PTF8, the complete libgpfs is available as open source
       and libgpfs_gpl does no longer exist. With earlier versions of gpfs,
       only the	libgpfs_gpl library was	open source and	could be used at run

       At build	time, only the header file gpfs_gpl.h is required, which is a
       symlink to gpfs.h in gpfs versions newer	than 3.2.1 PTF8.

       This man	page is	correct	for version 3.0.25 of the Samba	suite.

       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.

       The GPFS	VFS module was created with contributions from Volker Lendecke
       and the developers at IBM.

       This manpage was	created	by the IBM FSCC	team

Samba 4.6			  05/23/2017			   VFS_GPFS(8)


Want to link to this manual page? Use this URL:

home | help