SFSMOUNT(1)

๐Ÿ“ฆ
version 5.8.0 ยท 4 versions
, in ubuntu stonking

๐Ÿ“ sfsmount(1) โ€” the mount-SaunaFS girlies' edition ๐Ÿ“

okay bestie, buckle in, because this is sfsmount โ€” the section 1 manual page โ€” and she is a long one. no cap. we're doing this together, one flag at a time. ๐Ÿ’…


โœจ NAME โœจ

sfsmount โ€” mount Sauna File System ๐Ÿง–โ™€๏ธ๐Ÿ”ฅ


๐ŸŒธ SYNOPSIS ๐ŸŒธ

sfsmount [HOST:[PORT]]:[PATH] [-d] [-f] [-s] [-m] [-n] [-p]
         [-H HOST] [-P PORT] [-S PATH] [-o opt[,opt]...]

sfsmount -h|--help

sfsmount -V|--version

๐Ÿฆ‹ DESCRIPTION ๐Ÿฆ‹

Mount Sauna File System. that's it, that's the whole vibe, she does what it says on the tin. iconic. now let's get into the options because there are, um, a LOT.

๐ŸŽ€ General options

  • -h, --help โ€” show the help text and dip out. โœจ
  • -V โ€” print the version info and exit. that's it, that's her whole arc.

