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