vlserver - Initializes the Volume Location Server


vlserver [-noauth] [-smallmem] [-rxbind] [-afscompat [yes | no]] [-debug <debug level>] [-rxmaxmtu <bytes>] [-rxwindow <packets] [-udpsize <size of socket buffer in bytes>] [-trace <trace file>] [-allow-dotted-principals] [-database <database path] [-logfile <log file] [-config <configuration file] [-keytab <keytab location] [-syslog[=<facility>]>] [-enable_peer_stats] [-enable_process_stats] [-auditlog [<log path> | yes | on]] [-audit-interface (file | syslog | sysvmq)] [-restricted_query (anyuser | admin)] [-maxthreads <maximum number of worker threads>] [-threadidle <maximum idle lifetime for a worker thread in seconds>] [-help]


The vlserver command initializes the Volume Location (VL) Server, which runs on every database server machine. In the conventional configuration, its binary file is located in the /usr/local/libexec/yfs directory on a file server machine.

The vlserver command is not normally issued at the command shell prompt but rather placed into a file server machine's /etc/yfs/server/BosConfig file with the 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 root.

As it initializes, the VL Server process creates the two files that constitute the Volume Location Database (VLDB), vldb.DB0 and vldb.DBSYS1, in the /etc/yfs directory if they do not already exist. Use the commands in the vos suite to administer the database.

The VL Server maintains the record of volume locations in the Volume Location Database (VLDB). When the Cache Manager fills a file request from an application program, it first contacts the VL Server to learn which file server machine currently houses the volume that contains the file. The Cache Manager then requests the file from the File Server process running on that file server machine.

The VL Server records a trace of its activity in the /var/log/yfs/VLLog file. Use the bos getlog command to display the contents of the file. By default, it records on a minimal number of messages. For instructions on increasing the amount of logging, see VLLog(5).

By default, the VL Server runs nine lightweight processes (LWPs). To change the number, use the -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.


-afscompat [yes | no]

Ensures that no data or metadata will be accepted that prevents interoperability with AFS3-protocol clients such as OpenAFS. It does not disable the AuriStorFS protocol extensions or use of the yfs-rxgk security class.

For this service, afscompat prohibits registration of IPv6 service endpoints.

-debug <debug level>

Sets the detail level for the debugging trace written to the /var/log/yfs/VLLog file. Provide one of the following values, each of which produces an increasingly detailed trace: 0, 1, 5, 25, and 125.


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.


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.


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.

-auditlog [<log path> | yes | on]

Turns on audit logging, and optionally 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. If no path is specified, /var/log/yfs/VLAuditLog is used.

-audit-interface (file | syslog | sysvmq)

Specifies what audit interface to use. Defaults to file. See fileserver(8) for an explanation of each interface.


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

-syslog[=<syslog facility>]

Specifies that logging output should go to syslog instead of the normal log file. -syslog=FACILITY can be used to specify to which facility the log message should be sent. Logging message sent to syslog are tagged with the string "vlserver".


Turns off all authorization checks, and allows all connecting users to act as administrators, even unauthenticated users. The use of this option is inherently insecure, and should only be used in controlled environments for experimental or debug purposes. See NoAuth(5).


Specifies that the vlserver should limit its memory usage during certain operations, and return an error to the calling client instead of allocating more memory. This option is only useful on systems where memory is severely limited, and should not be needed on any remotely modern system.

-rxmaxmtu <bytes>

Specify the maximum transmission unit (MTU) value. The value must be between the minimum (520) and maximum (16384) Rx packet sizes.

It artificially limits the maximum Rx data packet size that will be transmitted. It can be used when the maximum size that can be successfully transmitted is smaller than the reported network interface MTU.

-rxwindow <packets>

Specify the maximum sliding window size that RX may use on the wire. Larger windows improve performance on networks with a high latency, at the expense of higher memory usage. The value specified must be less than the maximum RX window size of 65535.

-udpsize <size of socket buffer in bytes>

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

-trace <trace file>

Turns on low-level Rx packet tracing, and logs the trace information to the specified file. The trace file can be later dumped into a human-readable form with a tool called dumptrace.

It is not recommended to turn on this option during normal operation, since the detailed tracing may cause performance issues and use up a lot of disk space.

-logfile <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 /var/log/yfs/VLLog. 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 bos.

-database | -db <database path>

Set the location of the database used by this program. This option is intended primarily for testing purposes.

-config <configuration file>

Sets an alternate location for the configuration file that will be parsed for options for this service. If this option is not specified, /etc/yfs/server/yfs-server.conf will be used.

-keytab <keytab location>

Specifies a location for the keytab file used by the rxgk negotiation service. If this option is not specified, the kerberos defaults will apply.

-restricted_query (anyuser | admin)

Restrict RPCs that query information about volumes to a specific group of users. Only the RPCs that are not used by cache managers will be restricted, since cache manager connections to the Volume Server are always unauthenticated. You can use admin to restrict to AFS administrators and members of the ReaderList(5). The anyuser option doesn't restrict the RPCs and leaves it open for all users including unauthenticated users. The default is admin.

-maxthreads <maximum number of worker threads>

Specifies the maximum number of worker threads that can be started to service incoming remote procedure calls. The default is 256 for vlserver and ptserver; and 1024 for the fileserver.

-threadidle <maximum idle lifetime for a worker thread in seconds>

Specifies the maximum number of seconds that a worker thread can remain idle before it will be terminated. The default is 20 minutes (1200 seconds). This value should be increased if the server workload is known to experience a spike in the number of serviced remote procedure calls on a periodic cycle longer than the default. =item -help

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


The following bos create command creates a vlserver process on the machine that uses six lightweight processes. Type the command on a single line:

   % bos create -server -instance vlserver -type simple \
                -cmd "/usr/local/libexec/yfs/vlserver -p 6"


The issuer must be logged in as the superuser 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 bos create command.


BosConfig(5), VLLog(5), vldb.DB0(5), bos_create(8), bos_getlog(8)


IBM Corporation 2000. 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.


"AFS" is a registered mark of International Business Machines Corporation, used under license. (USPTO Registration 1598389)

"OpenAFS" is a registered mark of International Business Machines Corporation. (USPTO Registration 4577045)

The "AuriStor" name, log 'S' brand mark, and icon are registered marks of AuriStor, Inc. (USPTO Registrations 4849419, 4849421, and 4928460) (EUIPO Registration 015539653).

"Your File System" is a registered mark of AuriStor, Inc. (USPTO Registrations 4801402 and 4849418).

"YFS" and "AuriStor File System" are trademarks of AuriStor, Inc.