Improve demand-attach fileserver bos documentation
[openafs.git] / doc / man-pages / pod8 / fileserver.pod
index b3813ec..285a6d4 100644 (file)
@@ -8,6 +8,7 @@ fileserver - Initializes the File Server component of the fs process
 <div class="synopsis">
 
 B<fileserver> S<<< [B<-auditlog> <I<path to log file>>] >>>
+    S<<< [B<-audit-interface> (file | sysvmq)] >>>
     S<<< [B<-d> <I<debug level>>] >>>
     S<<< [B<-p> <I<number of processes>>] >>>
     S<<< [B<-spare> <I<number of spare blocks>>] >>>
@@ -30,6 +31,7 @@ B<fileserver> S<<< [B<-auditlog> <I<path to log file>>] >>>
     S<<< [B<-rxdbge>] >>>
     S<<< [B<-rxmaxmtu> <I<bytes>>] >>>
     S<<< [B<-nojumbo> >>>
+    S<<< [B<-jumbo> >>>
     S<<< [B<-rxbind> >>>
     S<<< [B<-allow-dotted-principals>] >>>
     S<<< [B<-L>] >>>
@@ -48,9 +50,12 @@ B<fileserver> S<<< [B<-auditlog> <I<path to log file>>] >>>
     S<<< [B<-fs-state-dont-save>] >>>
     S<<< [B<-fs-state-dont-restore>] >>>
     S<<< [B<-fs-state-verify>] (none | save | restore | both)] >>>
+    S<<< [B<-vhandle-setaside> <I<fds reserved for non-cache io>>] >>>
+    S<<< [B<-vhandle-max-cachesize> <I<max open files>>] >>>
+    S<<< [B<-vhandle-initial-cachesize> <I<fds reserved for non-cache io>>] >>>
     S<<< [B<-vhashsize> <I<log(2) of number of volume hash buckets>>] >>>
     S<<< [B<-vlrudisable>] >>>
-    S<<< [B<-vlruthresh> <I<minutes before unused volumes become eligible for soft detach>>] >>>
+    S<<< [B<-vlruthresh> <I<minutes before eligibility for soft detach>>] >>>
     S<<< [B<-vlruinterval> <I<seconds between VLRU scans>>] >>>
     S<<< [B<-vlrumax> <I<max volumes to soft detach in one VLRU scan>>] >>>
     S<<< [B<-vattachpar> <I<number of volume attach threads>>] >>>
@@ -138,7 +143,7 @@ The default values are:
 
   Parameter (Argument)               Small (-S)     Medium   Large (-L)
   ---------------------------------------------------------------------
-  Number of LWPs (-p)                        6           9           12
+  Number of LWPs (-p)                        6           9          128
   Number of cached dir blocks (-b)          70          90          120
   Number of cached large vnodes (-l)       200         400          600
   Number of cached small vnodes (-s)       200         400          600
@@ -197,13 +202,13 @@ effective. To change this frequency, use the B<-hr> argument.
 
 The File Server stores volumes in partitions. A partition is a
 filesystem or directory on the server machine that is named C</vicepX>
-or C</vicepXX> where XX is "a" through "z" or "aa" though "zz". The
-File Server expects that the /vicepXX directories are each on a
-dedicated filesystem. The File Server will only use a /vicepXX if it's
-a mountpoint for another filesystem, unless the file
-C</vicepXX/AlwaysAttach> exists. The data in the partition is a
-special format that can only be access using OpenAFS commands or an
-OpenAFS client.
+or C</vicepXX> where XX is "a" through "z" or "aa" though "iv". Up to
+255 partitions are allowed. The File Server expects that the /vicepXX
+directories are each on a dedicated filesystem. The File Server will
+only use a /vicepXX if it's a mountpoint for another filesystem,
+unless the file C</vicepXX/AlwaysAttach> exists. The data in the
+partition is a special format that can only be access using OpenAFS
+commands or an OpenAFS client.
 
 The File Server generates the following message when a partition is nearly
 full:
@@ -215,6 +220,21 @@ suites. Provide the command name and all option names in full.
 
 =head1 CAUTIONS
 
+There are two strategies the File Server can use for attaching AFS volumes
+at startup and handling volume salvages.  The traditional method assumes
+all volumes are salvaged before the File Server starts and attaches all
+volumes at start before serving files.  The newer demand-attach method
+attaches volumes only on demand, salvaging them at that time as needed,
+and detaches volumes that are not in use.  A demand-attach File Server can
+also save state to disk for faster restarts.
+
+The choice of traditional or demand-attach File Server must be made at
+compile time, and the required setup in F<BosConfig> is different for the
+two servers.  When changing from a traditional File Server to
+demand-attach or vice versa, you will need to stop and remove the C<fs> or
+C<dafs> node in F<BosConfig> and create a new node of the appropriate
+type.  See L<bos_create(8)> for more information.
+
 Do not use the B<-k> and B<-w> arguments, which are intended for use
 by the OpenAFS developers only. Changing them from their default
 values can result in unpredictable File Server behavior.  In any case,
@@ -231,21 +251,18 @@ and B<-lock> options, appear in the output generated by the B<-help>
 option only on the relevant system type.
 
 Currently, the maximum size of a volume is 2 terabytes (2^31 bytes)
-and the maximum size of a /vicepX partition on a fileserver is 2^64 
-kilobytes. The fileserver will not report an error when it has access
-to a partition larger than 2^64 kilobytes, but it will probably fail if
-the administrator attempts to use more than 2^64 kilobytes of space. In
-addition, there are reports of erroneous disk usage numbers when
-B<vos partinfo> or other OpenAFS disk reporting tools are used with
-partitions larger than 2^64 kilobytes.
-
-The maximum number of directory entries is 64,000 if all of the
-entries have names that are 15 characters or less in length. A name
-that is 15 characters long requires the use of only one block in the
-directory. Additional sequential blocks are required to store entries
-with names that are longer than 15 characters. Each additional block
-provides an additional length of 32 characters for the name of the
-entry.
+and the maximum size of a /vicepX partition on a fileserver is 2^64
+kilobytes. The maximum partition size in releases 1.4.7 and earlier is
+2 terabytes (2^31 bytes). The maximum partition size for 1.5.x
+releases 1.5.34 and earlier is 2 terabytes as well.
+
+The maximum number of directory entries is 64,000 if all of the entries
+have names that are 15 octets or less in length. A name that is 15 octets
+long requires the use of only one block in the directory. Additional
+sequential blocks are required to store entries with names that are longer
+than 15 octets. Each additional block provides an additional length of 32
+octets for the name of the entry. Note that if file names use an encoding
+like UTF-8, a single character may be encoded into multiple octets.
 
 In real world use, the maximum number of objects in an AFS directory
 is usually between 16,000 and 25,000, depending on the average name
@@ -257,7 +274,22 @@ length.
 
 =item B<-auditlog> <I<log path>>
 
-Set and enable auditing.
+Turns on audit logging, and sets the path for the audit log.  The audit
+log records information about RPC calls, including the name of the RPC
+call, the host that submitted the call, the authenticated entity (user)
+that issued the call, the parameters for the call, and if the call
+succeeded or failed.
+
+=item B<-audit-interface> (file | sysvmq)
+
+Specifies what audit interface to use. The C<file> interface writes audit
+messages to the file passed to B<-auditlog>. The C<sysvmq> interface
+writes audit messages to a SYSV message (see L<msgget(2)> and
+L<msgrcv(2)>). The message queue the C<sysvmq> interface writes to has the
+key C<ftok(path, 1)>, where C<path> is the path specified in the
+B<-auditlog> option.
+
+Defaults to C<file>.
 
 =item B<-d> <I<debug level>>
 
@@ -274,8 +306,8 @@ in addition to the number specified (but if this argument specifies
 the maximum possible number, the File Server automatically uses five 
 of the threads for its own purposes).
 
-The maximum number of threads can differ in each release of AFS.  Consult
-the I<IBM AFS Release Notes> for the current release.
+The maximum number of threads can differ in each release of OpenAFS.
+Consult the I<OpenAFS Release Notes> for the current release.
 
 =item B<-spare> <I<number of spare blocks>>
 
@@ -388,15 +420,23 @@ retransmissions) to the file F</usr/afs/logs/rx_dbg>.
 Defines the maximum size of an MTU.  The value must be between the
 minimum and maximum packet data sizes for Rx.
 
+=item B<-jumbo>
+
+Allows the server to send and receive jumbograms. A jumbogram is
+a large-size packet composed of 2 to 4 normal Rx data packets that share
+the same header. The fileserver does not use jumbograms by default, as some
+routers are not capable of properly breaking the jumbogram into smaller
+packets and reassembling them.
+
 =item B<-nojumbo>
 
-Do not send, and do not accept, jumbograms.
+Deprecated; jumbograms are disabled by default.
 
 =item B<-rxbind>
 
 Force the fileserver to only bind to one IP address.
 
-=item B<-allow-dotted-principal>
+=item B<-allow-dotted-principals>
 
 By default, the RXKAD security layer will disallow access by Kerberos
 principals with a dot in the first component of their name. This is to avoid
@@ -520,6 +560,18 @@ The default is C<both>.
 
 This option is only supported by the demand-attach file server.
 
+=item B<-vhandle-setaside> <I<fds reserved for non-cache io>>
+
+Number of file handles set aside for I/O not in the cache. Defaults to 128.
+
+=item B<-vhandle-max-cachesize> <I<max open files>>
+
+Maximum number of available file handles.
+
+=item B<-vhandle-initial-cachesize> <I<initial open file cache>>
+
+Number of file handles set aside for I/O in the cache. Defaults to 128.
+
 =item B<-vhashsize <I<size>>
 
 The log(2) number of of volume hash buckets.  Default is 8 (i.e., by
@@ -536,8 +588,8 @@ This option is only supported by the demand-attach file server.
 
 =item B<-vlruinterval <I<seconds>>
 
-The number of seconds between VLRU candidate queue scan default is 120  s.
-The second                                                              s.
+The number of seconds between VLRU candidate queue scan.  The default is
+120 seconds.
 
 This option is only supported by the demand-attach file server.
 
@@ -576,15 +628,23 @@ This option is not supported on platforms other than IRIX.
 
 =head1 EXAMPLES
 
-The following B<bos create> command creates an fs process on the file
-server machine C<fs2.abc.com> that uses the large configuration size, and
-allows volumes to exceed their quota by 10%. Type the command on a single
-line:
+The following B<bos create> command creates a traditional fs process on
+the file server machine C<fs2.abc.com> that uses the large configuration
+size, and allows volumes to exceed their quota by 10%. Type the command on
+a single line:
 
    % bos create -server fs2.abc.com -instance fs -type fs \
-                -cmd "/usr/afs/bin/fileserver -pctspare 10 \
-                -L" /usr/afs/bin/volserver /usr/afs/bin/salvager
+                -cmd "/usr/afs/bin/fileserver -pctspare 10 -L" \
+                /usr/afs/bin/volserver /usr/afs/bin/salvager
+
+The following is an equivalent B<bos create> command for a demand-attach
+File Server:
 
+   % bos create -server fs2.abc.com -instance dafs -type dafs \
+                -cmd "/usr/afs/bin/fileserver -pctspare 10 -L" \
+                /usr/afs/bin/volserver \
+                /usr/afs/bin/salvageserver \
+                /usr/afs/bin/salvager
 
 =head1 TROUBLESHOOTING
 
@@ -629,7 +689,7 @@ represents a connection that's waiting for a file server thread.
 
 If the blocked connection count is ever above 0, the server is having
 problems replying to clients in a timely fashion.  If it gets above 10,
-roughly, there will be noticable slowness by the user.  The total number of
+roughly, there will be noticeable slowness by the user.  The total number of
 connections is a mostly irrelevant number that goes essentially
 monotonically for as long as the server has been running and then goes back
 down to zero when it's restarted.
@@ -749,6 +809,8 @@ L<FileLog(5)>,
 L<bos_create(8)>,
 L<bos_getlog(8)>,
 L<fs_setacl(1)>,
+L<msgget(2)>,
+L<msgrcv(2)>,
 L<salvager(8)>,
 L<volserver(8)>,
 L<vos_examine(1)>