Go to main content

man pages section 8: System Administration Commands

Exit Print View

Updated: Thursday, June 13, 2019
 
 

vfs_fileid (8)

Name

vfs_fileid - Generates file_id structs with unique device id values for cluster setups

Synopsis

vfs objects = fileid

Description

System Administration tools                                      VFS_FILEID(8)



NAME
       vfs_fileid - Generates file_id structs with unique device id values for
       cluster setups

SYNOPSIS
       vfs objects = fileid

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

       Samba uses file_id structs to uniquely identify files for locking
       purpose. By default the file_id contains the device and inode number
       returned by the stat() system call. As the file_id is a unique
       identifier of a file, it must be the same on all nodes in a cluster
       setup. This module overloads the SMB_VFS_FILE_ID_CREATE() operation and
       generates the device number based on the configured algorithm (see the
       "fileid:algorithm" option).

       When using the fsname or fsid algorithm a stat() and statfs() call is
       required for all mounted file systems to generate the file_id. If e.g.
       an NFS file system is unresponsive such a call might block and the smbd
       process will become unresponsive. Use the "fileid:fstype deny",
       "fileid:fstype allow", "fileid:mntdir deny", or "fileid:mntdir allow"
       options to ignore potentially unresponsive file systems.

OPTIONS
       fileid:algorithm = ALGORITHM
           Available algorithms are fsname, fsname_nodirs, fsid and hostname.
           The default value is fsname.

           The fsname algorithm generates device id by hashing the kernel
           device name.

           The fsname_nodirs algorithm generates device id by hashing the
           kernel device name for files and by hashing the hostname for
           directories. This can be used to deliberately break lock coherency
           for directories in a cluster.

           The fsid algorithm generates the device id from the f_fsid returned
           from the statfs() syscall.

           The hostname algorithm generates device id by hashing the hostname.
           This can be used to deliberately break lock coherency in a cluster.

           The fsname_norootdir algorithm generates device ids by hashing the
           kernel device name, except for the root directory of shares where
           it will use the hostname algorithm. This can be used to
           deliberately break lock coherency in a cluster for the root
           directory of a share.

       fileid:mapping = ALGORITHM
           This option is the legacy version of the fileid:algorithm option,
           which was used in earlier versions of fileid mapping feature in
           custom Samba 3.0 versions.

       fileid:fstype deny = LIST
           List of file system types to be ignored for file_id generation.

       fileid:fstype allow = LIST
           List of file system types to be allowed for file_id generation. If
           this option is set, file system types not listed here are ignored.

       fileid:mntdir deny = LIST
           List of file system mount points to be ignored for file_id
           generation.

       fileid:mntdir allow = LIST
           List of file system mount points to be allowed for file_id
           generation. If this option is set, file system mount points not
           listed here are ignored.

       fileid:nolockinode
           This option triggers use of the fileid hostname algorithm for the
           configured inode which can be used to deliberately break lock
           coherency for the corresponding file or directory in a cluster.

EXAMPLES
       Usage of the fileid module with the fsid algorithm:

                   [global]
                vfs objects = fileid
                fileid:algorithm = fsid

VERSION
       This man page is part of version 4.9.3 of the Samba suite.

AUTHOR
       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.



ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+-----------------------+
       |ATTRIBUTE TYPE |   ATTRIBUTE VALUE     |
       +---------------+-----------------------+
       |Availability   | service/network/samba |
       +---------------+-----------------------+
       |Stability      | Volatile              |
       +---------------+-----------------------+
NOTES
       This software was built from source available at
       https://github.com/oracle/solaris-userland.  The original community
       source was downloaded from
       https://download.samba.org/pub/samba/stable/samba-4.9.3.tar.gz

       Further information about this software can be found on the open source
       community website at http://www.samba.org/.



Samba 4.9.3                       01/24/2019                     VFS_FILEID(8)