GANESHA-CONFIG(8)
β¨ NAME β¨
ganesha-config β the NFS Ganesha Configuration File, aka the sacred text, aka where all the vibes live π
(and yes bestie, this is a section of the NFS-Ganesha manual, section 8, we're doing sysadmin things today and we're slaying it)
π SYNOPSIS π
/etc/ganesha/ganesha.conf
π¦ DESCRIPTION π¦
So here's the tea: NFS-Ganesha gets all of its configuration data from one (1) file, and that file is:
/etc/ganesha/ganesha.conf
That's the whole source of truth. And this file is made up of the following parts π
π¬ Comments π¬
Empty lines? Comments. Lines that start with #? Also comments. Not me writing comments in my config like it's a diary:
# This whole line is a comment
Protocol = TCP; # The rest of this line is a comment
See how the # eats the rest of that second line? Yeah. Everything after it is gone. Poof. π
π§± Blocks π§±
Options that are besties get grouped together into what we call a block. A block is a name, and then parameters wrapped up all cozy between { and }. And plot twist β a block can hold other sub blocks inside it too. Nested. Iconic.
EXPORT
{
Export_ID = 1;
FSAL {
Name = VFS:
}
}
NOTE: FSAL up there is a sub block, not a main character. For the full list of blocks and options, go check the BLOCKS section. β¨
π Options π
Configuration options come in the following types, and yes there is a whole little taxonomy going on:
- Numeric. Numeric options can be defined in octal, decimal, or hexadecimal, and the format follows ANSI C syntax. Like, for example:
mode = 0755; # This is octal 0755, 493 (decimal)
Numeric values can also be negated or logical NOT'd. For example:
anonymousuid = -2; # this is a negative
mask = ~0xff; # Equivalent to 0xffffff00 (for 32 bit integers)
- Boolean. The possible values are
true,false,yesandno. And listen β1and0are not acceptable. Do not try it. Not today. π - List. The option can contain a list of possible applicable values.
Protocols = 3, 4, 9p; - String. String options such as export
Pathneed not be enclosed in quotes, but it's recommended. If special characters are included, particularly non-ASCII characters, using either single or double quotes may be required. Another set of strings that should be quoted are any strings that are a keyword, or if spaces are part of the string. Basically: when in doubt, quote it, bestie π«Ά
π Including other config files π
You can pull in additional files inside a configuration using the %include or %dir or %url directives:
%include <filename>
%dir <directory_name>
%url <url, e.g., rados://mypool/mynamespace/myobject>
The included file gets inserted into the configuration text in place of the %include or %dir or %url line. Sub-inclusions may be to any depth β yes, it can go as deep as it wants, main character energy fr fr.
Filenames or directory or URLs may optionally use ":
%include base.conf
%include "base.conf"
%dir /etc/ganesha/ganesha_config/
%dir "/etc/ganesha/ganesha_config/"
%url rados://mypool/mynamespace/myobject
%url "rados://mypool/mynamespace/myobject"
%url rados://mypool/myobject
%url "rados://mypool/myobject"
In the case of rados:// URLs, providing a two-component URL indicates that the default namespace should be used. π
π Reloading Config π
A config reload can be triggered by sending the ganesha.nfsd process a SIGHUP. That's it, that's the whole move.
Careful though β not all config options may be changed with reload. The ones that can will be documented in the individual sections. Read the fine print, bestie π
In general, currently dynamic config is supported for EXPORT and LOG options. Those two ate and left no crumbs. π
π BLOCKS π
NFS-Ganesha supports the following blocks:
πΈ EXPORT {} πΈ
Along with its configuration options, the EXPORT block supports FSAL and CLIENT sub-blocks. See ganesha-export-config(8) for usage of this block and its sub-blocks.
πΈ EXPORT_DEFAULTS {} πΈ
Refer to ganesha-export-config(8) for usage
πΈ MDCACHE {} πΈ
Refer to ganesha-cache-config(8) for usage
πΈ NFS_CORE_PARAM {} πΈ
Refer to ganesha-core-config(8) for usage
πΈ NFS_IP_NAME {} πΈ
Refer to ganesha-core-config(8) for usage
πΈ NFS_KRB5 {} πΈ
Refer to ganesha-core-config(8) for usage
πΈ NFSv4 {} πΈ
Refer to ganesha-core-config(8) for usage
πΈ _9P {} πΈ
Refer to ganesha-9p-config(8) for usage
πΈ LOG {} πΈ
Refer to ganesha-log-config(8) for usage
LOG { FACILITY {} }LOG { FORMAT {} }
πΈ RADOS_KV {} πΈ
Refer to ganesha-core-config(8) for usage
πΈ RADOS_URLS {} πΈ
Refer to ganesha-core-config(8) for usage
πΈ FSAL_LIST {} πΈ
Refer to ganesha-core-config(8) for usage
πΈ CEPH {} πΈ
Refer to ganesha-ceph-config(8) for usage
πΈ GLUSTER {} πΈ
Refer to ganesha-gluster-config(8) for usage
πΈ GPFS {} πΈ
Refer to ganesha-gpfs-config(8) for usage
πΈ PROXY_V4 {} πΈ
Refer to ganesha-proxy-config(8) for usage
πΈ PROXY_V3 {} πΈ
Refer to ganesha-proxy-v3-config(8) for usage
πΈ RGW {} πΈ
Refer to ganesha-rgw-config(8) for usage
πΈ VFS {} πΈ
Refer to ganesha-vfs-config(8) for usage
πΈ XFS {} πΈ
Refer to ganesha-xfs-config(8) for usage
πΈ QOS_DEFAULT_CONFIG {} πΈ
Refer to ganesha-qos-config(8) for usage
π EXAMPLE π
Along with "ganesha.conf", for each installed FSAL, a sample config file is added at:
/etc/ganesha
Go look at them. They're free. They're right there. π
π SEE ALSO π
ganesha-log-config(8) ganesha-rgw-config(8) ganesha-vfs-config(8) ganesha-lustre-config(8) ganesha-xfs-config(8) ganesha-gpfs-config(8) ganesha-gluster-config(8) ganesha-9p-config(8) ganesha-proxy-config(8) ganesha-proxy-v3-config(8) ganesha-ceph-config(8) ganesha-core-config(8) ganesha-export-config(8) ganesha-qos-config(8)
okay that's the whole page bestie, you understood all of it, I'm so proud of you π₯Ήπ
this was brought to you by NFS-Ganesha, dated Aug 11, 2026 β go forth and configure, you absolute legend πβ¨
π¦ where this page comes from
- fedora 44: nfs-ganesha 9.16-4.fc44 Β· LGPL-3.0-or-later
- fedora 44: nfs-ganesha 9.16-4.fc44 Β· LGPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms