docs-xml: vfs_gpfs: add comment "per share option"
[obnox/samba/samba-obnox.git] / docs-xml / manpages-3 / vfs_gpfs.8.xml
index e0dbe7f79a61754273d938924c108e11b0112530..526d86d0d039bdfb84e3c2cfce6aed317c9b4531 100644 (file)
@@ -7,7 +7,7 @@
        <manvolnum>8</manvolnum>
        <refmiscinfo class="source">Samba</refmiscinfo>
        <refmiscinfo class="manual">System Administration tools</refmiscinfo>
-       <refmiscinfo class="version">3.5</refmiscinfo>
+       <refmiscinfo class="version">3.6</refmiscinfo>
 </refmeta>
 
 
@@ -50,6 +50,8 @@
 
        <para>This module is stackable.</para>
 
+       <para>Since Samba 4.0 all options are per share options.</para>
+
 </refsect1>
 
 
 
                <varlistentry>
 
+               <term>gpfs:sharemodes = [ yes | no ]</term>
+               <listitem>
+               <para>
+               Enable/Disable cross node sharemode handling for GPFS.
+               </para>
+
+               <itemizedlist>
+               <listitem><para>
+               <command>yes(default)</command> - propagate sharemodes across all GPFS nodes.
+               </para></listitem>
+               <listitem><para>
+               <command>no</command> - 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.
+               </para></listitem>
+               </itemizedlist>
+               </listitem>
+
+               </varlistentry>
+               <varlistentry>
+
+               <term>gpfs:leases = [ yes | no ]</term>
+               <listitem>
+               <para>
+               Enable/Disable cross node leases (oplocks) for GPFS.
+               You should also set the <command>oplocks</command> and <command>kernel oplocks</command>
+               options to the same value.
+               </para>
+
+               <itemizedlist>
+               <listitem><para>
+               <command>yes(default)</command> - propagate leases across all GPFS nodes.
+               </para></listitem>
+               <listitem><para>
+               <command>no</command> - 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.
+               </para></listitem>
+               </itemizedlist>
+               </listitem>
+
+               </varlistentry>
+
+               <varlistentry>
+
+               <term>gpfs:hsm = [ yes | no ]</term>
+               <listitem>
+               <para>
+               Enable/Disable announcing if this FS has HSM enabled.
+               </para>
+
+               <itemizedlist>
+               <listitem><para>
+               <command>no(default)</command> - Do not announce HSM.
+               </para></listitem>
+               <listitem><para>
+               <command>yes</command> - Announce HSM.
+               </para></listitem>
+               </itemizedlist>
+               </listitem>
+
+               </varlistentry>
+
+               <varlistentry>
+
+               <term>gpfs:getrealfilename = [ yes | no ]</term>
+               <listitem>
+               <para>
+               Enable/Disable usage of the <command>gpfs_get_realfilename_path()</command> function.
+               This improves the casesensitive wildcard file name access.
+               </para>
+
+               <itemizedlist>
+               <listitem><para>
+               <command>yes(default)</command> - use <command>gpfs_get_realfilename_path()</command>.
+               </para></listitem>
+               <listitem><para>
+               <command>no</command> - do not use <command>gpfs_get_realfilename_path()</command>.
+               It seems that <command>gpfs_get_realfilename_path()</command> doesn't work on AIX.
+               </para></listitem>
+               </itemizedlist>
+               </listitem>
+
+               </varlistentry>
+               <varlistentry>
+
+               <term>gpfs:winattr = [ yes | no ]</term>
+               <listitem>
+               <para>
+               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.
+               </para>
+
+               <itemizedlist>
+               <listitem><para>
+               <command>no(default)</command> - do not use GPFS windows attributes.
+               </para></listitem>
+               <listitem><para>
+               <command>yes</command> - use GPFS windows attributes.
+               </para></listitem>
+               </itemizedlist>
+               </listitem>
+
+               </varlistentry>
+               <varlistentry>
+
+               <term>gpfs:merge_writeappend = [ yes | no ]</term>
+               <listitem>
+               <para>
+               GPFS ACLs doesn't know about the 'APPEND' right.
+               This option lets Samba map the 'APPEND' right to 'WRITE'.
+               </para>
+
+               <itemizedlist>
+               <listitem><para>
+               <command>yes(default)</command> - map 'APPEND' to 'WRITE'.
+               </para></listitem>
+               <listitem><para>
+               <command>no</command> - do not map 'APPEND' to 'WRITE'.
+               </para></listitem>
+               </itemizedlist>
+               </listitem>
+
+               </varlistentry>
+               <varlistentry>
+
+               <term>gpfs:acl = [ yes | no ]</term>
+               <listitem>
+               <para>
+               This option lets Samba use or ignore GPFS ACLs.
+               </para>
+
+               <itemizedlist>
+               <listitem><para>
+               <command>yes(default)</command> - use GPFS ACLs.
+               </para></listitem>
+               <listitem><para>
+               <command>no</command> - do not use GPFS ACLs and pass everything
+               to the next SMB_VFS module.
+               </para></listitem>
+               </itemizedlist>
+               </listitem>
+
+               </varlistentry>
+               <varlistentry>
+
+               <term>gpfs:refuse_dacl_protected = [ yes | no ]</term>
+               <listitem>
+               <para>
+               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.
+               </para>
+               <para>
+               To make sure that automatic migration with e.g. robocopy does not lead to
+               ACLs silently (and unintentionally) changed, you can set
+               <command>gpfs:refuse_dacl_protected = yes</command> 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
+               </para>
+
+               <itemizedlist>
+               <listitem><para>
+               <command>no(default)</command> - ignore the DESC_DACL_PROTECTED flags.
+               </para></listitem>
+               <listitem><para>
+               <command>yes</command> - reject ACLs with DESC_DACL_PROTECTED.
+               </para></listitem>
+               </itemizedlist>
+               </listitem>
+
+               </varlistentry>
+               <varlistentry>
+
+               <term>gpfs:dfreequota = [ yes | no ]</term>
+               <listitem>
+               <para>
+               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, the group
+               quota of the primary group of the user and the fileset
+               quota for the fileset containing the top level
+               directory of the share.
+               </para>
+
+               <para>
+               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.
+               </para>
+
+               <itemizedlist>
+               <listitem><para>
+               <command>yes</command> - include the quotas
+               when reporting the share size and free space
+               </para></listitem>
+               <listitem><para>
+               <command>no(default)</command> - do not include quotas,
+               simply report the size and free space of the file system
+               </para></listitem>
+               </itemizedlist>
+               </listitem>
+
+               </varlistentry>
+               <varlistentry>
+
+               <term>gpfs:prealloc = [ yes | no ]</term>
+               <listitem>
+               <para>
+               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
+               avoided.
+               </para>
+
+               <itemizedlist>
+               <listitem><para>
+               <command>yes (default)</command> - Use gpfs_prealloc for the
+               fallocate callback.
+               </para></listitem>
+               <listitem><para>
+               <command>no</command> - Do not use gpfs_prealloc for the
+               fallocate callback.
+               </para></listitem>
+               </itemizedlist>
+               </listitem>
+
+               </varlistentry>
+
+               <varlistentry>
+
                <term>nfs4:mode = [ simple | special ]</term>
                <listitem>
                <para>
                </listitem>
                </varlistentry>
 
