vfs_btrfs — Utilize features provided by the Btrfs filesystem
vfs objects = btrfs
This VFS module is part of the samba(8) suite.
The vfs_btrfs
VFS module exposes Btrfs
specific features for use by Samba.
Btrfs allows for multiple files to share the same on-disk data through the use cloned ranges. When an SMB client issues a request to copy duplicate data (via FSCTL_SRV_COPYCHUNK), this module maps the request to a Btrfs clone range IOCTL, instead of performing reads and writes required by a traditional copy. Doing so saves storage capacity and greatly reduces disk IO.
This module also exposes Btrfs per-file compression support to SMB clients via the get/set compression fsctls.
Btrfs snapshots can be manipulated by Samba's FSRVP server.
Snapshot manipulation using this module is currently considered
experimental, and is therefore disabled by default. The
vfs_snapper
module is instead recommended for
this purpose.
This module is stackable.
When set to yes, experimental support for the creation and deletion of snapshots via corresponding Btrfs IOCTLs will be enabled. The default is no, which means that such requests are passed through to any underlying VFS module.
vfs_btrfs
requires that the underlying share
path is a Btrfs subvolume.
[share]
vfs objects = btrfs
btrfs: manipulate snapshots = no
To use the experimental snapshot manipulation functionality provided by this module, it must be explicitly enabled, and Samba's FSRVP server must be running.
The vfs_shadow_copy
module can be used to
expose snapshots created by vfs_btrfs
to
Windows Explorer as file / directory "previous versions".
[global]
rpc_daemon:fssd = fork registry shares = yes include = registry[share]
vfs objects = btrfs shadow_copy btrfs: manipulate snapshots = yes