1GANESHA-CORE-CONFIG(8)            NFS-Ganesha           GANESHA-CORE-CONFIG(8)
2
3
4

NAME

6       ganesha-core-config - NFS Ganesha Core Configuration File
7

SYNOPSIS

9       /etc/ganesha/ganesha.conf
10
11

DESCRIPTION

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)
Impressum