SFSCHUNKSERVER.CFG(5)
๐ SFSCHUNKSERVER.CFG(5) ๐
okay bestie, so this is the glow-up guide for sfschunkserver.cfg(5) โ yes, that's the section 5 of the manual, we're in file-formats territory, very chic, very technical girlie. pull up a chair, grab a strawberry ๐, and let's get into it.
โจ NAME โจ
sfschunkserver.cfg โ the main configuration file for sfschunkserver ๐
like, THE config file. the one that matters. the main character. everything else is a side plot fr fr.
๐ธ DESCRIPTION ๐ธ
so the file sfschunkserver.cfg contains the configuration of the SaunaFS chunkserver process. that's it, that's the whole vibe โ this file is where you tell your chunkserver how to live its life. ๐
๐ SYNTAX ๐
the syntax is, and I quote, so simple:
OPTION = VALUE
that's the whole thing. OPTION, equals sign, VALUE. no cap, that's iconic.
also, super important bestie: lines that start with the # character are ignored. so go ahead and leave yourself little love notes in there, the chunkserver will just scroll right past them ๐
tl;dr โ # at the start of the line = ignored. that's your comment escape hatch.
โจ OPTIONS โจ
Okay bestie, this is the big one โ the full config menu for your chunkserver. Every knob, every default, every little "please don't touch unless you know what you're doing" warning. Configuration options, let's go. ๐
DATA_PATHโ the spot where files with usage statistics and the daemon lock file live. ๐๏ธLABELโ the label of this chunkserver. It's for tiering, bestie. ๐ท๏ธWORKING_USERโ the user to run the daemon as. ๐คWORKING_GROUPโ group to run daemon as. It's optional โ if it's empty, then the default user group gets used. ๐ซถSYSLOG_IDENTโ the name of the process that goes into syslog messages. Default issfschunkserver. ๐LOCK_MEMORYโ whether to performmlockall()to avoid swapping out thesfschunkserverprocess. Default is0, i.e. no. ๐LIMIT_GLIBC_MALLOC_ARENASโ Linux only, bestie: limit glibc malloc arenas to the given value. It 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 are4or8. Default is0: disabled or let glibc decide. ๐งMALLOC_TRIM_INTERVALโ interval in seconds at which the chunkserver will attempt to release unused memory back to the OS usingmalloc_trim(). This can help reduce the process's memory footprint by returning free memory to the system more frequently. Set to0to disable memory trimming entirely. Default is0,0= disabled. ๐งนNICE_LEVELโ nice level to run the daemon with. Default is-19if possible. Note: process must be started as root to increase priority. โกMASTER_HOSTโ address of the SaunaFS master host to connect with. Default issfsmaster. ๐MASTER_PORTโ number of the SaunaFS master port to connect with. Default is9420. ๐CLUSTER_IDโ only connect to metadata servers with thisCLUSTER_ID. Prevents accidental connections to the wrong metadata servers. Default isdefault. ๐ซMASTER_RECONNECTION_DELAYโ delay in seconds before trying to reconnect to the master server after disconnection. Default is5. โณMASTER_TIMEOUTโ timeout (in seconds) for the master server connection. Default is60, minimum is0.01. โMASTER_NR_OF_WORKERSโ number of threads that the connection to master may use to process operations on chunks, like create, duplicate, replicate and truncate. Default is10, minimum is2. ๐งตMASTER_REPLICATION_NR_OF_WORKERSโ number of threads that the connection to master may use to process replications operations on chunks. Default is5, minimum in1. ๐งตโจBIND_HOSTโ local address to use for connecting with the master server. Default is*, i.e. default local address. ๐CSSERV_LISTEN_HOSTโ IP address to listen on for client (mount) connections.*means any. ๐CSSERV_LISTEN_PORTโ port to listen on for client (mount) connections. Default is9422. ๐ชHDD_CONF_FILENAMEโ alternative name of thesfshdd.cfgfile. ๐HDD_LEAVE_SPACE_DEFAULTโ free space threshold to set volume as100%utisaued when there is less than the given amount of free space left. Default is"4GiB". This number is always added to the used disk space reported by chunkserver. ๐พHDD_TEST_FREQโ chunk test period in seconds. Default is10. ๐งชHDD_CHECK_CRC_WHEN_READINGโ whether to check the CRC on every read operation. Default is1. ๐HDD_CHECK_CRC_WHEN_WRITINGโ whether to check the CRC on every write operation. The safest and recommended value is1; disable it only to test maximum throughput. Default is1. โ๏ธHDD_ADVISE_NO_CACHEโ whether to remove each chunk from page when closing it to reduce cache pressure generated by chunkserver. Default is0, i.e. no. ๐งHDD_PUNCH_HOLESโ if enabled, then chunkserver detects zero values in chunk data and frees corresponding file blocks (decreasing file system usage). This option works only on Linux with file systems supporting punching holes (XFS,ext4,Btrfs,tmpfs). ๐ณ๏ธENABLE_LOAD_FACTORโ if enabled, chunkserver will send periodical reports of its I/O load to master, which will be taken into consideration when picking chunkservers for I/O operations. ๐REPLICATION_BANDWIDTH_LIMIT_KBPSโ limit how many kilobytes can be replicated from other chunkservers to this chunkserver in every second. By default undefined, i.e. no limits. ๐ฆNR_OF_NETWORK_WORKERSโ number of threads which handle (in a round-robin manner) connections with clients. Default is4; these threads are responsible for reading from sockets and coping data from internal buffers to sockets. ๐NR_OF_HDD_WORKERS_PER_NETWORK_WORKERโ number of threads that each network worker may use to do disk operations like opening chunks, reading or writing them. Default is16. ๐ฝBGJOBSCNT_PER_NETWORK_WORKERโ maximum number of jobs that each network worker may use for disk operations. Default is4000. ๐POLL_TIMEOUT_MSโ maximum amount of time in milliseconds that the polling operation will wait for events. In the chunkservers, the same value is applied for the events loop and for the network worker threads. Smaller values could reduce latency at the cost of CPU usage. Default:50. โฑ๏ธMAX_BLOCKS_PER_HDD_WRITE_JOBโ maximum number of blocks written to the device in a single write job. If possible, will try to make a singlepwritecall. Default is16, minimum is1, maximum is64. ๐ฆMAX_BLOCKS_PER_HDD_READ_JOBโ maximum number of blocks read from the device in a single read job. If possible, will try to make a singlepreadcall. Default is16, minimum is1. ๐ฅMAX_PARALLEL_HDD_READ_JOBS_PER_CS_ENTRYโ maximum number of read jobs processed in parallel per client connection. Default is1. ๐งฎMAX_BUFFERS_POOL_SIZE_MBโ maximum size of the buffers pool used for read, write and replicate operations, in megabytes. Consider decreasing it if the system is running out of memory, or increasing it to improve performance if there is enough memory available. Unused buffers are regularly freed. Default is512. ๐งบREAD_AHEAD_KBโ additional number of kilobytes which should be passed toposix_fadvise(POSIX_FADV_WILLNEED)before reading data from a chunk. Default is0, i.e. useposix_fadviseonly with the amount of data that is really needed; the value is aligned down to64 KiB. ๐ฎMAX_READ_BEHIND_KBโ try to fix out-of-order read requests; the value tells how much of skipped data to read if an offset of some read operation is greater than the offset where the previous operation finished. Default is0, i.e. don't read any skipped data; the value is aligned down to64 KiB. ๐PERFORM_FSYNCโ callfsync()after a chunk is modified. Default is1, i.e. enabled. ๐พSTAT_CHUNKS_AT_DISK_SCANโ verify that chunk metadata and data parts exists at scan time. If set to1, the data part is also checked to be multiple ofSFSBLOCKSIZE. Disabling this option accelerates the scan process, but does not check the chunk files. Warning: use it with caution, only in scenarios where a fast chunkserver restart is needed. Default is1, i.e. enabled. โ ๏ธREPLICATION_TOTAL_TIMEOUT_MSโ total timeout for single replication operation. Replications that take longer than that are considered failed and are immediately aborted. Default:60000. โฐREPLICATION_CONNECTION_TIMEOUT_MSโ connection for single replication operation. If connecting to another chunkserver takes longer than this timeout, the operation is considered failed and is immediately aborted. Default:1000. ๐REPLICATION_WAVE_TIMEOUT_MSโ ADVANCED:: timeout for single wave in replication. After this timeout, next wave of read requests is sent to other chunkservers. Default:500. ๐PLUGINS_DIRโ directory to search for Chunkserver plugins (absolute path). When set, the plugin manager will search this directory first. If not set, then it will search in usual plugin locations, likePLUGINS_PATH/chunkserver(PLUGINS_PATHis defined at build time),/usr/local/lib/saunafs/plugins/chunkserver, and/usr/lib/saunafs/plugins/chunkserver. Default is empty string, i.e. disabled. ๐CHUNK_TRASH_ENABLED(EXPERIMENTAL) โ enables or disables the chunk trash feature. When enabled, deleted chunks are moved to a trash directory instead of being immediately removed. Default:0. ๐๏ธCHUNK_TRASH_EXPIRATION_SECONDS(EXPERIMENTAL) โ specifies the timeout in seconds for chunks to remain in the trash before being permanently deleted. Default:259200. โณCHUNK_TRASH_FREE_SPACE_THRESHOLD_GB(EXPERIMENTAL) โ sets the available space threshold in gigabytes. If the available space on the disk falls below this threshold, the system will start deleting older chunks from the trash to free up space. A suggested value is about the15%of the capacity of the smaller configured disk. Default:0. ๐ฝCHUNK_TRASH_GC_BATCH_SIZE(EXPERIMENTAL) โ defines the bulk size for the garbage collector when processing chunks in the trash. This determines how many files are processed in each garbage collection cycle. Default:1000. ๐งนCHUNK_TRASH_GC_SPACE_RECOVERY_BATCH_SIZE(EXPERIMENTAL) โ [ADVANCED] The number of files to remove from the trash in a single GC cycle, in case the disk is full and space needs to be recovered. Default:100. ๐จLOG_LEVELโ setup logging. Uses the environment variableSAUNAFS_LOG_LEVELor config valueLOG_LEVELto determine logging level. Valid log levels are:tracedebuginfowarnorwarningerrorerrorcritorcriticaloff๐
IO_PRIORITY_MODE(EXPERIMENTAL) โ define IO jobs, i.e reads and writes from drives, prioritization scheme. The available modes are:FIFO: prioritizes the IO jobs first enqueued.SWITCH: alternates read and write jobs (interleaving) to prevent one class of IO from starving the other. Not reloadable. Default:FIFO. โ๏ธ
TLS_CERT_FILE(EXPERIMENTAL) โ path to the TLS certificate file the chunk server will use for TLS connections. There is no default value. ๐TLS_KEY_FILE(EXPERIMENTAL) โ path to the TLS private key file the chunk server will use for TLS connections. There is no default value. ๐TLS_CA_CERT_FILE(EXPERIMENTAL) โ path to the trusted CA certificate which is used to authenticate through TLS to the master server. There is no default value. ๐
๐ REPORTING BUGS ๐
Report bugs to the GitHub repository https://github.com/leil-io/saunafs as an issue. ๐ซถ
๐ COPYRIGHT ๐
okay bestie, legal era incoming, but it's actually kinda wholesome so stay with me ๐ซถ
- 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. slay, freedom, periodt. ๐
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. (not me being legally required to yell this at you but also likeโฆ it's true, so ๐)
You should have received a copy of the GNU General Public License along with SaunaFS. If not, see http://www.gnu.org/licenses/. no gatekeeping here, the license link is right there for you babe ๐
๐ธ SEE ALSO ๐ธ
the way that these two are literally the main characters of this whole saga, iykyk ๐
and that's a wrap on the whole SFSCHUNKSERVER.CFG(5) bestie ๐ that was section 5 of the manual, dropped on 2026-07-29 โจ go forth and configure your chunkserver like the icon you are, no cap ๐ฆ๐
๐ฆ where this page comes from
- ubuntu stonking: saunafs-chunkserver 5.8.0-1ubuntu1 ยท GPL-3.0-only
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms