Virtual File System Modules: Difference between revisions

From SambaWiki
(Added descriptoin for xattr_tdb.)
(Added descriptions for all VFS modules shipped in the samba suite.)
Line 14: Line 14:
{| class="wikitable"
{| class="wikitable"
!Name of the VFS Module
!Name of the VFS Module
!Feature Provides by the Module
!Feature Provided by the Module
|-
|-
|[[Using the acl_tdb VFS Module|acl_tdb]]
|[[Using the acl_tdb VFS Module|acl_tdb]]
|Stores Windows Access Control Lists (ACL) in a Trivial Database (TDB) file.
|
|-
|-
|[[Using the acl_xattr VFS Module|acl_xattr]]
|[[Using the acl_xattr VFS Module|acl_xattr]]
|Enables to use fine-granular Windows Access Control Lists (ACL).
|Enables to use fine-granular Windows ACL.
|-
|-
|[[Using the aio_fork VFS Module|aio_fork]]
|[[Using the aio_fork VFS Module|aio_fork]]
|Implements asynchronous I/O in a VFS module.
|
|-
|-
|[[Using the aio_linux VFS Module|aio_linux]]
|[[Using the aio_linux VFS Module|aio_linux]]
|Implements asynchronous I/O in a VFS module using Linux kernel AIO calls.
|
|-
|-
|[[Using the aio_pthread VFS Module|aio_pthread]]
|[[Using the aio_pthread VFS Module|aio_pthread]]
|Implements asynchronous I/O in a VFS using a <code>pthread</code> pool.
|
|-
|-
|[[Using the audit VFS Module|audit]]
|[[Using the audit VFS Module|audit]]
|Logs client operations.
|
|-
|-
|[[Using the btrfs VFS Module|btrfs]]
|[[Using the btrfs VFS Module|btrfs]]
|On <code>Btrfs</code> file systems, this module enables client-side copy and snapshots for Windows clients.
|
|-
|-
|[[Using the cacheprime VFS Module|cacheprime]]
|[[Using the cacheprime VFS Module|cacheprime]]
|Prime the Kernel file data cache.
|
|-
|-
|[[Using the cap VFS Module|cap]]
|[[Using the cap VFS Module|cap]]
|Provides support for Columbia Appletalk Protocol (CAP) encoded file names.
|
|-
|-
|[[Using the catia VFS Module|catia]]
|[[Using the catia VFS Module|catia]]
|Translates illegal characters in file names used by the <code>Catia</code> application.
|
|-
|-
|[[Using the commit VFS Module|commit]]
|[[Using the commit VFS Module|commit]]
|Synchronizes cached data to disk after the size reached a specified size.
|
|-
|-
|[[Using the crossrename VFS Module|crossrename]]
|[[Using the crossrename VFS Module|crossrename]]
|Enables server-side rename operations across file system boundaries.
|
|-
|-
|[[Using the default_quota VFS Module|default_quota]]
|[[Using the default_quota VFS Module|default_quota]]
|Enables you to set a default quota.
|
|-
|-
|[[Using the dirsort VFS Module|dirsort]]
|[[Using the dirsort VFS Module|dirsort]]
|Sors directory content alphabetically before sending the entries to the client.
|
|-
|-
|[[Using the extd_audit VFS Module|extd_audit]]
|[[Using the extd_audit VFS Module|extd_audit]]
|Records selected VFS operations.
|
|-
|-
|[[Using the fake_perms VFS Module|fake_perms]]
|[[Using the fake_perms VFS Module|fake_perms]]
|Enables read-only profiles by sending faked permissions to the Windows client.
|
|-
|-
|[[Using the fileid VFS Module|fileid]]
|[[Using the fileid VFS Module|fileid]]
|Generates <code>file_id</code> structs with unique device ID values for cluster setups.
|
|-
|-
|[[Using the fruit VFS Module|fruit]]
|[[Using the fruit VFS Module|fruit]]
|Provides enhanced compatibility with Apple Server Message Block (SMB) clients and interoperability with Netatalk 3 Apple Filing Protocol (AFP) file servers.
|
|-
|-
|[[Using the full_audit VFS Module|full_audit]]
|[[Using the full_audit VFS Module|full_audit]]
|Records selected client operations.
|
|-
|-
|[[Using the gpfs VFS Module|gpfs]]
|[[Using the gpfs VFS Module|gpfs]]
|Enables General Parallel File System (GPFS) specific extensions, such as ACL.
|
|-
|-
|[[Using the linux_xfs_sgid VFS Module|linux_xfs_sgid]]
|[[Using the linux_xfs_sgid VFS Module|linux_xfs_sgid]]
|Enables a workaround for an old Linux XFS bug.
|
|-
|-
|[[Using the media_harmony VFS Module|media_harmony]]
|[[Using the media_harmony VFS Module|media_harmony]]
|Enable multiple <code>Avid</code> clients to share a network drive.
|
|-
|-
|[[Using the netatalk VFS Module|netatalk]]
|[[Using the netatalk VFS Module|netatalk]]
|Hides <code>.AppleDouble</code> files generated by AFP clients.
|
|-
|-
|[[Using the offline VFS Module|offline]]
|[[Using the offline VFS Module|offline]]
|Flags all files on a share as offline.
|
|-
|-
|[[Using the prealloc VFS Module|prealloc]]
|[[Using the prealloc VFS Module|prealloc]]
|Preallocate matching files to a predetermined size.
|
|-
|-
|[[Using the preopen VFS Module|preopen]]
|[[Using the preopen VFS Module|preopen]]
|Assists applications that want to read numberes files in sequence with a very strict latency requirement.
|
|-
|-
|[[Using the readahead VFS Module|readahead]]
|[[Using the readahead VFS Module|readahead]]
|Pre-loads the Kernel buffer cache.
|
|-
|-
|[[Using the readonly VFS Module|readonly]]
|[[Using the readonly VFS Module|readonly]]
|On a writeable share, the module sets the share read-only for a specific time period.
|
|-
|-
|[[Using the recycle VFS Module|recycle]]
|[[Using the recycle VFS Module|recycle]]
|Moves files to a temporary directory rather than deleting them immediately.
|
|-
|[[Using the shadow_copy2 VFS Module|shadow_copy2]]
|
|-
|-
|[[Using the shadow_copy VFS Module|shadow_copy]]
|[[Using the shadow_copy VFS Module|shadow_copy]]
|Enables Windows clients to use browse snapshots as shadow copies.
|
|-
|[[Using the shadow_copy2 VFS Module|shadow_copy2]]
|Enables Windows clients to use browse snapshots as shadow copies. Contains enhanced functionality compared to the <code>shadow_copy</code> module.
|-
|-
|[[Using the shell_snap VFS Module|shell_snap]]
|[[Using the shell_snap VFS Module|shell_snap]]
|Runs shell scripts to create or delete a snapshot when a client issues the operation using the File Server Remote VSS Protocol (FSRVP).
|
|-
|-
|[[Using the snapper VFS Module|snapper]]
|[[Using the snapper VFS Module|snapper]]
|Exposes snapshots managed by <code>Snapper</code> to Windows clients as shadow copies.
|
|-
|-
|[[Using the streams_depot VFS Module|streams_depot]]
|[[Using the streams_depot VFS Module|streams_depot]]
|Enables storing Alternative Data Streams (ADS) in a central directory.
|
|-
|-
|[[Using the streams_xattr VFS Module|streams_xattr]]
|[[Using the streams_xattr VFS Module|streams_xattr]]
|Enables Alternative Data Streams (ADS) support.
|Enables ADS support.
|-
|-
|[[Using the syncops VFS Module|syncops]]
|[[Using the syncops VFS Module|syncops]]
|Ensures that meta data operations on a file system are performed synchronously.
|
|-
|-
|[[Using the time_audit VFS Module|time_audit]]
|[[Using the time_audit VFS Module|time_audit]]
|Logs system calls that take longer than a defined time.
|
|-
|-
|[[Using the tsmsm VFS Module|tsmsm]]
|[[Using the tsmsm VFS Module|tsmsm]]
|Handles offline files with <code>Tivoli Storage Manager Space Management</code>.
|
|-
|-
|[[Using the unityed_media VFS Module|unityed_media]]
|[[Using the unityed_media VFS Module|unityed_media]]
|Enable multiple <code>Avid</code> clients to share a network drive. This is an enhanced version of the <code>media_harmony</code> module.
|
|-
|-
|[[Using the worm VFS Module|worm]]
|[[Using the worm VFS Module|worm]]
Line 137: Line 137:
|-
|-
|[[Using the xattr_tdb VFS Module|xattr_tdb]]
|[[Using the xattr_tdb VFS Module|xattr_tdb]]
|Stores extended attributes in a Trivial Database (TDB) file.
|Stores extended attributes in a TDB file.
|}
|}



