mfschunkserver.cfg(5)

πŸ’– mfschunkserver.cfg πŸ’–

okay bestie, this is mfschunkserver.cfg from section 5 of the manual, and it's the main configuration file for mfschunkserver in MooseFS. yes, the whole vibe of your chunkserver lives in here. let's get into it 🫢


✨ DESCRIPTION ✨

The file mfschunkserver.cfg contains the configuration of the MooseFS chunkserver process. that's it, that's the whole thing β€” it's lowkey the personality file for your chunkserver πŸ’…


πŸŽ€ SYNTAX πŸŽ€

The syntax is literally just this:

OPTION = VALUE

Lines starting with # are ignored as comments. iconic. so simple, so clean.

🌸 STARTUP OPTIONS 🌸

heads up bestie: changes in this section require a full process restart. not a reload, a restart. no shortcuts πŸ’€
  • WORKING_USER β€” the user to run the daemon as.
  • WORKING_GROUP β€” the group to run the daemon as. this one's optional β€” if it's empty, the default user group gets used instead.
  • SYSLOG_IDENT β€” the name of the process that shows up in syslog messages. default is mfschunkserver.
  • LOCK_MEMORY β€” whether to perform mlockall() so the mfschunkserver process doesn't get swapped out. default is 0, aka no.
  • LIMIT_GLIBC_MALLOC_ARENAS β€” limit malloc arenas to the value you give, which stops the server from eating a huge amount of virtual memory (Linux only, default is 4).
  • DISABLE_OOM_KILLER β€” disable the out of memory killer (Linux only, default is 1).
  • NICE_LEVEL β€” the nice level to run the daemon with. default is -19. note: the process has to be started as root to increase priority, and if setting the priority fails, the process just keeps the nice level it started with. πŸ™ˆ
  • FILE_UMASK β€” sets the default umask for group and others (the user always gets 0, no exceptions). default is 027 β€” blocks write for group and blocks everything for others.
  • DATA_PATH β€” where to store the daemon lock file.
  • ALLOW_STARTING_WITH_INVALID_DISKS β€” when set to one, the chunkserver will not abort startup even when incorrect entries are found in the mfshdd.cfg file. default is 0 β€” meaning don't start with invalid entries. queen of boundaries, honestly.
  • CAN_USE_MMAP β€” using mmap for allocation can slightly reduce RAM usage and give a slight performance boost, but on certain architectures/kernels it can lead to problems β€” especially on architectures with more than one physical CPU. default is 0. > proceed with caution bestie, this one's giving risky πŸ’€

πŸ’… RUNTIME OPTIONS πŸ’…

good news: changes in this section only need a process reload. much more chill ✨

  • HDD_CONF_FILENAME β€” alternate location/name of the mfshdd.cfg file.
  • HDD_TEST_SPEED β€” the speed of background chunk tests, in MB/s per disk (and yes, formally this entry is defined in mfshdd.cfg). the value can be given as a decimal number; default is 1.0.
  • HDD_MIN_TEST_INTERVAL β€” stops chunk integrity testing when the last I/O (test included) happened less than HDD_MIN_TEST_INTERVAL ago. default is 1 day. for value formatting, see the TIME section below ⏰
  • HDD_FADVISE_MIN_TIME β€” if possible, use posix_fadvise(POSIX_DONTNEED) after each chunk test β€” but only if the last I/O operation happened more than HDD_FADVISE_MIN_TIME ago. using zero will always perform posix_fadvise (flush cache), and using a negative value will never flush cache after tests. this setting is valid only for systems that support posix_fadivise. default is 1 day; for value formatting see TIME.
  • HDD_LEAVE_SPACE_DEFAULT β€” how much space should be left unused on each hard drive. number format: [0-9]*([.][0-9]*)?([kMGTPE]|[KMGTPE]i)?B? ; default is 256MiB; examples: 0.5GB, .5G, 2.56GiB, 1256M etc.
  • HDD_REBALANCE_UTILIZATION β€” the percent of total work time the chunkserver is allowed to spend on hdd space rebalancing. default is 20.
  • HDD_HIGH_SPEED_REBALANCE_LIMIT β€” maximum simultaneous writes per disk in high speed disk rebalance (0 means use standard rebalance; default is 0).
  • HDD_ERROR_TOLERANCE_COUNT, HDD_ERROR_TOLERANCE_PERIOD β€” how many i/o errors (COUNT) to tolerate in a given amount of seconds (PERIOD) on a single hard drive. if the number of errors exceeds this setting, the offending hard drive gets marked as damaged. defaults are 2 and 600.
  • HDD_FSYNC_BEFORE_CLOSE β€” enables/disables fsync before chunk closing. default is 0 (off).
  • HDD_SPARSIFY_ON_WRITE β€” enables/disables sparsification (skipping leading and trailing zeroz) while writing a new block. default is 1 (on).
  • HDD_RR_CHUNK_COUNT β€” how many chunks should be created in one directory before moving on to the next one. higher values are better with most OSes' caching algorithms, low values lead to more even chunk distribution. default is 10000, which works best in most cases πŸ‘‘
  • HDD_KEEP_DUPLICATES_HOURS β€” how many hours duplicate chunks should be kept before deleting (default is one week). changing this value and reloading will reset the counter. for value formatting see TIME.
  • WORKERS_MAX, WORKERS_MAX_IDLE β€” maximum number of active workers and maximum number of idle workers. defaults are 250 and 40.
  • SYSLOG_MIN_LEVEL β€” the minimum level of messages that will be reported by the chunkserver. levels in order of importance: ERROR, WARNING, NOTICE, INFO, DEBUG (default is INFO).
  • SYSLOG_ELEVATE_TO β€” reported messages of a level lower than what's set here get elevated up to this level. (like, if SYSLOG_MIN_LEVEL is DEBUG and SYSLOG_ELEVATE_TO is NOTICE, then all INFO and DEBUG messages get sent to syslog as NOTICE.) default is NOTICE.

