fd71d3ebee
the NFS server's DRC for TCP. This is a content change. MFC after: 1 week
245 lines
6.4 KiB
Groff
245 lines
6.4 KiB
Groff
.\" Copyright (c) 1989, 1991, 1993
|
|
.\" The Regents of the University of California. All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\" 4. Neither the name of the University nor the names of its contributors
|
|
.\" may be used to endorse or promote products derived from this software
|
|
.\" without specific prior written permission.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
.\" SUCH DAMAGE.
|
|
.\"
|
|
.\" @(#)nfsd.8 8.4 (Berkeley) 3/29/95
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.Dd August 10, 2014
|
|
.Dt NFSD 8
|
|
.Os
|
|
.Sh NAME
|
|
.Nm nfsd
|
|
.Nd remote
|
|
.Tn NFS
|
|
server
|
|
.Sh SYNOPSIS
|
|
.Nm
|
|
.Op Fl arduteo
|
|
.Op Fl n Ar num_servers
|
|
.Op Fl h Ar bindip
|
|
.Op Fl maxthreads Ar max_threads
|
|
.Op Fl minthreads Ar min_threads
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm
|
|
utility runs on a server machine to service
|
|
.Tn NFS
|
|
requests from client machines.
|
|
At least one
|
|
.Nm
|
|
must be running for a machine to operate as a server.
|
|
.Pp
|
|
Unless otherwise specified, eight servers per CPU for
|
|
.Tn UDP
|
|
transport are started.
|
|
.Pp
|
|
The following options are available:
|
|
.Bl -tag -width Ds
|
|
.It Fl r
|
|
Register the
|
|
.Tn NFS
|
|
service with
|
|
.Xr rpcbind 8
|
|
without creating any servers.
|
|
This option can be used along with the
|
|
.Fl u
|
|
or
|
|
.Fl t
|
|
options to re-register NFS if the rpcbind server is restarted.
|
|
.It Fl d
|
|
Unregister the
|
|
.Tn NFS
|
|
service with
|
|
.Xr rpcbind 8
|
|
without creating any servers.
|
|
.It Fl n Ar threads
|
|
Specifies how many servers to create. This option is equivalent to specifying
|
|
.Fl maxthreads
|
|
and
|
|
.Fl minthreads
|
|
with their respective arguments to
|
|
.Ar threads .
|
|
.It Fl maxthreads Ar threads
|
|
Specifies the maximum servers that will be kept around to service requests.
|
|
.It Fl minthreads Ar threads
|
|
Specifies the minimum servers that will be kept around to service requests.
|
|
.It Fl h Ar bindip
|
|
Specifies which IP address or hostname to bind to on the local host.
|
|
This option is recommended when a host has multiple interfaces.
|
|
Multiple
|
|
.Fl h
|
|
options may be specified.
|
|
.It Fl a
|
|
Specifies that nfsd should bind to the wildcard IP address.
|
|
This is the default if no
|
|
.Fl h
|
|
options are given.
|
|
It may also be specified in addition to any
|
|
.Fl h
|
|
options given.
|
|
Note that NFS/UDP does not operate properly when
|
|
bound to the wildcard IP address whether you use -a or do not use -h.
|
|
.It Fl t
|
|
Serve
|
|
.Tn TCP NFS
|
|
clients.
|
|
.It Fl u
|
|
Serve
|
|
.Tn UDP NFS
|
|
clients.
|
|
.It Fl e
|
|
The new NFS server that includes NFSv4 support is now the default, so this
|
|
option is now a no-op and should be considered deprecated.
|
|
.It Fl o
|
|
Forces the use of the old NFS server that does not include NFSv4 support
|
|
in it.
|
|
.El
|
|
.Pp
|
|
For example,
|
|
.Dq Li "nfsd -u -t -n 6"
|
|
serves
|
|
.Tn UDP
|
|
and
|
|
.Tn TCP
|
|
transports using six daemons.
|
|
.Pp
|
|
A server should run enough daemons to handle
|
|
the maximum level of concurrency from its clients,
|
|
typically four to six.
|
|
.Pp
|
|
The
|
|
.Nm
|
|
utility listens for service requests at the port indicated in the
|
|
.Tn NFS
|
|
server specification; see
|
|
.%T "Network File System Protocol Specification" ,
|
|
RFC1094,
|
|
.%T "NFS: Network File System Version 3 Protocol Specification" ,
|
|
RFC1813 and
|
|
.%T "Network File System (NFS) Version 4 Protocol" ,
|
|
RFC3530.
|
|
.Pp
|
|
If
|
|
.Nm
|
|
detects that
|
|
.Tn NFS
|
|
is not loaded in the running kernel, it will attempt
|
|
to load a loadable kernel module containing
|
|
.Tn NFS
|
|
support using
|
|
.Xr kldload 2 .
|
|
If this fails, or no
|
|
.Tn NFS
|
|
KLD is available,
|
|
.Nm
|
|
will exit with an error.
|
|
.Pp
|
|
If
|
|
.Nm
|
|
is to be run on a host with multiple interfaces or interface aliases, use
|
|
of the
|
|
.Fl h
|
|
option is recommended.
|
|
If you do not use the option NFS may not respond to
|
|
UDP packets from the same IP address they were sent to.
|
|
Use of this option
|
|
is also recommended when securing NFS exports on a firewalling machine such
|
|
that the NFS sockets can only be accessed by the inside interface.
|
|
The
|
|
.Nm ipfw
|
|
utility
|
|
would then be used to block nfs-related packets that come in on the outside
|
|
interface.
|
|
.Pp
|
|
If the server has stopped servicing clients and has generated a console message
|
|
like
|
|
.Dq Li "nfsd server cache flooded..." ,
|
|
the value for vfs.nfsd.tcphighwater needs to be increased.
|
|
This should allow the server to again handle requests without a reboot.
|
|
Also, you may want to consider decreasing the value for
|
|
vfs.nfsd.tcpcachetimeo to several minutes (in seconds) instead of 12 hours
|
|
when this occurs.
|
|
.Pp
|
|
Unfortunately making vfs.nfsd.tcphighwater too large can result in the mbuf
|
|
limit being reached, as indicated by a console message
|
|
like
|
|
.Dq Li "kern.ipc.nmbufs limit reached" .
|
|
If you cannot find values of the above
|
|
.Nm sysctl
|
|
values that work, you can disable the DRC cache for TCP by setting
|
|
vfs.nfsd.cachetcp to 0.
|
|
.Pp
|
|
The
|
|
.Nm
|
|
utility has to be terminated with
|
|
.Dv SIGUSR1
|
|
and cannot be killed with
|
|
.Dv SIGTERM
|
|
or
|
|
.Dv SIGQUIT .
|
|
The
|
|
.Nm
|
|
utility needs to ignore these signals in order to stay alive as long
|
|
as possible during a shutdown, otherwise loopback mounts will
|
|
not be able to unmount.
|
|
If you have to kill
|
|
.Nm
|
|
just do a
|
|
.Dq Li "kill -USR1 <PID of master nfsd>"
|
|
.Sh EXIT STATUS
|
|
.Ex -std
|
|
.Sh SEE ALSO
|
|
.Xr nfsstat 1 ,
|
|
.Xr kldload 2 ,
|
|
.Xr nfssvc 2 ,
|
|
.Xr nfsv4 4 ,
|
|
.Xr exports 5 ,
|
|
.Xr stablerestart 5 ,
|
|
.Xr gssd 8 ,
|
|
.Xr ipfw 8 ,
|
|
.Xr mountd 8 ,
|
|
.Xr nfsiod 8 ,
|
|
.Xr nfsrevoke 8 ,
|
|
.Xr nfsuserd 8 ,
|
|
.Xr rpcbind 8
|
|
.Sh HISTORY
|
|
The
|
|
.Nm
|
|
utility first appeared in
|
|
.Bx 4.4 .
|
|
.Sh BUGS
|
|
If
|
|
.Nm
|
|
is started when
|
|
.Xr gssd 8
|
|
is not running, it will service AUTH_SYS requests only. To fix the problem
|
|
you must kill
|
|
.Nm
|
|
and then restart it, after the
|
|
.Xr gssd 8
|
|
is running.
|