=head1 NAME

volserver - Initializes the Volume Server component of the fs process

=head1 SYNOPSIS

=for html
<div class="synopsis">

B<volserver>
    [B<-log>] S<<< [B<-p> <I<number of processes>>] >>>
    S<<< [B<-auditlog> <I<log path>>] >>>
    S<<< [B<-audit-interface> (file | sysvmq)] >>>
    S<<< [B<-logfile <I<log file>>] >>> S<<< [B<-config> <I<configuration path>>] >>>
    S<<< [B<-udpsize> <I<size of socket buffer in bytes>>] >>>
    S<<< [B<-d> <I<debug level>>] >>>
    [B<-nojumbo>] [B<-jumbo>]
    [B<-enable_peer_stats>] [B<-enable_process_stats>]
    [B<-allow-dotted-principals>] [B<-clear-vol-stats>]
    [B<-sync> <I<sync behavior>>]
    [B<-rxmaxmtu> <I<bytes>>]
    [B<-rxbind>]
    [B<-syslog>[=<I<FACILITY>]]
    [B<-transarc-logs>]
    [B<-sleep> <I<sleep time>/I<run time>>]
    [B<-restricted_query> (anyuser | admin)]
    [B<-s2scrypt> (never | always | inherit)]
    [B<-help>]

=for html
</div>

=head1 DESCRIPTION

The B<volserver> command initializes the Volume Server component of the
C<fs> process. In the conventional configuration, its binary file is
located in the F</usr/afs/bin> directory on a file server machine.

The B<volserver> command is not normally issued at the command shell
prompt but rather placed into a file server machine's
F</usr/afs/local/BosConfig> file with the B<bos create> command. If it is
ever issued at the command shell prompt, the issuer must be logged onto a
database server machine as the local superuser C<root>.

The Volume Server records a trace of its activity in the
F</usr/afs/logs/VolserLog> file. Use the B<bos getlog> command to display
the contents of the file.

The Volume Server processes the B<vos> commands that administrators use to
create, delete, move, and replicate volumes, as well as prepare them for
archiving to tape or other media.

By default, the VL Server runs nine lightweight processes (LWPs). To
change the number, use the B<-p> argument.

This command does not use the syntax conventions of the AFS command
suites. Provide the command name and all option names in full.

=head1 OPTIONS

=over 4

=item B<-d> <I<debug level>>

Sets the detail level for the debugging trace written to the
F</usr/afs/logs/VolserLog> file. Provide one of the following values, each
of which produces an increasingly detailed trace: C<0>, C<1>, C<5>, C<25>,
and C<125>. 

=item B<-log>

Records in the /usr/afs/logs/VolserLog file the names of all users who
successfully initiate a B<vos> command. The Volume Server also records any
file removals that result from issuing the B<vos release> command with the
B<-f> flag.

=item B<-transarc-logs>

Use Transarc style logging features. Rename the log file
F</usr/afs/logs/VolserLog> to F</usr/afs/logs/VolserLog.old> when the volume server is
restarted.  This option is provided for compatibility with older versions.

=item B<-p> <I<number of processes>>

Sets the number of server lightweight processes (LWPs) to run.  Provide an
integer between C<4> and C<16>. The default is C<9>.

=item B<-auditlog> <I<log path>>

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. Defaults to C<file>. See
L<fileserver(8)> for an explanation of each interface.

=item B<-udpsize> <I<size of socket buffer>>

Sets the size of the UDP buffer in bytes, which is 64 KB by
default. Provide a positive integer, preferably larger than the default.

=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 volserver 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>

Deprecated; jumbograms are disabled by default.

=item B<-enable_peer_stats>

Activates the collection of Rx statistics and allocates memory for their
storage. For each connection with a specific UDP port on another machine,
a separate record is kept for each type of RPC (FetchFile, GetStatus, and
so on) sent or received. To display or otherwise access the records, use
the Rx Monitoring API.

=item B<-enable_process_stats>