πŸ¦‹ MASTER CONNECTION OPTIONS πŸ¦‹

another reload-only section, we love that for us πŸ’–

  • LABELS β€” labels string defined as a set of letters (case insensitive) separated by coma or semicolon; default is empty β€” no labels.
  • BIND_HOST β€” the local address to use for master connections. default is *, i.e. the default local address.
  • MASTER_HOST β€” the MooseFS master host. an IP is allowed only in single-master installations; default is mfsmaster.
  • MASTER_PORT β€” the MooseFS master command port; default is 9420.
  • MASTER_CONTROL_PORT β€” (pro only) the MooseFS master control port; default is 9419.
  • MASTER_TIMEOUT β€” timeout in seconds for master connections (if not 0). if this value is zero, the chunkserver initially sets it to 10 and asks the master for this value. default is 0 (ask master).
  • MASTER_RECONNECTION_DELAY β€” delay in seconds before trying to reconnect to the master after a disconnection (default is 5).
  • AUTH_CODE β€” authentication string (used only when the master requires authorization).
  • CHUNKS_PER_REGISTER_PACKET β€” maximum number of chunks the system will try to put in a single register message (default is 1000, limits 100-10000).

🌈 CLIENTS CONNECTION OPTIONS 🌈

reload only, again. we stay winning ✨

  • CSSERV_LISTEN_HOST β€” the IP address to listen on for client (mount) connections (* means any).
  • CSSERV_LISTEN_PORT β€” the port to listen on for client (mount) connections (default is 9422).

⭐ NOTES ⭐

⏰ TIME ⏰

ok so for config variables that define time without requiring a single, specific unit, time can be defined as a number of seconds (integer) or a time period in one of two possible formats:

  • first format: #.#T where T is one of: s-seconds, m-minutes, h-hours, d-days or w-weeks. fractions of seconds will be rounded to full seconds.
  • second format: #w#d#h#m#s. any number of definitions can be omitted, but the remaining definitions must be in order (so #d#m is still a valid definition, but #m#d is not). ranges: s,m: 0 to 59, h: 0 to 23, d: 0 to 6, w is unlimited and the first definition is also always unlimited (i.e. for #d#h#m, d will be unlimited).
Notice! For the variable HDD_KEEP_DUPLICATES_HOURS only h, d and w time units are accepted, and a value without a time unit is treated as hours; fractions are rounded to full hours. 🫢

Examples:

1.5h is the same as 1h30m, is the same as 90m, is the same as 5400s, is the same as 5400

2.5d is the same as 2d12h, is the same as 60h; 1d36h is not a valid time period (h is not the first definition, so it is bound by range 0 to 23)

1.03m is the same as 62s (61.8 seconds will be rounded up to 62)

Copyright (C) 2026 Jakub Kruszona-Zawadzki, Saglabs SA

This file is part of MooseFS.

MooseFS 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 2 (only).

MooseFS 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 this program; if not, see <https://www.gnu.org/licenses/>.


πŸ”₯ SEE ALSO πŸ”₯


and that's the whole page bestie πŸŽ€ this was MooseFS 4.59.2-1, from May 2026 β€” go configure something iconic, you've got this πŸ’œπŸ¦‹βœ¨

πŸ“¦ where this page comes from