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