DESCRIPTION
The behavior of the
nfsd(1M),
nfsmapid(1M),
lockd(1M), and
mountd(1M) daemons and
mount_nfs(1M) command is controlled by property values that are stored in the Service Management Facility, smf(5). The
sharectl(1M) command should be used to query or change values for these properties.
Changes made to
nfs property values on the
nfsd,
lockd,
mountd, or
mount_nfs command line override the values set using
sharectl(1M).
The following list describes the properties:
-
client_versmin=num
client_versmax=num
-
The NFS client only uses NFS versions in the range specified by these properties. Valid values of versions are: 2, 3, and 4. Default minimum version is
2
, while default maximum is 4
.
You can override this range on a per-mount basis by using the -o vers= option to mount_nfs(1M).
-
server_versmin=num
server_versmax=num
-
The NFS server only uses NFS versions in the range specified by these properties. Valid values of versions are: 2, 3, and 4. Default minimum version is
2
, while the default maximum version is 4
.
-
server_delegation=on|off
-
By default the NFS server provides delegations to clients. The user can turn off delegations for all exported filesystems by setting this variable to
off
. This variable only applies to NFS Version 4.
-
nfsmapid_domain=[string]
-
By default, the nfsmapid uses the DNS domain of the system. This setting overrides the default. This domain is used for identifying user and group attribute strings in the NFS Version 4 protocol. Clients and servers must match with this domain for operation to proceed normally. This variable only applies to NFS Version 4. See Setting nfsmapid_domain below for further details.
-
max_connections=num
-
Sets the maximum number of concurrent, connection-oriented connections. The default is
-1
(unlimited). Equivalent to the -c option in nfsd.
-
listen_backlog=num
-
Set connection queue length for the NFS over a connection-oriented transport. The default value is
32
, meaning 32 entries in the queue. Equivalent to the -l option in nfsd.
-
protocol=[all|protocol]
-
Start nfsd over the specified protocol only. Equivalent to the -p option in nfsd. all is equivalent to -a on the nfsd command line. Mutually exlusive of device. For the UDP protocol, only version 2 and version 3 service is established. NFS Version 4 is not supported for the UDP protocol.
-
device=[devname]
-
Start NFS daemon for the transport specified by the given device only. Equivalent to the -t option in nfsd. Mutually exclusive of protocol.
-
servers=num
-
Maximum number of concurrent NFS requests. Equivalent to last numeric argument on the nfsd command line. The default is
1024
.
-
lockd_listen_backlog=num
-
Set connection queue length for lockd over a connection-oriented transport. The default and minimum value is
32
.
-
lockd_servers=num
-
Maximum number of concurrent lockd requests. The default is 256.
-
lockd_retransmit_timeout=num
-
Retransmit timeout, in seconds, before lockd retries. The default is
5
.
-
grace_period=num
-
Grace period, in seconds, that all clients (both NLM and NFSv4) have to reclaim locks after a server reboot. This parameter also controls the NFSv4 lease interval. The default is
90
.
-
mountd_listen_backlog=num
-
Set the connection queue length for mountd over a connection-oriented transport. The default value is
64
.
-
mountd_max_threads=num
-
Maximum number of threads for mountd. The default value is
16
.
-
mountd_port=num
-
The IP port number on which mountd should listen. The default value is
0
, which means it should use a default binding.
-
statd_port=num
-
The IP port number on which statd should listen. The default value is
0
, which means it should use a default binding.
Setting nfsmapid_domain
As described above, the setting for
nfsmapid_domain overrides the domain used by
nfsmapid(1M) for building and comparing outbound and inbound attribute strings, respectively. This setting overrides any other mechanism for setting the NFSv4 domain. In the absence of a
nfsmapid_domain setting, the
nfsmapid(1M) daemon determines the NFSv4 domain as follows:
-
If a properly configured /etc/resolv.conf (see resolv.conf(4)) exists, nfsmapid queries specified nameserver(s) for the domain.
-
If a properly configured /etc/resolv.conf (see resolv.conf(4)) exists, but the queried nameserver does not have a proper record of the domain name, nfsmapid attempts to obtain the domain name through the BIND interface (see resolver(3RESOLV)).
-
If no /etc/resolv.conf exists, nfsmapid falls back on using the configured domain name (see domainname(1M)), which is returned with the leading domain suffix removed. For example, for
widgets.sales.acme.com
, sales.acme.com
is returned.
-
If /etc/resolv.conf does not exist, no domain name has been configured (or no /etc/defaultdomain exists), nfsmapid falls back on obtaining the domain name from the host name, if the host name contains a fully qualified domain name (FQDN).
If a domainname is still not obtained following all of the preceding steps,
nfsmapid will have no domain configured. This results in the following behavior:
-
Outbound “owner” and “owner_group” attribute strings are encoded as literal id's. For example, the UID 12345 is encoded as
12345
.
-
nfsmapid ignores the “domain” portion of the inbound attribute string and performs name service lookups only for the user or group. If the user/group exists in the local system name service databases, then the proper uid/gid will be mapped even when no domain has been configured.
This behavior implies that the same administrative user/group domain exists between NFSv4 client and server (that is, the same uid/gid's for users/groups on both client and server). In the case of overlapping id spaces, the inbound attribute string could potentially be mapped to the wrong id. However, this is not functionally different from mapping the inbound string to nobody, yet provides greater flexibility.