nfsd(7)



NAME

   nfsd - special filesystem for controlling Linux NFS server

SYNPOSIS

   mount -t nfsd nfsd /proc/fs/nfsd

DESCRIPTION

   The  nfsd  filesystem  is a special filesystem which provides access to
   the Linux NFS server.  The filesystem consists of  a  single  directory
   which  contains  a  number of files.  These files are actually gateways
   into the NFS server.  Writing to them can affect the  server.   Reading
   from them can provide information about the server.

   This  file  system  is  only  available  in  Linux 2.6 and later series
   kernels (and in the later parts of the 2.5 development  series  leading
   up to 2.6).  This man page does not apply to 2.4 and earlier.

   As  well  as  this  filesystem,  there are a collection of files in the
   procfs filesystem (normally mounted at /proc) which are used to control
   the NFS server.  This manual page describes all of these files.

   The exportfs and mountd programs (part of the nfs-utils package) expect
   to find this filesystem mounted at /proc/fs/nfsd or  /proc/fs/nfs.   If
   it  is  not  mounted,  they  will fall-back on 2.4 style functionality.
   This  involves  accessing  the  NFS  server  via  a  systemcall.   This
   systemcall is scheduled to be removed after the 2.6 kernel series.

DETAILS

   The three files in the nfsd filesystem are:

   exports
          This  file  contains  a  list  of filesystems that are currently
          exported and  clients  that  each  filesystem  is  exported  to,
          together    with   a   list   of   export   options   for   that
          client/filesystem   pair.     This    is    similar    to    the
          /proc/fs/nfs/exports  file  in  2.4.   One  difference is that a
          client doesn't necessarily correspond to just one host.  It  can
          respond  to  a  large collection of hosts that are being treated
          identically.

          Each line of the file contains a path name, a client name, and a
          number  of  options  in parentheses.  Any space, tab, newline or
          back-slash character in the path name or  client  name  will  be
          replaced  by  a  backslash  followed by the octal ASCII code for
          that character.

   threads
          This  file  represents  the  number  of  nfsd  thread  currently
          running.   Reading  it will show the number of threads.  Writing
          an ASCII decimal number will cause the number of threads  to  be
          changed  (increased  or  decreased as necessary) to achieve that
          number.

   filehandle
          This is a somewhat unusual file  in that what is  read  from  it
          depends  on  what  was  just  written  to  it.   It  provides  a
          transactional interface where a program can open the file, write
          a  request, and read a response.  If two separate programs open,
          write, and read at the same time, their  requests  will  not  be
          mixed up.

          The  request  written  to  filehandle should be a client name, a
          path name, and a number of bytes.  This should be followed by  a
          newline,  with  white-space  separating  the  fields,  and octal
          quoting of special characters.

          On writing this, the  program  will  be  able  to  read  back  a
          filehandle  for  that path as exported to the given client.  The
          filehandle's length will be at most the number of bytes given.

          The filehandle will be represented in hex with a leading '\x'.

   The directory /proc/net/rpc in the procfs filesystem contains a  number
   of  files  and  directories.   The files contain statistics that can be
   display using the nfsstat program.  The directories contain information
   about  various  caches  that  the NFS server maintains to keep track of
   access  permissions  that  different   clients   have   for   different
   filesystems.  The caches are:

   auth.domain
          This  cache maps the name of a client (or domain) to an internal
          data structure.  The only access that is possible  is  to  flush
          the cache.

   auth.unix.ip
          This cache contains a mapping from IP address to the name of the
          authentication domain that the ipaddress should  be  treated  as
          part of.

   nfsd.export
          This  cache  contains  a  mapping  from  directory and domain to
          export options.

   nfsd.fh
          This cache contains a  mapping  from  domain  and  a  filesystem
          identifier to a directory.   The filesystem identifier is stored
          in the filehandles and consists of a number indicating the  type
          of  identifier  and a number of hex bytes indicating the content
          of the identifier.

   Each directory representing a cache can hold from 1 to 3  files.   They
   are:

   flush  When  a number of seconds since epoch (1 Jan 1970) is written to
          this file, all entries in  the  cache  that  were  last  updated
          before  that  file  become  invalidated and will be flushed out.
          Writing 1 will flush everything.  This is  the  only  file  that
          will always be present.

   content
          This file, if present, contains a textual representation of ever
          entry in the cache, one per line.  If an entry is still  in  the
          cache  (because it is actively being used) but has expired or is
          otherwise invalid, it will be presented as  a  comment  (with  a
          leading hash character).

   channel
          This  file,  if  present,  acts  a  channel for request from the
          kernel-based nfs server to be passed to a user-space program for
          handling.

          When the kernel needs some information which isn't in the cache,
          it makes a line appear in the channel file giving  the  key  for
          the  information.   A  user-space program should read this, find
          the answer, and write a line containing the key, an expiry time,
          and the content.  For example the kernel might make
               nfsd 127.0.0.1
          appear in the auth.unix.ip/content file.  The user-space program
          might then write
               nfsd 127.0.0.1 1057206953 localhost
          to indicate that 127.0.0.1 should map to localhost, at least for
          now.

          If  the  program uses select(2) or poll(2) to discover if it can
          read from the channel then it will never see and end-of-file but
          when  all  requests  have  been  answered,  it  will block until
          another request appears.

   In the /proc filesystem there are 4 files that can be used  to  enabled
   extra tracing of nfsd and related code.  They are:
        /proc/sys/sunrpc/nfs_debug
        /proc/sys/sunrpc/nfsd_debug
        /proc/sys/sunrpc/nlm_debug
        /proc/sys/sunrpc/rpc_debug
   They  control  tracing  for the NFS client, the NFS server, the Network
   Lock  Manager  (lockd)  and  the  underlying  RPC  layer  respectively.
   Decimal  numbers  can  be  read  from  or written to these files.  Each
   number represents a bit-pattern where bits that are set  cause  certain
   classes  of  tracing to be enabled.  Consult the kernel header files to
   find out what number correspond to what tracing.

SEE ALSO

   nfsd(8), rpc.nfsd(8), exports(5), nfsstat(8), mountd(8) exportfs(8).

AUTHOR

   NeilBrown

                              3 July 2003                          nfsd(7)




Free and Open Source Software


Free Software Video

Useful Programs

Free Online Courses

Open Opportunity

Open Business