Revision as of 17:51, 1 November 2017


The Virtual File System (VFS) in Samba enable administrators to extend the functionality of Samba through modules.



VFS Modules Provided by Samba

Samba provides the following VFS modules:

Name of the VFS Module Feature Provided by the Module
acl_tdb Stores Windows Access Control Lists (ACL) in a Trivial Database (TDB) file.
acl_xattr Enables to use fine-granular Windows ACL.
aio_fork Implements asynchronous I/O in a VFS module.
aio_linux Implements asynchronous I/O in a VFS module using Linux kernel AIO calls.
aio_pthread Implements asynchronous I/O in a VFS using a pthread pool.
audit Logs client operations.
btrfs On Btrfs file systems, this module enables client-side copy and snapshots for Windows clients.
cacheprime Prime the Kernel file data cache.
cap Provides support for Columbia Appletalk Protocol (CAP) encoded file names.
catia Translates illegal characters in file names used by the Catia application.
commit Synchronizes cached data to disk after the size reached a specified size.
crossrename Enables server-side rename operations across file system boundaries.
default_quota Enables you to set a default quota.
dirsort Sors directory content alphabetically before sending the entries to the client.
extd_audit Records selected VFS operations.
fake_perms Enables read-only profiles by sending faked permissions to the Windows client.
fileid Generates file_id structs with unique device ID values for cluster setups.
fruit Provides enhanced compatibility with Apple Server Message Block (SMB) clients and interoperability with Netatalk 3 Apple Filing Protocol (AFP) file servers.
full_audit Records selected client operations.
gpfs Enables General Parallel File System (GPFS) specific extensions, such as ACL.
linux_xfs_sgid Enables a workaround for an old Linux XFS bug.
media_harmony Enable multiple Avid clients to share a network drive.
netatalk Hides .AppleDouble files generated by AFP clients.
offline Flags all files on a share as offline.
prealloc Preallocate matching files to a predetermined size.
preopen Assists applications that want to read numberes files in sequence with a very strict latency requirement.
readahead Pre-loads the Kernel buffer cache.
readonly On a writeable share, the module sets the share read-only for a specific time period.
recycle Moves files to a temporary directory rather than deleting them immediately.
shadow_copy Enables Windows clients to use browse snapshots as shadow copies.
shadow_copy2 Enables Windows clients to use browse snapshots as shadow copies. Contains enhanced functionality compared to the shadow_copy module.
shell_snap Runs shell scripts to create or delete a snapshot when a client issues the operation using the File Server Remote VSS Protocol (FSRVP).
snapper Exposes snapshots managed by Snapper to Windows clients as shadow copies.
streams_depot Enables storing Alternative Data Streams (ADS) in a central directory.
streams_xattr Enables ADS support.
syncops Ensures that meta data operations on a file system are performed synchronously.
time_audit Logs system calls that take longer than a defined time.
tsmsm Handles offline files with Tivoli Storage Manager Space Management.
unityed_media Enable multiple Avid clients to share a network drive. This is an enhanced version of the media_harmony module.
worm Provides Write Once Read Many (WORM) functionality.
xattr_tdb Stores extended attributes in a TDB file.



Developing VFS Modules

For details about developing Samba VFS modules, see: