GANESHA-CORE-CONFIG(8)
π GANESHA-CORE-CONFIG(8) β NFS Ganesha Core Configuration File π
β¨ NAME β¨
ganesha-core-config β NFS Ganesha Core Configuration File
π SYNOPSIS π
/etc/ganesha/ganesha.conf
π¦ DESCRIPTION π¦
NFS-Ganesha reads the configuration data from: |
/etc/ganesha/ganesha.conf
This file lists NFS related core config options.
π NFS_CORE_PARAM {} π
Core parameters:
HAProxy_Hosts(host list, empty) β okay bestie, listen up: this is the list of hosts that can serve as HAProxy load balancers/proxies that will use the HAProxy protocol to indicate to Ganesha the actual end client IP address. This parameter may be repeated to extend the list.
Host list entries can take on one of the following forms:
* Match any host @name Netgroup name x.x.x.x/y
IPv4 network address, IPv6 addresses are also allowed
but the format is too complex to show here
wildcarded If the string contains at least one ? or *
character (and is not simply "*"), the string is used
to pattern match host names. Note that [] may also be
used, but the pattern MUST have at least one ? or *
hostname Match a single host (match is by IP address, all
addresses returned by getaddrinfo will match, the
getaddrinfo call is made at config parsing time)
IP address Match a single host
Cluster_Members(address list, empty) β This is the list of IP addresses representing the nodes in a Ganesha cluster. Only individual IPv4 or IPv6 addresses are allowed. no wildcards here, periodt.NFS_Port(uint16, range0toUINT16_MAX, default2049) β Port number used by NFS Protocol. the classic NFS port, iconic.MNT_Port(uint16, range0toUINT16_MAX, default0) β Port number used by MNT Protocol.NLM_Port(uint16, range0toUINT16_MAX, default0) β Port number used by NLM Protocol.Rquota_Port(uint16, range0toUINT16_MAX, default875) β Port number used by Rquota Protocol.NFS_RDMA_Port(uint16, range0toUINT16_MAX, default20049) β Port number used by NFS Over RDMA Protocol.NFS_RDMA_Protocol_Versions(enum list, default[4.0]) β Supported NFS Version for NFS Over RDMA. By default, NFSv3, NFSv4.0, NFSv4.1 & NFSv4.2 are enabled.
Possible values: (NONE, 3, v3, NFS3, NFSv3, 4.0, v4.0, NFS4.0, NFSv4.0, 4.1, v4.1, NFS4.1, NFSv4.1, 4.2, v4.2, NFS4.2, NFSv4.2, ALL)
Monitoring_Addr(IPv4 or IPv6 addr, default0.0.0.0) β The address to which to bind for listening the monitoring port. If not specified, then makes use ofBind_Addrconfig value. cute little fallback vibe.Monitoring_Port(uint16, range0toUINT16_MAX, default9587) β Port number used to export monitoring metrics.Enable_Dynamic_Metrics(bool, defaulttrue) β Whether to create metrics labels on the fly based on client-ip, export name, etc. Provides more debugging information, but significantly reduces performance. Enabled by default for backward compatibility. yes, it costs performance, but it's on by default, iykyk.Enable_Metrics(bool, defaultfalse) β Controls whether metrics collection is enabled, even when theUSE_MONITORINGmacro is defined. This option provides additional flexibility to enable or disable the monitoring module based on configuration, regardless of the compile-time macro setting.Bind_addr(IPv4 or IPv6 addr, default0.0.0.0) β The address to which to bind for our listening port.Interface_Name(string, defaultNULL) β If present, binds all TCP sockets to the specified interface. If not present, has no effect. On systems with mutliple NICs, this option will ensure all TCP traffic goes through a specified interface. yes, "mutliple" is exactly how it's spelled in the source, don't come for me.NFS_Program(uint32, range1toINT32_MAX, default100003) β RPC program number for NFS.MNT_Program(uint32, range1toINT32_MAX, default100005) β RPC program number for MNT.NLM_Program(uint32, range1toINT32_MAX, default100021) β RPC program number for NLM.Drop_IO_Errors(bool, defaultfalse) β For NFSv3, whether to drop rather than reply to requests yielding I/O errors. It results in client retry.Drop_Inval_Errors(bool, defaultfalse) β For NFSv3, whether to drop rather than reply to requests yielding invalid argument errors. False by default and settable withDrop_Inval_Errors.Drop_Delay_Errors(bool, defaultfalse) β For NFSv3, whether to drop rather than reply to requests yielding delay errors. False by default and settable withDrop_Delay_Errors.Plugins_Dir(path, default"/usr/lib64/ganesha") β Path to the directory containing server specific modules.Enable_NFS_Stats(bool, defaulttrue) β Whether to collect performance statistics. By default the performance counting is enabled.Enable_NFS_Statscan be enabled or disabled dynamically viaganesha_stats.Enable_Fast_Stats(bool, defaultfalse) β Whether to use fast stats. If enabled this will skip statistics counters collection for per client and per export.Enable_FSAL_Stats(bool, defaultfalse) β Whether to count and collect FSAL specific performance statistics.Enable_FSAL_Statscan be enabled or disabled dynamically viaganesha_stats.Enable_FULLV3_Stats(bool, defaultfalse) β Whether to count and collect "detailed statistics" for NFSv3.Enable_FULLV3_Statscan be enabled or disabled dynamically viaganesha_stats.Enable_FULLV4_Stats(bool, defaultfalse) β Whether to count and collect "detailed statistics" for NFSv4.Enable_FULLV4_Statscan be enabled or disabled dynamically viaganesha_stats.Enable_CLNT_AllOps_Stats(bool, defaultfalse) β Whether to count and collect statistics for all NFS operations requested by NFS clients.Enable_CLNT_AllOps_Statscan be enabled or disabled dynamically viaganesha_stats.Short_File_Handle(bool, defaultfalse) β Whether to use short NFS file handle to accommodate VMware NFS client. Enable this if you have a VMware NFSv3 client. VMware NFSv3 client has a max limit of 56 byte file handles. VMware said 56 bytes max, so here we are.Manage_Gids_Expiration(int64, range0to7*24*60*60, default30*60) β How long the server will trust information it got by callinggetgroups()when"Manage_Gids = TRUE"is used in a export entry.heartbeat_freq(uint32, range0to5000default1000) β Frequency of dbus health heartbeat in ms.Enable_NLM(bool, defaulttrue) β Whether to support the Network Lock Manager protocol.Disable_NLM_SHARE(bool, defaultfalse) β This option allows disabling support for theNLM4PROC_SHAREandNLM4PROC_UNSHARERPC procedures that implement share reservations for NFSv3 via NLM. With this set to true, these procedures will fail.Blocked_Lock_Poller_Interval(int64, range0to180, default10) β Polling interval for blocked lock polling thread.Protocols(enum list, default[3,4,9P]) β The protocols that Ganesha will listen for. This is a hard limit, as this list determines which sockets are opened. This list can be restricted per export, but cannot be expanded.
Possible values: 3, 4, NFS3, NFS4, V3, V4, NFSv3, NFSv4, 9P
Support for NFS Over RDMA: [3 or 4 or 3,4], nfsrdma, rpcrdma
NSM_Use_Caller_Name(bool, defaultfalse) β Whether to use the supplied name rather than the IP address in NSM operations.Clustered(bool, defaulttrue) β Whether this Ganesha is part of a cluster of Ganeshas. Its vendor specific option.fsid_device(bool, defaultfalse) β Whether to use device major/minor for fsid.fsid_override(bool, defaultfalse) β Whether to use theFilesytem_idspecified in an export definition to override the filesystem ID provided by the underlying filesystem. This enables the ability to export multiple directories from the same underlying filesystem. yes,Filesytem_idis the exact spelling from the source.resolve_fs_retries(uint32_t, range1to1000, default10) β How many times to attempt stat while resolving POSIX filesystems for exports.resolve_fs_delay(uint32_t, range1to1000, default100) β How long to delay between stat attempts while resolving POSIX filesystems for exports.mount_path_pseudo(bool, defaultfalse) β Whether to use Pseudo (true) or Path (false) for NFS v3 and 9P mounts.
This option defaults to false for backward compatibility, however, for new setups, it's strongly recommended to be set true since it then means the same server path for the mount is used for both v3 and v4.x.
Note that as an export related option, it seems very desirable to be able to change this on config reload, unfortunately, at the moment it is NOT changeable on config reload. A restart is necessary to change this. NOT changeable on config reload, bestie. restart required.
Dbus_Name_Prefixβ DBus name prefix. Required if one wants to run multiple ganesha instances on single host. The prefix should be different for every ganesha instance. If this is set, the dbus name will be<prefix>.org.ganesha.nfsdEnable_UDP(list, valid values[False, True, Mount, NLM, RQuota], defaultTrue) β Whether to create UDP listeners for Mount, NFS, NLM, RQUOTA, and register them with portmapper. Set to false, e.g., to run as non-root. Set toMountto enable only Mount UDP listener. Set toRQuotato enable only RQUOTA UDP listener. Multiple values can be combined, e.g.,Mount, RQuotato enable only Mount and RQUOTA UDP listeners.Max_Uid_To_Group_Reqs(uint32, range0toINT32_MAX, default0) β Maximum number of concurrent uid2grp requests that can be made by ganesha. In environments with a slow Directory Service Provider, where users are part of large number of groups, andManage_Gidsis set toTrue, uid2grp queries made by ganesha can fail if a large number of them are made in parallel. This option throttles the number of concurrent uid2grp queries that ganesha makes.Enable_V3fh_Validation_For_V4(bool, defaultfalse) β Set true to enforce when v3 file handle used for v4.Readdir_Res_Size(uint32, range4096to64*1024*1024, default32*1024) β Response size of readdir request. Suggested values are4096,8192,16384and32768. Recommended16384(16K)ifreaddir(ls command)operation performed on directory which has more files.
Readdir_Max_Count (uint32, range 32 to 1024*1024, default 1024*1024) β This is the max number of directory entries you'll get back for a readdir request. Suggested values are 4096, 8192, 16384, and 32768. If you're doing a readdir (like the ls command) on a directory with more files, 16384 (16K) is the recommended vibe. π
Getattrs_In_Complete_Read(bool, defaulttrue) β Whether to call extra getattrs after read, to check file size and validate the EOF flag correctness. This is needed for ESXi client compatibility when FSAL's don't set it correctly. π«ΆEnable_malloc_trim(bool, defaultfalse) β Settrueto enable dynamicmalloc_trimsupport. β¨Malloc_trim_MinThreshold(uint32, range1toINT32_MAX, default15*1024) β Minimum threshold value to callmalloc_trim.malloc_trimgets called once memory allocation exceeds the minimum value. Size is in MBs. Note: this setting has no effect whenEnable_malloc_trimis set tofalse. πenable_rpc_cred_fallback(bool, defaultfalse) β IfManage_Gids=Trueand group resolution fails, then use gid data from the rpc request. π₯Enable_Connection_Manager(bool, defaultfalse) β When enabled, a client (from the same source IP address) is allowed to be connected to a single Ganesha server at a specific point in time. See details inconnection_manager.h. πConnection_Manager_Timeout_sec(uint32, range0toUINT32_MAX, default2*60) β Timeout for waiting until a client is fully disconnected from other Ganesha servers. β³Unique_Server_Id(uint32, range0toUINT32_MAX, default0) β Unique value for the ganesha node, to differentiate it from the rest of the node. It will be used as a prefix for the Client id, to make sure it is unique between ganesha nodes and file write verifier. If0is supplied, server boot epoch time in seconds will be used. π¦Allow_Set_Io_Flusher_Fail(bool, defaultfalse) β In Linux, we need to setPR_SET_IO_FLUSHERto avoid a potential deadlock when mounting ganesha locally in a system that nears out of memory. This is not possible due to lacking permissions in some environments (specifically unprivileged containers). If you are running in an unprivileged environment and you are sure your use case doesn't require settingPR_SET_IO_FLUSHER, you can enable this option and Ganesha will not fail on startup if it can't set it. For more info, see:<https://git.kernel.org/torvalds/p/8d19f1c8e1937baf74e1962aae9f90fa3aeab463>π³Unmonitor_On_Shutdown(bool, defaulttrue) β Iftrue, Ganesha will unmonitor NLM clients on shutdown. This is the historic default. Setting thisfalsewill prevent Ganesha from removing monitoring of NLM clients on shutdown, allowing for the possibility of sendingSM_NOTIFYon restart (if internal statd is used, Ganesha will sendSM_NOTIFYon restart for any NLM clients still monitored). π
β¨ Parameters controlling TCP DRC behavior β¨
DRC_Disabled(bool, defaultfalse) β Whether to disable the DRC entirely. π«DRC_Recycle_Hiwat(uint32, range1to1000000, default1024) β High water mark for number of DRCs in recycle queue. πTCP_Npart(uint32, range1to20, default1) β Number of partitions in the tree for the TCP DRC. π³DRC_TCP_Size(uint32, range1to32767, default1024) β Maximum number of requests in a transport's DRC. π¦DRC_TCP_Cachesz(uint32, range1to255, default127) β Number of entries in the O(1) front-end cache to a TCP Duplicate Request Cache. β‘DRC_TCP_Hiwat(uint32, range1to256, default64) β High water mark for a TCP connection's DRC at which to start retiring entries if we can. π§ΉDRC_TCP_Recycle_Npart(uint32, range1to20, default7) β Number of partitions in the recycle tree that holds per-connection DRCs so they can be used on reconnection (or recycled). β»οΈDRC_TCP_Recycle_Expire_S(uint32, range0to60*60, default600) β How long to wait (in seconds) before freeing the DRC of a disconnected client. β°DRC_TCP_Checksum(bool, defaulttrue) β Whether to use a checksum to match requests as well as the XID. π
π§ Parameters controlling UDP DRC behavior π§
DRC_UDP_Npart(uint32, range1to100, default7) β Number of partitions in the tree for the UDP DRC. π²DRC_UDP_Size(uint32, range512to32768, default32768) β Maximum number of requests in the UDP DRC. π¬DRC_UDP_Cachesz(uint32, range1to2047, default599) β Number of entries in the O(1) front-end cache to the UDP Duplicate Request Cache. β‘DRC_UDP_Hiwat(uint32, range1to32768, default16384) β High water mark for the UDP DRC at which to start retiring entries if we can. π§½DRC_UDP_Checksum(bool, defaulttrue) β Whether to use a checksum to match requests as well as the XID. π
π Parameters affecting the relation with TIRPC π
RPC_Max_Connections(uint32, range1to1000000, default1024) β Maximum number of connections for TIRPC. πRPC_Idle_Timeout_S(uint32, range0to60*60, default300) β Idle timeout (seconds). Defaults to300seconds. π΄MaxRPCSendBufferSize(uint32, range1to1048576*9, default1048576) β Size of RPC send buffer. π€MaxRPCRecvBufferSize(uint32, range1to1048576*9, default1048576) β Size of RPC receive buffer. π₯RPC_Max_RDMA_Connections(uint32, range1to1024, default64) β Maximum number of RDMA connections for TIRPC. Limiting the number of RDMA connections to64by default to avoid memory exhaustion. π§MaxRPCRdmaCredits(uint32, range1to4096, default64) β Max credits of RDMA channel, representing the max number of outstanding NFS operations on the channel. ποΈRPC_Ioq_ThrdMax(uint32, range1to1024*128, default200) β TIRPC ioq max simultaneous io threads. π§΅RPC_GSS_Npart(uint32, range1to1021, default13) β Partitions in GSS ctx cache table. πRPC_GSS_Max_Ctx(uint32, range1to1048576, default16384) β Max GSS contexts in cache. Default16k. ποΈRPC_GSS_Max_Gc(uint32, range1to1048576, default200) β Max entries to expire in one idle check. π§Ό
πΈ Parameters for TCP πΈ
Enable_TCP_keepalive(bool, defaulttrue) β Whether tcp sockets should useSO_KEEPALIVE. πTCP_KEEPCNT(UINT32, range0to255, default0-> use system defaults) β Maximum number of TCP probes before dropping the connection. πTCP_KEEPIDLE(UINT32, range0to65535, default0-> use system defaults) β Idle time before TCP starts to send keepalive probes. π€TCP_KEEPINTVL(INT32, range0to65535, default0-> use system defaults) β Time between each keepalive probe. β±οΈ
π NFS_IP_NAME {} π
Index_Size(uint32, range1to51, default17) β Configuration for hash table for NFS Name/IP map. πΊοΈExpiration_Time(uint32, range1to60*60*24, default3600) β Expiration time for ip-name mappings. β
π¦ NFS_KRB5 {} π¦
PrincipalName(string, default"nfs") β The principal name. πͺͺKeytabPath(path, default"") β Kerberos keytab. πCCacheDir(path, default"/var/run/ganesha") β The ganesha credential cache. ποΈActive_krb5(bool, defaultfalse) β Whether to activate Kerberos 5. The description says it defaults totrue(if Kerberos support is compiled in) β so yes, iconic little contradiction, but we're just reporting it. π
π DIRECTORY_SERVICES {} π
DomainName(string, default"localdomain") β Domain to use if we aren't using thenfsidmap. πIdmapping_Active(bool, defaulttrue) β Whether to enable idmapping. πIdmapped_User_Time_Validity(int64, range-1toINT64_MAX, default-1) β Cache validity in seconds for idmapped-user entries. The default value is-1, which indicates fallback to older config β"NFS_CORE_PARAM.Manage_Gids_Expiration", for backward compatibility. π°οΈIdmapped_Group_Time_Validity(int64, range-1toINT64_MAX, default-1) β Cache validity in seconds for idmapped-group entries. The default value is-1, which indicates fallback to older config β"NFS_CORE_PARAM.Manage_Gids_Expiration", for backward compatibility. π°οΈRoot_Kerberos_Principal(enum list, values[none,nfs,root,host,all], default[all]) β List of primary users/service name parts of the principal that should be assigned root privilege. Setting"all"will assign root privilege to all the options. Setting"none"in the list will override the other options in the list. πCache_Users_Max_Count(uint32, range0toINT32_MAX, defaultINT32_MAX) β Max number of cached idmapped users. π₯Cache_Groups_Max_Count(uint32, range0toINT32_MAX, defaultINT32_MAX) β Max number of cached idmapped groups. π₯Cache_User_Groups_Max_Count(uint32, range0toINT32_MAX, defaultINT32_MAX) β Max number of cached user-groups entries. π₯Negative_Cache_Time_Validity(int64, range0toINT64_MAX, default300) β Cache validity in seconds for negative entries. π«Negative_Cache_Users_Max_Count(uint32, range0toINT32_MAX, default50000) β Max number of negative cache users (the ones that failed idmapping). πNegative_Cache_Groups_Max_Count(uint32, range0toINT32_MAX, default50000) β Max number of negative cache groups (the ones that failed idmapping). πCache_Reaping_Interval(int64, range0to3650*86400, default0) β Cache reaping interval in seconds for idmapped cached entities. Its default value is set to0, which basically means that the cache-reaping is disabled. π§ΉMax_Groups_Membership(uint32, range0toINT32_MAX, default2000) β Max number of groups we allow a user to be a member of. π¨βπ©βπ§βπ¦Pwutils_Use_Fully_Qualified_Names(bool, defaultfalse) β Whether to use fully qualified names for idmapping with pw-utils. π·οΈPwnam_Implementation(enum, default"nsswitch") β The implementation to use for pwnam idmapping.nsswitch: use the system's nsswitch for idmappingsssd: use sssd directly for idmapping
Sssd_Implementation_Timeout(uint32, range0toINT32_MAX, default30) β The timeout to use for each direct to sssd idmapping operations, in seconds. This is effective only when using SSSD pwnam implementation. A value of zero doesn't mean infinity. β³Sssd_Implementation_Skip_Cache(bool, defaultfalse) β Whether to skip SSSD cache when performing SSSD direct idmapping operations. This is effective only when using SSSD pwnam implementation. π«
π NFSv4 {} π
This block is reloaded, however, only one parameter (Enforce_UTF8_Validation) is updated.
Sticky_Grace(bool, defaultfalse) β Whether to disable the sticky grace. π―Graceless(bool, defaultfalse) β Whether to disable the NFSv4 grace period. π«Lease_Lifetime(uint32, range 1 to 120, default 60) β the NFSv4 lease lifetime, bestie. how long a client's lease lasts before it's up for grabs β¨Grace_Period(uint32, range 0 to 180, default 90) β the NFS grace period πDomainName(string, defaultNULL) β okay so this one is deprecated, no cap. useDomainNamein theDIRECTORY_SERVICESconfig section instead π«ΆIdmapConf(path, default"/etc/idmapd.conf") β path to the idmap configuration file πUseGetpwnam(bool, default false if using idmap, true otherwise) β whether to use local password (PAM, on Linux) rather thannfsidmapπΈAllow_Numeric_Owners(bool, default true) β whether to allow bare numeric IDs in NFSv4 owner and group identifiers πOnly_Numeric_Owners(bool, default false) β whether to ONLY use bare numeric IDs in NFSv4 owner and group identifiers πDelegations(bool, default false) β whether to allow delegations πDeleg_Recall_Retry_Delay(uint32_t, range 0 to 10, default 1) β delay after which the server will retry a recall in case of failures β±οΈPreserve_Unlinked(bool, default false) β whether to allow preserve unlinked. refer to RFC5661, bestie: in traditional NFS, "silly rename" is used to handle open files deleted by another client by renaming them to hidden temporary names. with NFSv4.1, theOPEN4_RESULT_PRESERVE_UNLINKEDflag allows the server to preserve unlinked files until all references are closed, eliminating the need for "silly rename" and simplifying client logic while ensuring efficient file lifecycle management. the support on NFS client is now generally available in RHEL8.7 and RHEL9.1 πpnfs_mds(bool, default false) β whether this is a pNFS MDS server. for FSAL Gluster, if this is true, setpnfs_mdsin gluster block as well π₯pnfs_ds(bool, default false) β whether this is a pNFS DS server π¦RecoveryBackend(enum, default"fs") β use a different backend for client info:fs: filesystemfs_ng: filesystem (better resiliency)rados_kv: rados key-valuerados_ng: rados key-value (better resiliency)rados_cluster: clustered rados backend (active/active)none: don't use any recovery backend π
RecoveryBackendIPBased(bool, default false) β whether the recovery backend to be used is based on the IP hosted by that Ganesha instance. by default the recovery backend is based on the node name / node id. the IP based recovery backend will help in assigning / removing IPs to Ganesha instances on the fly. useful in case of virtual/floating IPs are in use and which need to be moved across for HA purpose πRecoveryRoot(path, default"/var/lib/nfs/ganesha") β specify the root recovery directory forfsorfs_ngrecovery backends πRecoveryDir(path, default"v4recov") β specify the recovery directory name forfsorfs_ngrecovery backends ποΈRecoveryOldDir(path,"v4old") β specify the recovery old directory name forfsrecovery backend π¦Minor_Versions(enum list, values[0, 1, 2], default[0, 1, 2]) β list of supported NFSV4 minor version numbers β¨Slot_Table_Size(uint32, range 1 to 1024, default 64) β size of the NFSv4.1 slot table π«Enforce_UTF8_Validation(bool, default false) β set true to enforce valid UTF-8 for path components and compound tags. updates dynamically when a new configuration is loaded viaSIGHUPπMax_Client_Ids(uint32, range 0 toUINT32_MAX, default 0) β specify a max limit on number of NFS4 ClientIDs supported by the server. with filesystem recovery backend, each ClientID translates to one directory. with certain workloads, this could result in reaching inode limits of the filesystem that/var/lib/nfs/ganeshais part of. the above limit can be used as a guardrail to prevent getting into this situation πServer_Scope(string, default"") β specify the value which is common for all cluster nodes. for e.g., name of the cluster or cluster-id π―Server_Owner(string, default"") β connections to servers with the same server owner can be shared by the client. this is advertised to the client onEXCHANGE_IDπ’Virtual_Server(bool, default false) β when set true, Ganesha will make each IP address appear to NFSv4 clients as a separate server (trunking will not be allowed) πIp_Based_Client_Owner_Separation(bool, default false) β whether to distinguish between clients based on their IP address in addition to the client owner identifier provided by them for NFS4.1 and above πMax_Open_States_Per_Client(uint32, range 0 toUINT32_MAX, default 0) β specify the maximum number of files that could be opened by a client. one misbehaving client could potentially open multiple files and exhaust the open FD limit allowed by ganesha's cgroup. beyond this limit, client gets denied if it tries to open too many files. to disable set to ZERO π«Expired_Client_Threshold(uint32, range 0 to 256, default 16) β specify the threshold of number of expired clients to be kept in memory post lease period, unless the number of unresponsive clients go over this limit. Ganesha keeps track of all expired clients in LRU fashion and picks the oldest expired client when the number of clients exceeds the max limit. this allows Ganesha to retain the open & lock state and thereby helping certain client workloads like MLPerf to run smoothly, even after a network partition πMax_Open_Files_For_Expired_Client(uint32, range 0 toUINT32_MAX, default 4000) β specify the maximum number of open files that an unresponsive client could have, beyond which Ganesha won't keep the client intact in memory and will expire it. comes to play if the configExpired_Client_Thresholdis not set to ZERO β³Max_Alive_Time_For_Expired_Client(uint64, range 0 toUINT64_MAX, default 86400) β specify the max amount of time till which to keep the unresponsive client in memory, beyond which Ganesha would start reaping and expire it off. comes to play if the configExpired_Client_Thresholdis not set to ZERO πBlocking_Locks(bool, default true) β whether to allow blocking locks (READW_LT/WRITEW_LT) for NFSv4. when set to false, blocking lock requests will be treated as non-blocking locks (READ_LT/WRITE_LT). this means that if a lock cannot be granted immediately due to a conflict, the server will returnNFS4ERR_DENIEDinstead of blocking the request and waiting for the lock to become available π
π RADOS_KV {} π
ceph_conf(string, no default) β connection to ceph cluster, should be file path for ceph configuration πuserid(path, no default) β user ID to ceph cluster πnamespace(string, defaultNULL) β RADOS Namespace in which to store objects π¦pool(string, default"nfs-ganesha") β pool for client info πgrace_oid(string, default"grace") β name of the object containing therados_clustergrace DB πnodeid(string, default result ofgethostname()) β unique node identifier withinrados_cluster. ifnodeidis numeric string, then internally a string is formed like"node<nodeid>"to register membership withinrados_cluster. ifnodeidis non-numeric string, then it is used as is. if nonodeidpresent, then hostname (returned viagethostname()) is used for registering the membership π
π RADOS_URLS {} π
ceph_conf(string, no default) β connection to ceph cluster, should be file path for ceph configuration πuserid(path, no default) β user ID to ceph cluster πwatch_url(url, no default) βrados://URL to watch for notifications of config changes. when a notification is received, the server will issue aSIGHUPto itself π‘
β¨ FSAL_LIST {} β¨
name(string, no default) β this allows listing of the FSALs that will be used. this assures that the config blocks for those FSALs will not result in an error if no exports are configured using that FSAL. this parameter takes a list of FSAL names and the parameter may be listed multiple times π₯
okay bestie that's the whole page, you made it to the end, you absolute icon π β¨ this is from Ganesha and it's dated Aug 11, 2026 β go configure something iconic, ily, mwah π«Άπ
π¦ 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