Activates the collection of Rx statistics and allocates memory for their
storage. A separate record is kept for each type of RPC (FetchFile,
GetStatus, and so on) sent or received, aggregated over all connections to
other machines. To display or otherwise access the records, use the Rx
Monitoring API.

=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
the confusion where principals user/admin and user.admin are both mapped to the
user.admin PTS entry. Sites whose Kerberos realms don't have these collisions 
between principal names may disable this check by starting the server
with this option.

=item B<-clear-vol-stats>

Clear volume access statistics during volume restore and reclone operations.
This includes clearing the volume access statistics of read-only volumes during
a volume release.  By default, volume access statistics are preserved during
volume restore and reclone operations.

Volume access statistics were cleared by default in versions prior to OpenAFS
1.8.0.  This flag is intended to provide compatible behaviour.

=item B<-sync> <I<sync behavior>>

This is the same as the B<-sync> option in L<fileserver(8)>. See
L<fileserver(8)>.

=item B<-logfile> <I<log file>>

Sets the file to use for server logging.  If logfile is not specified and
no other logging options are supplied, this will be F</usr/afs/logs/VolserLog>.
Note that this option is intended for debugging and testing purposes.
Changing the location of the log file from the command line may result
in undesirable interactions with tools such as B<bos>.

=item B<-config> <I<configuration directory>>

Set the location of the configuration directory used to configure this
service.  In a typical configuration this will be F</usr/afs/etc> - this
option allows the use of alternative configuration locations for testing
purposes.

=item B<-rxmaxmtu> <I<bytes>>

Defines the maximum size of an MTU.  The value must be between the
minimum and maximum packet data sizes for Rx.

=item B<-rxbind>

Bind the Rx socket to the primary interface only. (If not specified, the Rx
socket will listen on all interfaces.)

=item B<-syslog>[=<I<syslog facility>>]

Specifies that logging output should go to syslog instead of the normal
log file. B<-syslog>=I<FACILITY> can be used to specify to which facility
the log message should be sent.

=item B<-sleep> <I<sleep_time>/I<run_time>>

This option is obsolete, and is now only accepted for compatibility with older
releases. All it does now is log a warning message about how the option is
obsolete.

=item B<-restricted_query> (anyuser | admin)

Restrict RPCs that query information about volumes to a specific group
of users. You can use C<admin> to restrict to AFS administrators.  The
C<anyuser> option doesn't restrict the RPCs and leaves it open for all
users including unauthenticated users, this is the default.

=item B<-s2scrypt> (never | always | inherit)

Set the cryptographic disposition of inter-volserver traffic.

=over 4

=item B<never>

All inter-volserver traffic is unencrypted.  This is the default behavior.

=item B<always>

All inter-volserver traffic is encrypted (using rxkad).

=item B<inherit>

Inter-volserver traffic will be encrypted if the client connection triggering
the server-to-server traffic is encrypted.  This has the effect of encrypting
inter-server traffic if the "-encrypt" option is provided to
L<B<vos release>|vos_release(1)>, for example.

=back

=item B<-help>

Prints the online help for this command. All other valid options are
ignored.

=back

=head1 EXAMPLES

The following B<bos create> command creates a C<volserver> process on the
machine C<fs2.example.com> as part of the fs process:

   % bos create -server fs2.example.com -instance fs -type fs \
                -cmd "/usr/afs/bin/fileserver" \
                /usr/afs/bin/volserver /usr/afs/bin/salvager

=head1 PRIVILEGE REQUIRED

The issuer must be logged in as the superuser C<root> on a file server
machine to issue the command at a command shell prompt. It is conventional
instead to create and start the process by issuing the B<bos create>
command.

=head1 SEE ALSO

L<BosConfig(5)>,
L<VolserLog(5)>,
L<bos_create(8)>,
L<bos_getlog(8)>,
L<vos(1)>

=head1 COPYRIGHT

IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved.

This documentation is covered by the IBM Public License Version 1.0.  It was
converted from HTML to POD by software written by Chas Williams and Russ
Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.