๐Ÿ’œ FUSE options

  • -d, -o debug โ€” turn on debug mode (implies -f, so you're automatically in foreground, no escape). ๐Ÿ›
  • -f โ€” foreground operation. she stays right there in your terminal, watching. ๐Ÿ‘€
  • -s โ€” disable multi-threaded operation. one thing at a time, she's a single-task girly (by request). ๐Ÿ™ˆ

๐ŸŒˆ SaunaFS options

  • -c CFGFILE, -o sfscfgfile=CFGFILE โ€” loads a file with extra mount options. your lil cheat sheet. ๐Ÿ“
  • -m, --meta, -o sfsmeta โ€” mounts the SFSMETA companion filesystem instead of the primary SaunaFS one. this is how you get to hang with trashed and reserved files. (peep the NOTES bestie) ๐Ÿ’€
  • -n, --nostdopts โ€” omits the default mount options (-o allow_other,default_permissions). same energy as -o nostdmountoptions. ๐Ÿšซ
  • --nonempty โ€” allows mounts over a non-empty file/dir. same as -o nonempty. ๐Ÿซถ
  • -p, -o askpassword โ€” prompts you for a password. it's the interactive version of -o sfspassword=PASS. ๐Ÿ”
  • -H HOST, -o sfsmaster=HOST โ€” connect to the SaunaFS master on HOST (default is sfsmaster). ๐Ÿ“ก
  • -P PORT, -o sfsport=PORT โ€” connect to the SaunaFS master on PORT (default is 9421). ๐Ÿ”Œ
  • -B HOST, -o sfsbind=HOST โ€” the local address to use for connecting with the master instead of the default one. ๐Ÿ 
  • -S PATH, -o sfssubfolder=PATH โ€” mount that specific SaunaFS directory (default is /, aka the whole entire filesystem, all of it, the whole three-course meal). ๐Ÿ“‚
  • -o enablefilelocks=[0,1] โ€” enables/disables global file locking (disabled by default, so like, off unless you say otherwise). ๐Ÿ”’
  • -o sfspassword=PASSWORD โ€” authenticate to the SaunaFS master with PASSWORD. ๐Ÿ—๏ธ
  • -o sfsmd5pass=MD5 โ€” authenticate to the SaunaFS master using a directly given MD5. this one only kicks in if sfspassword isn't specified. ๐Ÿงฎ
  • -o tlsconfigfile=PATH โ€” path to the TLS configuration file for client-side TLS settings. (there is no default value, so if you want TLS, you bring your own file.) ๐Ÿ›ก๏ธ
  • -o sfsdelayedinit โ€” the connection with the master happens in the background. big deal because with this option the mount can be run without network โ€” perfect for being run from fstab / init scripts etc. main character energy for boot sequences. โณ
  • -o sfsacl โ€” enable ACL support (disabled by default). ๐Ÿ“‹
  • -o sfsaclcacheto=SEC โ€” set ACL cache timeout in seconds (default: 1.0). โฑ๏ธ
  • -o sfsaclcachesize=N โ€” define ACL cache size as a number of entries (0: no cache; default: 1000). ๐Ÿ“ฆ
  • -o sfsrwlock=0|1 โ€” when set to 1, parallel reads from the same descriptor are performed (default: 1). ๐Ÿƒโ™€๏ธ๐Ÿƒโ™€๏ธ
  • -o sfsmkdircopysgid=N โ€” whether the sgid bit should be copied during a mkdir operation (on Linux default: 1, otherwise: 0). ๐Ÿงฌ
  • -o sfssugidclearmode=SMODE โ€” set the sugid clear mode (see below). ๐Ÿงน
  • -o sfsdebug โ€” print some SaunaFS-specific debugging information. ๐Ÿž
  • -o sfscachemode=CACHEMODE โ€” set the cache mode (see DATA CACHE MODES; default is AUTO). ๐Ÿ—‚๏ธ
  • -o sfsattrcacheto=SEC โ€” set attributes cache timeout in seconds (default: 1.0). โฒ๏ธ
  • -o sfsentrycacheto=SEC โ€” set file entry cache timeout in seconds (default: 0.0, i.e. no cache). ๐Ÿ™…โ™€๏ธ
  • -o sfsdirentrycacheto=SEC โ€” set directory entry cache timeout in seconds (default: 1.0). ๐Ÿ“
  • -o sfswritecachesize=N โ€” specify write cache size in MiB (in range: 16..2048 โ€” default: 128). โœ๏ธ
  • -o sfschunkserverwavewriteto=MSEC โ€” set timeout for executing each wave of a write operation, in milliseconds (default: 50). ๐ŸŒŠ
  • -o sfscacheperinodepercentage=N โ€” specify what part of the write cache, when it's not occupied by other inodes, a single inode can occupy (measured in %). E.g. When N=75 and the inode X uses 10 MiB, and all other inodes use 20 MiB out of 100 MiB cache, X can use 50 MiB more (since 75% of 80 MiB is 60 MiB). Default: 25. ๐Ÿฐ
  • -o sfschunkserverreadto=MSEC โ€” set timeout for the whole communication with a chunkserver during a read operation, in milliseconds (default: 2000). ๐Ÿ“–
  • -o sfschunkserverwriteto=MSEC โ€” set chunkserver response timeout during a write operation, in milliseconds (default: 5000). ๐Ÿ“
  • -o sfschunkserverrtt=MSEC โ€” set the timeout after which a SYN packet is considered lost during the first retry of connecting a chunkserver (default: 200). ๐Ÿ“ถ
  • -o sfschunkserverconnectreadto=MSEC โ€” set timeout for connecting with chunkservers during a read operation, in milliseconds (default: 2000). ๐Ÿค
  • -o sfschunkserverwavereadto=MSEC โ€” set timeout for executing each wave of a read operation, in milliseconds (default: 500). ๐ŸŒŠ
  • -o sfschunkservertotalreadto=MSEC โ€” set timeout for the whole communication with chunkservers during a read operation, in milliseconds (default: 2000). โณ
  • -o cacheexpirationtime=MSEC โ€” set the timeout for read cache entries to be considered valid, in milliseconds. 0 disables the cache (default: 1000). โŒ›
  • -o readbuffersexpirationtime=MSEC โ€” set the timeout for read cache buffers to expire. Read buffers get recycled among read operations to save on allocating and deallocating that memory. Those buffers get held aside for this amount of milliseconds before being released (default: 1000). โ™ป๏ธ
  • -o readaheadmaxwindowsize=KB โ€” set the max value of the readahead window per single descriptor, in kibibytes (default: 16384). ๐Ÿ”ญ
  • -o readcachemaxsizepercentage=P โ€” set the percentage of system memory used for the max value of the read cache size (default: 60%). ๐Ÿง 
  • -o readworkers=N โ€” define the number of read workers (default: 30). ๐Ÿ‘ทโ™€๏ธ
  • -o maxreadaheadrequests=N โ€” define the number of readahead requests per inode (default: 2). ๐Ÿ”ข
  • -o sfsrlimitnofile=N โ€” try to change the limit of simultaneously opened file descriptors on startup (default: 100000). ๐Ÿ—ƒ๏ธ
  • -o sfsnice=LEVEL โ€” try to change the nice level to the specified value on startup (default: -19). ๐Ÿ˜‡
  • -o sfswriteworkers=N โ€” define the number of write workers (default: 10). ๐Ÿ‘ท
  • -o sfswritewindowsize=N โ€” define the write window size (in blocks) for each chunk (default: 15). ๐ŸชŸ
  • -o sfsmemlock โ€” try to lock memory (must be enabled at build time, so it's a build-time situationship). ๐Ÿ”
  • -o sfsdonotrememberpassword โ€” do not remember the password in memory โ€” more secure, BUT when the session is lost then a new session is created without a password. tradeoffs bestie. โš ๏ธ
  • -o sfsioretries=N โ€” specify the number of retries before an I/O error is returned (default: 30). ๐Ÿ”
  • -o sfsreportreservedperiod=N โ€” specify the interval for reporting reserved inodes, in seconds (default: 30). ๐Ÿ“…
  • -o sfsiolimits=PATH โ€” specify the local I/O limiting configuration file (default: no I/O limiting). ๐Ÿšฆ
  • -o symlinkcachetimeout=N โ€” set the timeout value for the symlink cache timeout, in seconds. Default value is 3600. ๐Ÿ”—
  • -o bandwidthoveruse=N โ€” define the ratio of allowed bandwidth overuse when fetching data. Default value is 1.0. This option is effective only with N+M goals (erasure codes). ๐Ÿ“ˆ
  • -o nostdmountoptions โ€” equivalent to the --nostdopts (-n) option, for use in fstab. ๐Ÿ“œ
  • -o nonempty โ€” equivalent to the --nonempty option, for use in fstab. ๐Ÿ“œ
  • -o sfsuseinodebasedwritealgorithm=0|1 โ€” use the inode based write algorithm when set to 1. use the chunk based write algorithm when set to 0. though the chunk based algorithm is faster in most cases, the inode based algorithm may prove useful in some scenarios (default: 0). โš–๏ธ
  • -o sfsignoreflush=0|1 โ€” Advanced: use with caution. ignore the usual behaviour of flush by replying SUCCESS to it immediately. targets fast creation of small files, but it may cause data loss during crashes when allegedly flushed data is still being processed (default: 0). ๐Ÿ’€๐Ÿ”ฅ
okay bestie, for real, that one above? sfsignoreflush? that's the "she's beauty, she's grace, she will lose your data" option. read the warning. respect the warning. ๐Ÿ™
  • -o sfsdirectio=0|1 โ€” whether to use FUSE DirectIO. this may improve performance when reading large files under certain conditions. ๐Ÿš€
  • -o limitglibcmallocarenas=N โ€” Linux only: limit glibc malloc arenas to the given value โ€” prevents using a huge amount of virtual memory. this can influence performance by reducing memory fragmentation and improving cache locality, but it may also lead to contention and reduced parallelism in multi-threaded applications. use it in constrained memory environments, recommended values are 4 or 8. (default is 0: disabled or let glibc decide). ๐Ÿงต
  • -o malloctrimperiod=MSEC โ€” Linux only: call malloc_trim on a periodical basis โ€” prevents using a huge amount of virtual memory by returning already freed memory to the OS. this can influence performance by increasing memory fragmentation and worsening cache locality. use it in constrained memory environments, recommended values are 300 or 1000. minimum value is 100 to avoid excessive calls to malloc_trim. (default is 0: disabled periodic trimming). ๐Ÿงฝ
  • -o sfslognotificationarea=0|1 โ€” enable/disable logging to the Linux notification area (default: 0). ๐Ÿ””
  • -o sfsmessagesuppressionperiod=N โ€” set the period of message suppression, in seconds, for logging on the notification area (default: 10). ๐Ÿคซ
  • -o statfscachetimeout=MSEC โ€” set the statfs cache timeout in milliseconds. when equal to 0 the cache is disabled (default: 0). ๐Ÿ“Š
  • -o usequotainvolumesize=0|1 โ€” when set to 1, use the user and group specific quota hard limit to calculate the volume size (default: 0). ๐Ÿงพ
  • -o maxwaitretrytime=SECS โ€” set the maximum wait time, in seconds, for retrying a master server communication attempt, in seconds (default: 10). โฐ
  • -o mastercommsleeptimedivisor=N โ€” specify the number of retry attempts between each increase of the master-communication sleep interval. the client starts with a 1 second pause and adds 1 second every N retries, up to the maxwaitretrytime limit. when reconnecting, the client makes up to sfsioretries attempts, applying the computed pause at each zero-based retry. for example, with mastercommsleeptimedivisor=2, maxwaitretrytime=3 and sfsioretries=10 the sleep intervals are: try 0 โ†’ 1 s, try 1 โ†’ 1 s, try 2 โ†’ 2 s, try 3 โ†’ 2 s, try 4 โ†’ 3 s, then 3 s for all subsequent retries until reaching the last retry counter index, which would be try 9 (default: 3). ๐Ÿ˜ด

๐Ÿ’ซ General mount options (see mount(8) manual)

  • -o rw | -o ro โ€” mount the file-system in read-write (default) or read-only mode respectively. โœ๏ธ / ๐Ÿ”
  • -o suid | -o nosuid โ€” enable or disable suid/sgid attributes to work. ๐Ÿชช
  • -o dev | -o nodev โ€” enable or disable character or block special device files interpretation. ๐ŸŽ›๏ธ
  • -o exec | -o noexec โ€” allow or disallow execution of binaries. โ–ถ๏ธ

okay we are not done yet, there's more of this page coming, so don't go anywhere bestie ๐Ÿ’–

โœจ DATA CACHE MODES โœจ

bestie there are three cache modes and they are NO, YES and AUTO ๐Ÿ’– The default option is AUTO and you genuinely should not change it unless you really know what you are doing, like, actually know. In AUTO mode the data cache is managed automatically by sfsmaster and it justโ€ฆ handles it. queen behavior ๐Ÿ‘‘

  • NO, NONE or NEVER โ€” never allow files data to be kept in cache (safest but can reduce efficiency) ๐Ÿ›ก๏ธ
  • YES or ALWAYS โ€” always allow files data to be kept in cache (dangerous) ๐Ÿ’€
  • AUTO โ€” file cache is managed by sfsmaster automatically (should be very safe and efficient) ๐ŸŒŸ

๐ŸŽ€ SUGID CLEAR MODE ๐ŸŽ€

okay so SMODE can be set to:

  • NEVER - SFS will not change suid and sgid bit on chown
  • ALWAYS - clear suid and sgid on every chown - safest operation
  • OSX - standard behavior in OS X and Solaris (chown made by unprivileged user clear suid and sgid)
  • BSD - standard behavior in BSD systems (like in OSX, but only when something is really changed)
  • EXT - standard behavior in most file systems on Linux (directories not changed, others: suid cleared always, sgid only when group exec bit is set)
  • SFS - standard behavior in SFS on Linux (like EXT but directories are changed by unprivileged users)

๐Ÿ’… SMODE extra info ๐Ÿ’…

btrfs, ext2, ext3, ext4, hfs[+], jfs, ntfs and reiserfs on Linux work as EXT.

Only sfs on Linux works a little different. Beware that there is a strange operation - chown(-1,-1) which is usually converted by a kernel into something like chmod ug-s, and therefore can't be controlled by SFS as chown ๐Ÿ˜ญ


๐ŸŒธ FSTAB ๐ŸŒธ

You can define your /etc/fstab SaunaFS share like this:

saunafs-master:/ /mnt/sauna default 0 0

๐Ÿฆ‹ REPORTING BUGS ๐Ÿฆ‹

Report bugs to the GitHub repository https://github.com/leil-io/saunafs as an issue. (yes bestie, they want the issues filed there, not slid into anyone's DMs ๐Ÿซถ)


โญ NOTES โญ

The metadata mount point has two directories available: trash and reserved. ๐Ÿ‘‘

In trash you can see files that have been deleted but are still being kept in master trash. You can undelete them by moving the files into trash/undel, and delete permanently by deleting them again. โœจ

There is a bug with this though. See BUGS for more details. ๐Ÿ™ˆ


๐Ÿ’€ BUGS ๐Ÿ’€

Due to a limit in the protocol, the metadata mount point can at most return the first 1 million trash/reserved files. To see more, you will need to either delete or undelete the existing files. Older versions of master (4.9.0 or earlier) will crash when reading a lot of files in trash/reserved. After more than 1 million files in trash/reserved, it becomes unsafe to read trash on those versions.

This limit was fixed and removed in master and sfsmount version 5.3.0. ๐ŸŽ‰


Copyright 2008-2009 Gemius SA

Copyright 2013-2019 Skytechnology sp. z o.o.

Copyright 2023-2024 Leil Storage Oรœ

SaunaFS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3.

SaunaFS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with SaunaFS. If not, see http://www.gnu.org/licenses/.


๐ŸŒˆ SEE ALSO ๐ŸŒˆ

sfsmaster(8) sfs(7), mount(8)


and that's the whole page bestie, we ate and left absolutely no crumbs ๐Ÿ’… this version is dated 2026-07-29 and it's from SFSMOUNT(1) โ€” go mount something iconic, ily ๐Ÿซถ๐Ÿ’–โœจ

๐Ÿ“ฆ where this page comes from