Difference between revisions of "Virtual File System Modules"
Mmuehlfeld (talk | contribs) (Rewrote page. Listed all available VFS modules. Descriptions will be added later.) |
m (fix Btrfs VFS module description) |
||
(4 intermediate revisions by one other user not shown) | |||
Line 14: | Line 14: | ||
{| class="wikitable" | {| class="wikitable" | ||
!Name of the VFS Module | !Name of the VFS Module | ||
− | !Feature | + | !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 | + | |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 [https://wiki.samba.org/index.php/Server-Side_Copy#Btrfs_Enhanced_Server-Side_Copy_Offload enhanced server-side copy], compression and snapshots. |
|- | |- | ||
|[[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_copy VFS Module|shadow_copy]] | ||
+ | |Enables Windows clients to use browse snapshots as shadow copies. | ||
|- | |- | ||
|[[Using the shadow_copy2 VFS Module|shadow_copy2]] | |[[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 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 TDB file. |
|} | |} | ||
Latest revision as of 11:48, 18 May 2018
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 enhanced server-side copy, compression and snapshots.
|
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:
- Writing a Samba VFS Module (Samba 4.0 and later)
- The new version of Writing a Samba VFS (Samba 3.6 and earlier)