nfs.conf
— The
configuration file for NFS
The nfs.conf
file contains options used to
specify NFS server and client configuration and tuning.
Each line contains an option field and a value field, separated by
an equals character '='. For example:
Each line specifies a single option/value pair. Whitespace can be
used freely before and after fields. A hash character '#' begins a comment
that extends to the end of the line. Lines containing only whitespace or
comments are ignored. The file format is intended to be easily read using
functions like fparseln(3). When a line is removed from
nfs.conf
file, the value remains to whatever it was
set to when the line was added to nfs.conf
file
until the next reboot at which point it will be reset to default.
Values are typically integers. For options that enable/disable
functionality the value zero (0) indicates the option is off/disabled and
the value one (1) (or any other non-zero value) indicates the option is
on/enabled.
The options are:
nfs.client.default_nfs4domain
- Sets the default NFSv4 domain name. If not set then string mappings are
handed to
opendirectoryd
for resolution as is.
Otherwise, if the domain name part of the string matches the NFSv4 domain
set here, then the domain part is stripped off and then given to
opendirectoryd
for resolution. See
nfs(5) for details.
nfs.client.access_cache_timeout
- How long (in seconds) that access(2) information is
cached. The default is 60 seconds.
nfs.client.access_for_getattr
- This option specifies if access(2) information should be
opportunistically fetched every time attributes are fetched. A GETATTR
request will only return attributes, but since ACCESS requests usually
also return current attributes, a single ACCESS request may be used to
fetch both access(2) information and attributes.
Enabling this may improve performance, but only if the ACCESS check on the
server is inexpensive. This may not be the case with many modern operating
systems. The default is 0 (off).
nfs.client.allow_async
- Allow the use of the -o
async
mount option. This
option must be enabled in order for the async
mount option to be honored because (accidental) use of the
async
mount option may result in data loss if the
server crashes. The default is 0 (off).
nfs.client.callback_port
- This option can be used to specify a port that the NFSv4 callback RPC
service should be available on. The default value is unspecified, which
means that any available port will be used.
nfs.client.initialdowndelay
- When an NFS server is not responding, this option specifies how long to
wait (in seconds) before the initial notification is posted. The default
is 12 seconds.
nfs.client.iosize
- This option specifies what size (in bytes) the NFS client reports for the
recommended I/O request size returned in stat(2) and
statfs(2) calls. The default value is 1048576
bytes.
nfs.client.mount.options
- Mount options to be used for NFS file systems mounted via
mount(8) / mount_nfs(8). The value is
in the same format as the argument for the
-o
mount option (a comma-separated string of options like:
option1,option2=val,option3). The default value is empty. These options
are processed by mount_nfs(8) prior to processing any
other command-line options. Therefore, mount options set in the NFS
configuration file may be added to or overriden by additional command-line
options.
nfs.client.nextdowndelay
- When an NFS server is not responding, this option specifies how long to
wait (in seconds) between notifications. The default is 30 seconds.
nfs.client.nfsiod_thread_max
- The maximum number of NFS client asynchronous I/O (nfsiod) threads to use.
The default is 16.
nfs.client.statfs_rate_limit
- The maximum number of times per second that an NFS client will send a
"statfs" RPC request to an NFS server to retrieve up-to-date
file system information. Requests for this information that occur faster
than this rate will receive cached values. The default value is 10 times
per second. A value of zero means no limit.
nfs.client.mount_timeout
- Set the initial NFS mount connection timeout to the specified value. The
default value is 30 seconds.
nfs.client.mount_quick_timeout
- Set the initial NFS quick mount connection timeout to the specified value.
The default value is 8 seconds. Quick mount timeout will be used for
autofs
mounts if mounted using zero
retrycnt
.
nfs.client.is_mobile
- This option specifies if an NFS client is on a mobile machine. On a mobile
machine, hard mounted file systems can be automatically forcibly unmounted
if the following is met:
- The mount was automounted.
- The server is not responding.
- No files are open for writing.
- No files are memory mapped.
- There are no dirty pages associated with the mount.
The default for this option is to let the system detect this. A non-zero
value for this option treats this machine as a laptop with respect to NFS
behavior and allows automatic forcible unmounting of unresponsive volumes
described above. Conversely, a zero value treats the machine as a desktop
for traditional NFS behavior, where hard mounts never time out. Setting a
zero value is useful for laptops that are being used as desktops.
nfs.client.uninterruptible_pagein
- Sets the behavior for nfs requests generated as a result of a page-in
operation. If the value is set to 1, then nfs requests resulting from
page-in operations will not pay attention to the relavant mount options.
In particular, nfs requests generated for an interruptible mount will be
sent in an uninterruptible manner. If the value is set to 0, then nfs
requests are always done with accordance to relevant mount options. The
default value is 0.
nfs.lockd.grace_period
- This option specifies the grace period (in seconds) during which lockd
will only accept requests from hosts which are reclaiming locks which
existed before the restart. The default value is 45 seconds.
nfs.lockd.host_monitor_cache_timeout
- This option tells rpc.lockd how long (in seconds) to cache state records
for monitored hosts. Setting it to zero will disable the cache which will
make lock and unlock requests from a single client more expensive because
of additional interaction with the client's statd. The default value is 60
seconds.
nfs.lockd.port
- This option can be used to specify a port that the NFS LOCK service
(lockd) should be available on. The default value is unspecified, which
means that any available port will be used.
nfs.lockd.send_using_tcp
- This option tells lockd to use TCP sockets when contacting other hosts.
The default value is 0, which means lockd will use UDP.
nfs.lockd.send_using_mnt_transport
- This option tells lockd to use the socket type of the corresponding nfs
mount. Locking a file on a udp mount will use udp and locking a file on a
nfs mount mounted with tcp will use tcp. Note that
nfs.lockd.send_using_tcp will override this option. The default
value is 0, which means lockd will use UDP provided
nfs.lockd.send_using_tcp is not set or set to 0.
nfs.lockd.shutdown_delay_client
- This option species how long (in seconds) the lockd daemon should remain
running after the unmounting of the last NFS file system for which it may
need to perform file locking requests. The default value is 180 seconds.
(Note: lockd may also remain running if it is needed by the NFS
server.)
nfs.lockd.shutdown_delay_server
- This option species how long (in seconds) the lockd daemon should remain
running after the NFS server daemon, nfsd(8), is
stopped. The default value is 180 seconds. (Note: lockd may also remain
running if it is needed by any NFS file system mounts.)
nfs.lockd.tcp
- This option specifies whether the LOCK server should support connections
using TCP. The default value is 1 (enabled).
nfs.lockd.udp
- This option specifies whether the LOCK server should support connections
using UDP. The default value is 1 (enabled).
nfs.lockd.verbose
- This option controls how much logging lockd performs. It currently maps
directly to the rpc.lockd(8)
-d
debug_level option. The default value is 0.
nfs.server.async
- This option specifies that the NFS server should report unstable writes as
stable writes. The default is 0 (off). While enabling this option can
improve write performance, it will also put data integrity at risk because
the NFS client will be told that data is on stable storage before it
actually is. The data may be lost if the NFS server crashes.
nfs.server.bonjour
- This option controls whether the NFS service is advertised via Bonjour.
The default value is 1 (on).
nfs.server.bonjour.local_domain_only
- This option controls whether the NFS service's Bonjour advertisement is
restricted to the local domain only. The default value is 0 (off).
nfs.server.export_hash_size
- This option specifies the size of the NFS server export hash table. The
default value is 64.
nfs.server.fsevents
- This option controls whether the NFS server will generate fsevents for
operations performed on an exported file system. The default value is 1
(enabled).
nfs.server.mount.port
- This option can be used to specify a port that the MOUNT service (mountd)
should be available on. The default value is unspecified, which means that
any available port will be used.
nfs.server.mount.regular_files
- This option controls whether MOUNT requests for non-directory objects will
be allowed. The default value is 0 (off).
nfs.server.mount.require_resv_port
- This option controls whether MOUNT requests are required to originate from
a reserved port (port < 1024). The default value is 1 (yes). Many NFS
server implementations require this because of the false belief that this
requirement increases security.
nfs.server.nfsd_threads
- This option controls how many NFS server (nfsd) threads are made available
to service NFS requests. The default value is 8.
nfs.server.port
- This option can be used to specify a port that the NFS service (nfsd)
should be available on. The default value is 2049.
nfs.server.materialize_dataless_files
- This option specifies whether the NFS server should support
materialization of non-local files (dataless). dataless is a state
supported by APFS in which a file or directory is a placeholder. Its
children (for a directory) or content (for a file) will be fetched when
the user tries to read it. The default is 0 (off).
nfs.server.reqcache_size
- This option specifies the size of the NFS server request cache. The
default value is 64.
nfs.server.request_queue_length
- This option specifies the maximum number of NFS requests that the NFS
server can queue up internally on the NFS server's UDP socket. The default
value is 128. Note: using a large value risks getting all the mbufs in the
system placed on that queue which can cause all networking to hang.
nfs.server.require_resv_port
- This option controls whether NFS requests are required to originate from a
reserved port (port < 1024). The default value is 0 (no). Many NFS
server implementations require this because of the false belief that this
requirement increases security.
nfs.server.rquota.port
- This option can be used to specify a port that the RQUOTA service
(rquotad) should be available on. The default value is unspecified, which
means that any available port will be used.
nfs.server.rquota.tcp
- This option specifies whether the RQUOTA server should support connections
using TCP. The default value is 1 (enabled).
nfs.server.rquota.udp
- This option specifies whether the RQUOTA server should support connections
using UDP. The default value is 1 (enabled).
nfs.server.tcp
- This option specifies whether the NFS server should support connections
using TCP. The default value is 1 (enabled).
nfs.server.udp
- This option specifies whether the NFS server should support connections
using UDP. The default value is 1 (enabled).
nfs.server.user_stats
- This option controls whether the NFS server maintains active user
statistics. The default value is 1 (enabled).
nfs.server.verbose
- This option controls how much logging nfsd performs. The default value is
0 - where only messages up to priority LOG_WARNING are logged. Setting the
verbose level to 1 will add LOG_NOTICE messages which includes logging
failed mount attempts. A verbose level of 2 will increase the log level to
LOG_INFO which includes logging successful mount attempts. A log level of
3 or more will add LOG_DEBUG messages and cause increasing amounts of
debug information to be logged. nfsd's verbose level can also be adjusted
temporarily using the command:
nfsd verbose
. Note:
the syslog(8) configuration may need to be adjusted in
order to see the increased verbosity.
nfs.server.wg_delay
- This option controls how long (in microseconds) NFSv2 writes will be
gathered up before being processed. The default value is 1000. Setting
this option to 0 will disable write gathering for NFSv2.
nfs.server.wg_delay_v3
- This option controls how long (in microseconds) NFSv3 writes will be
gathered up before being processed. The default value is 0 (disabled).
NFSv3's support of unstable writes effectively eliminates the need for
doing write gathering to increase performance.
nfs.statd.port
- This option can be used to specify a port that the STATUS service (statd)
should be available on. The default value is unspecified, which means that
any available port will be used.
nfs.statd.send_using_tcp
- This option tells statd to use TCP sockets when contacting other hosts.
The default value is 0, which means statd will use UDP.
nfs.statd.simu_crash_allowed
- This option controls whether statd allows SM_SIMU_CRASH requests. The
default value is 0 (not allowed).
nfs.statd.tcp
- This option specifies whether the STATUS server should support connections
using TCP. The default value is 1 (enabled).
nfs.statd.udp
- This option specifies whether the STATUS server should support connections
using UDP. The default value is 1 (enabled).
nfs.statd.verbose
- This option controls how much logging statd performs. The default value is
0.
- /etc/nfs.conf
- The NFS configuration file.