<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>>] >>>
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>] >>>
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<-unsafe-nosalvage>] >>>
S<<< [B<-vattachpar> <I<number of volume attach threads>>] >>>
S<<< [B<-m> <I<min percentage spare in partition>>] >>>
S<<< [B<-lock>] >>>
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
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:
=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,
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
=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>>
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>>
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
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
=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.
This option is only supported by the demand-attach file server.
+=item B<-unsafe-nosalvage>
+
+This option causes the fileserver to bypass the normal safety check when
+attaching volumes that checks the inUse field in the volume header. With
+this option, volumes that were in use at the time of an unclean shutdown
+will not be salvaged immediately the next time they are accessed, and thus
+risk (possibly silent and/or irrevocable) corruption. Volumes will still
+be salvaged when an internal inconsistency is detected or other cases
+where a salvage would normally occur.
+
+Due to the increased risk of data corruption, the use of this flag is
+strongly discouraged. Only use it if you really know what you are doing.
+
+This option is only supported by the demand-attach file server.
+
=item B<-vattachpar> <I<number of volume attach threads>>
The number of threads assigned to attach and detach volumes. The default
=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
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.
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)>