1GANESHA-CORE-CONFIG(8) NFS-Ganesha GANESHA-CORE-CONFIG(8)
2
3
4
6 ganesha-core-config - NFS Ganesha Core Configuration File
7
9 /etc/ganesha/ganesha.conf
10
11
13 NFS-Ganesha reads the configuration data from: | /etc/ganesha/gane‐
14 sha.conf
15
16 This file lists NFS related core config options.
17
18 NFS_CORE_PARAM {}
19 Core parameters:
20
21 HAProxy_Hosts (host list, empty)
22 This is the list of hosts that can serve as HAProxy load bal‐
23 ancers/proxies that will use the HAProxy protocol to indicate to
24 Ganesha the actual end client IP address. This parameter may be
25 repeated to extend the list.
26
27 Host list entries can take on one of the following forms:
28 * Match any host @name Netgroup name x.x.x.x/y
29 IPv4 network address, IPv6 addresses are also allowed
30 but the format is too complex to show here
31
32 wildcarded If the string contains at least one ? or *
33 character (and is not simply "*"), the string is used
34 to pattern match host names. Note that [] may also be
35 used, but the pattern MUST have at least one ? or *
36
37 hostname Match a single host (match is by IP address, all
38 addresses returned by getaddrinfo will match, the
39 getaddrinfo call is made at config parsing time)
40
41 IP address Match a single host
42
43 NFS_Port (uint16, range 0 to UINT16_MAX, default 2049)
44 Port number used by NFS Protocol.
45
46 MNT_Port (uint16, range 0 to UINT16_MAX, default 0)
47 Port number used by MNT Protocol.
48
49 NLM_Port (uint16, range 0 to UINT16_MAX, default 0)
50 Port number used by NLM Protocol.
51
52 Rquota_Port (uint16, range 0 to UINT16_MAX, default 875)
53 Port number used by Rquota Protocol.
54
55 Monitoring_Port (uint16, range 0 to UINT16_MAX, default 9587)
56 Port number used to export monitoring metrics.
57
58 Bind_addr(IPv4 or IPv6 addr, default 0.0.0.0)
59 The address to which to bind for our listening port.
60
61 NFS_Program(uint32, range 1 to INT32_MAX, default 100003)
62 RPC program number for NFS.
63
64 MNT_Program(uint32, range 1 to INT32_MAX, default 100005)
65 RPC program number for MNT.
66
67 NLM_Program(uint32, range 1 to INT32_MAX, default 100021)
68 RPC program number for NLM.
69
70 Drop_IO_Errors(bool, default false)
71 For NFSv3, whether to drop rather than reply to requests yield‐
72 ing I/O errors. It results in client retry.
73
74 Drop_Inval_Errors(bool, default false)
75 For NFSv3, whether to drop rather than reply to requests yield‐
76 ing invalid argument errors. False by default and settable with
77 Drop_Inval_Errors.
78
79 Drop_Delay_Errors(bool, default false)
80 For NFSv3, whether to drop rather than reply to requests yield‐
81 ing delay errors. False by default and settable with Drop_De‐
82 lay_Errors.
83
84 Plugins_Dir(path, default "/usr/lib64/ganesha")
85 Path to the directory containing server specific modules
86
87 Enable_NFS_Stats(bool, default true)
88 Whether to collect performance statistics. By default the per‐
89 formance counting is enabled. Enable_NFS_Stats can be enabled or
90 disabled dynamically via ganesha_stats.
91
92 Enable_Fast_Stats(bool, default false)
93 Whether to use fast stats. If enabled this will skip statistics
94 counters collection for per client and per export.
95
96 Enable_FSAL_Stats(bool, default false)
97 Whether to count and collect FSAL specific performance statis‐
98 tics. Enable_FSAL_Stats can be enabled or disabled dynamically
99 via ganesha_stats
100
101 Enable_FULLV3_Stats(bool, default false)
102 Whether to count and collect "detailed statistics" for NFSv3.
103 Enable_FULLV3_Stats can be enabled or disabled dynamically via
104 ganesha_stats.
105
106 Enable_FULLV4_Stats(bool, default false)
107 Whether to count and collect "detailed statistics" for NFSv4.
108 Enable_FULLV4_Stats can be enabled or disabled dynamically via
109 ganesha_stats.
110
111 Enable_CLNT_AllOps_Stats(bool, default false)
112 Whether to count and collect statistics for all NFS operations
113 requested by NFS clients. Enable_CLNT_AllOps_Stats can be en‐
114 abled or disabled dynamically via ganesha_stats.
115
116 Short_File_Handle(bool, default false)
117 Whether to use short NFS file handle to accommodate VMware NFS
118 client. Enable this if you have a VMware NFSv3 client. VMware
119 NFSv3 client has a max limit of 56 byte file handles.
120
121 Manage_Gids_Expiration(int64, range 0 to 7*24*60*60, default 30*60)
122 How long the server will trust information it got by calling
123 getgroups() when "Manage_Gids = TRUE" is used in a export entry.
124
125 heartbeat_freq(uint32, range 0 to 5000 default 1000)
126 Frequency of dbus health heartbeat in ms.
127
128 Enable_NLM(bool, default true)
129 Whether to support the Network Lock Manager protocol.
130
131 Disable_NLM_SHARE(bool, default false)
132 This option allows disabling support for the NLM4PROC_SHARE and
133 NLM4PROC_UNSHARE RPC procedures that implement share reserva‐
134 tions for NFSv3 via NLM. With this set to true, these procedures
135 will fail.
136
137 Blocked_Lock_Poller_Interval(int64, range 0 to 180, default 10)
138 Polling interval for blocked lock polling thread
139
140 Protocols(enum list, default [3,4,9P])
141
142 Possible values:
143 3, 4, NFS3, NFS4, V3, V4, NFSv3, NFSv4, 9P
144
145 The protocols that Ganesha will listen for. This is a hard
146 limit, as this list determines which sockets are opened. This
147 list can be restricted per export, but cannot be expanded.
148
149 NSM_Use_Caller_Name(bool, default false)
150 Whether to use the supplied name rather than the IP address in
151 NSM operations.
152
153 Clustered(bool, default true)
154 Whether this Ganesha is part of a cluster of Ganeshas. Its ven‐
155 dor specific option.
156
157 fsid_device(bool, default false)
158 Whether to use device major/minor for fsid.
159
160 resolve_fs_retries(uint32_t, range 1 to 1000, default 10)
161 How many times to attempt stat while resolving POSIX filesystems
162 for exports.
163
164 resolve_fs_delay(uint32_t, range 1 to 1000, default 100)
165 How long to delay between stat attempts while resolving POSIX
166 filesystems for exports.
167
168 mount_path_pseudo(bool, default false)
169 Whether to use Pseudo (true) or Path (false) for NFS v3 and 9P
170 mounts.
171
172 This option defaults to false for backward compatibility, how‐
173 ever, for new setups, it's strongly recommended to be set true
174 since it then means the same server path for the mount is used
175 for both v3 and v4.x.
176
177 Note that as an export related option, it seems very desirable
178 to be able to change this on config reload, unfortunately, at
179 the moment it is NOT changeable on config reload. A restart is
180 necessary to change this.
181
182 Dbus_Name_Prefix
183 DBus name prefix. Required if one wants to run multiple ganesha
184 instances on single host. The prefix should be different for ev‐
185 ery ganesha instance. If this is set, the dbus name will be
186 <prefix>.org.ganesha.nfsd
187
188 Enable_UDP(enum, values [False, True, Mount], default True)
189 Whether to create UDP listeners for Mount, NFS, NLM, RQUOTA, and
190 register them with portmapper. Set to false, e.g., to run as
191 non-root. Set to Mount to enable only Mount UDP listener.
192
193 Max_Uid_To_Group_Reqs(uint32, range 0 to INT32_MAX, default 0)
194 Maximum number of concurrent uid2grp requests that can be made
195 by ganesha. In environments with a slow Directory Service
196 Provider, where users are part of large number of groups, and
197 Manage_Gids is set to True, uid2grp queries made by ganesha can
198 fail if a large number of them are made in parallel. This option
199 throttles the number of concurrent uid2grp queries that ganesha
200 makes.
201
202 Enable_V3fh_Validation_For_V4(bool, default false)
203 Set true to enforce when v3 file handle used for v4
204
205 Readdir_Res_Size(uint32, range 4096 to 64*1024*1024, default
206 64*1024*1024)
207 Response size of readdir request. Suggested values are
208 4096,8192,16384 and 32768. Recommended 16384(16K) if readdir(ls
209 command) operation performed on directory which has more files.
210
211 Readdir_Max_Count(uint32, range 32 to 1024*1024, default 1024*1024)
212 Maximum number of directory entries returned for a readdir re‐
213 quest. Suggested values are 4096,8192,16384 and 32768. Recom‐
214 mended 16384(16K) if readdir(ls command) operation performed on
215 directory which has more files.
216
217 Getattrs_In_Complete_Read(bool, default true)
218 Whether to call extra getattrs after read, in order to check
219 file size and validate the EOF flag correctness. Needed for ESXi
220 client compatibility when FSAL's don't set it correctly.
221
222 Enable_malloc_trim(bool, default false)
223 Set true to enable dynamic malloc_trim support.
224
225 Malloc_trim_MinThreshold(uint32, range 1 to INT32_MAX, default 15*1024)
226 Minimum threshold value to call malloc_trim. The malloc_trim
227 will be called once memory allocation exceeds minimum value.
228 Size in MB's. Note, this setting has no effect when Enable_mal‐
229 loc_trim is set to false.
230
231 enable_rpc_cred_fallback(bool, default false)
232 if Manage_Gids=True and group resolution fails, then use gid
233 data from rpc request.
234
235 Parameters controlling TCP DRC behavior:
236 DRC_Disabled(bool, default false)
237 Whether to disable the DRC entirely.
238
239 DRC_Recycle_Hiwat(uint32, range 1 to 1000000, default 1024)
240 High water mark for number of DRCs in recycle queue.
241
242 TCP_Npart(uint32, range 1 to 20, default 1)
243 Number of partitions in the tree for the TCP DRC.
244
245 DRC_TCP_Size(uint32, range 1 to 32767, default 1024)
246 Maximum number of requests in a transport's DRC.
247
248 DRC_TCP_Cachesz(uint32, range 1 to 255, default 127)
249 Number of entries in the O(1) front-end cache to a TCP Duplicate
250 Request Cache.
251
252 DRC_TCP_Hiwat(uint32, range 1 to 256, default 64)
253 High water mark for a TCP connection's DRC at which to start re‐
254 tiring entries if we can.
255
256 DRC_TCP_Recycle_Npart(uint32, range 1 to 20, default 7)
257 Number of partitions in the recycle tree that holds per-connec‐
258 tion DRCs so they can be used on reconnection (or recycled.)
259
260 DRC_TCP_Recycle_Expire_S(uint32, range 0 to 60*60, default 600)
261 How long to wait (in seconds) before freeing the DRC of a dis‐
262 connected client.
263
264 DRC_TCP_Checksum(bool, default true)
265 Whether to use a checksum to match requests as well as the XID
266
267 Parameters controlling UDP DRC behavior:
268 DRC_UDP_Npart(uint32, range 1 to 100, default 7)
269 Number of partitions in the tree for the UDP DRC.
270
271 DRC_UDP_Size(uint32, range 512, to 32768, default 32768)
272 Maximum number of requests in the UDP DRC.
273
274 DRC_UDP_Cachesz(uint32, range 1 to 2047, default 599)
275 Number of entries in the O(1) front-end cache to the UDP Dupli‐
276 cate Request Cache.
277
278 DRC_UDP_Hiwat(uint32, range 1 to 32768, default 16384)
279 High water mark for the UDP DRC at which to start retiring en‐
280 tries if we can
281
282 DRC_UDP_Checksum(bool, default true)
283 Whether to use a checksum to match requests as well as the XID.
284
285 Parameters affecting the relation with TIRPC:
286 RPC_Max_Connections(uint32, range 1 to 1000000, default 1024)
287 Maximum number of connections for TIRPC.
288
289 RPC_Idle_Timeout_S(uint32, range 0 to 60*60, default 300)
290 Idle timeout (seconds). Default to 300 seconds.
291
292 MaxRPCSendBufferSize(uint32, range 1 to 1048576*9, default 1048576)
293 Size of RPC send buffer.
294
295 MaxRPCRecvBufferSize(uint32, range 1 to 1048576*9, default 1048576)
296 Size of RPC receive buffer.
297
298 RPC_Ioq_ThrdMax(uint32, range 1 to 1024*128 default 200)
299 TIRPC ioq max simultaneous io threads
300
301 RPC_GSS_Npart(uint32, range 1 to 1021, default 13)
302 Partitions in GSS ctx cache table
303
304 RPC_GSS_Max_Ctx(uint32, range 1 to 1048576, default 16384)
305 Max GSS contexts in cache. Default 16k
306
307 RPC_GSS_Max_Gc(uint32, range 1 to 1048576, default 200)
308 Max entries to expire in one idle check
309
310 Parameters for TCP:
311 Enable_TCP_keepalive(bool, default true)
312 Whether tcp sockets should use SO_KEEPALIVE
313
314 TCP_KEEPCNT(UINT32, range 0 to 255, default 0 -> use system defaults)
315 Maximum number of TCP probes before dropping the connection
316
317 TCP_KEEPIDLE(UINT32, range 0 to 65535, default 0 -> use system de‐
318 faults)
319 Idle time before TCP starts to send keepalive probes
320
321 TCP_KEEPINTVL(INT32, range 0 to 65535, default 0 -> use system de‐
322 faults)
323 Time between each keepalive probe
324
325 NFS_IP_NAME {}
326 Index_Size(uint32, range 1 to 51, default 17)
327 Configuration for hash table for NFS Name/IP map.
328
329 Expiration_Time(uint32, range 1 to 60*60*24, default 3600)
330 Expiration time for ip-name mappings.
331
332 NFS_KRB5 {}
333 PrincipalName(string, default "nfs")
334
335 KeytabPath(path, default "")
336 Kerberos keytab.
337
338 CCacheDir(path, default "/var/run/ganesha")
339 The ganesha credential cache.
340
341 Active_krb5(bool, default false)
342 Whether to activate Kerberos 5. Defaults to true (if Kerberos
343 support is compiled in)
344
345 NFSv4 {}
346 Graceless(bool, default false)
347 Whether to disable the NFSv4 grace period.
348
349 Lease_Lifetime(uint32, range 1 to 120, default 60)
350 The NFSv4 lease lifetime.
351
352 Grace_Period(uint32, range 0 to 180, default 90)
353 The NFS grace period.
354
355 DomainName(string, default "localdomain")
356 Domain to use if we aren't using the nfsidmap.
357
358 IdmapConf(path, default "/etc/idmapd.conf")
359 Path to the idmap configuration file.
360
361 UseGetpwnam(bool, default false if using idmap, true otherwise)
362 Whether to use local password (PAM, on Linux) rather than nf‐
363 sidmap.
364
365 Allow_Numeric_Owners(bool, default true)
366 Whether to allow bare numeric IDs in NFSv4 owner and group iden‐
367 tifiers.
368
369 Only_Numeric_Owners(bool, default false)
370 Whether to ONLY use bare numeric IDs in NFSv4 owner and group
371 identifiers.
372
373 Delegations(bool, default false)
374 Whether to allow delegations.
375
376 Deleg_Recall_Retry_Delay(uint32_t, range 0 to 10, default 1)
377 Delay after which server will retry a recall in case of failures
378
379 pnfs_mds(bool, default false)
380 Whether this a pNFS MDS server. For FSAL Gluster, if this is
381 true, set pnfs_mds in gluster block as well.
382
383 pnfs_ds(bool, default false)
384 Whether this a pNFS DS server.
385
386 RecoveryBackend(enum, default "fs")
387 Use different backend for client info:
388
389 • fs : filesystem
390
391 • fs_ng: filesystem (better resiliency)
392
393 • rados_kv : rados key-value
394
395 • rados_ng : rados key-value (better resiliency)
396
397 • rados_cluster: clustered rados backend (active/active)
398
399 RecoveryRoot(path, default "/var/lib/nfs/ganesha")
400 Specify the root recovery directory for fs or fs_ng recovery
401 backends.
402
403 RecoveryDir(path, default "v4recov")
404 Specify the recovery directory name for fs or fs_ng recovery
405 backends.
406
407 RecoveryOldDir(path, "v4old")
408 Specify the recovery old directory name for fs recovery backend.
409
410 Minor_Versions(enum list, values [0, 1, 2], default [0, 1, 2])
411 List of supported NFSV4 minor version numbers.
412
413 Slot_Table_Size(uint32, range 1 to 1024, default 64)
414 Size of the NFSv4.1 slot table
415
416 Enforce_UTF8_Validation(bool, default false)
417 Set true to enforce valid UTF-8 for path components and compound
418 tags
419
420 Max_Client_Ids(uint32, range 0 to UINT32_MAX, default 0)
421 Specify a max limit on number of NFS4 ClientIDs supported by the
422 server. With filesystem recovery backend, each ClientID trans‐
423 lates to one directory. With certain workloads, this could re‐
424 sult in reaching inode limits of the filesystem that
425 /var/lib/nfs/ganesha is part of. The above limit can be used as
426 a guardrail to prevent getting into this situation.
427
428 Server_Scope(string, default "")
429 Specify the value which is common for all cluster nodes. For
430 e.g., Name of the cluster or cluster-id.
431
432 Server_Owner(string, default "")
433 Connections to servers with the same server owner can be shared
434 by the client. This is advertised to the client on EXCHANGE_ID.
435
436 RADOS_KV {}
437 ceph_conf(string, no default)
438 Connection to ceph cluster, should be file path for ceph config‐
439 uration.
440
441 userid(path, no default)
442 User ID to ceph cluster.
443
444 namespace(string, default NULL)
445 RADOS Namespace in which to store objects
446
447 pool(string, default "nfs-ganesha")
448 Pool for client info.
449
450 grace_oid(string, default "grace")
451 Name of the object containing the rados_cluster grace DB
452
453 nodeid(string, default result of gethostname())
454 Unique node identifier within rados_cluster
455
456 RADOS_URLS {}
457 ceph_conf(string, no default)
458 Connection to ceph cluster, should be file path for ceph config‐
459 uration.
460
461 userid(path, no default)
462 User ID to ceph cluster.
463
464 watch_url(url, no default)
465 rados:// URL to watch for notifications of config changes. When
466 a notification is received, the server will issue a SIGHUP to
467 itself.
468
469 FSAL_LIST {}
470 name(string, no default)
471 This allows listing of the FSALs that will be used. This assures
472 that the config blocks for those FSALs will not result in an er‐
473 ror if no exports are configured using that FSAL. This parameter
474 takes a list of FSAL names and the parameter may be listed mul‐
475 tiple times.
476
477
478
479
480 Nov 03, 2023 GANESHA-CORE-CONFIG(8)