+               <varlistentry>
+               <term>gpfs:syncio = [yes|no]</term>
+               <listitem>
+               <para>This parameter makes Samba open all files with O_SYNC.
+                 This triggers optimizations in GPFS for workloads that
+                 heavily share files.</para>
+
+               <para>Following is the behaviour of Samba for different
+                 values:
+               </para>
+               <itemizedlist>
+               <listitem><para><command>yes</command> - Open files with O_SYNC
+               </para></listitem>
+               <listitem><para><command>no (default)</command> - Open files as
+                   normal Samba would do
+               </para></listitem>
+               </itemizedlist>
+               </listitem>
+               </varlistentry>
+
        </variablelist>
 </refsect1>
 
 
 <refsect1>
        <title>CAVEATS</title>
-       <para>The gpfs gpl libraries are required by <command>gpfs</command> VFS
-       module during both compilation and runtime.
-       Also this VFS module is tested to work on SLES 9/10 and RHEL 4.4
+       <para>
+       Depending on the version of gpfs, the <command>libgpfs_gpl</command>
+       library or the <command>libgpfs</command> library is needed at
+       runtime by the <command>gpfs</command> VFS module:
+       Starting with gpfs 3.2.1 PTF8, the complete <command>libgpfs</command>
+       is available as open source and <command>libgpfs_gpl</command> does no
+       longer exist. With earlier versions of gpfs, only the
+       <command>libgpfs_gpl</command> library was open source and could be
+       used at run time.
+       </para>
+       <para>
+       At build time, only the header file <command>gpfs_gpl.h</command>
+       is required , which is a symlink to <command>gpfs.h</command> in
+       gpfs versions newer than 3.2.1 PTF8.
        </para>
 </refsect1>