485d772e7deec94b27c1b1aa44165652d7a8ea4b
[openafs.git] / doc / man-pages / pod8 / vlserver.pod
1 =head1 NAME
2
3 vlserver - Initializes the Volume Location Server
4
5 =head1 SYNOPSIS
6
7 =for html
8 <div class="synopsis">
9
10 vlserver [B<-noauth>] [B<-smallmem>]
11     S<<< [B<-p> <I<number of threads>>] >>> [B<-nojumbo>]
12     [B<-jumbo>] [B<-rxbind>]
13     S<<< [B<-d> <I<debug level>>] >>>
14     S<<< [B<-rxmaxmtu> <I<bytes>>] >>>
15     S<<< [B<-trace> <I<trace file>>] >>>
16     [B<-allow-dotted-principals>]
17     S<<< [B<-database> | B<-db> <I<database path>>] >>>
18     S<<< [B<-logfile> <I<log file>>] >>>
19     [B<-transarc-logs>]
20     S<<< [B<-config> <I<configuration path>>] >>>
21     S<<< [B<-syslog>[=<I<facility>>]>] >>>
22     [B<-enable_peer_stats>] [B<-enable_process_stats>]
23     S<<< [B<-auditlog> <I<log path>>] >>>
24     S<<< [B<-audit-interface> (file | sysvmq)] >>>
25     S<<< [B<-restricted_query> (anyuser | admin)] >>>
26     S<< [B<-s2scrypt> (rxgk-crypt | never)] >>
27     [B<-help>]
28
29 =for html
30 </div>
31
32 =head1 DESCRIPTION
33
34 The B<vlserver> command initializes the Volume Location (VL) Server, which
35 runs on every database server machine. In the conventional configuration,
36 its binary file is located in the F</usr/afs/bin> directory on a file
37 server machine.
38
39 The B<vlserver> command is not normally issued at the command shell prompt
40 but rather placed into a file server machine's F</usr/afs/local/BosConfig>
41 file with the B<bos create> command. If it is ever issued at the command
42 shell prompt, the issuer must be logged onto a database server machine as
43 the local superuser C<root>.
44
45 As it initializes, the VL Server process creates the two files that
46 constitute the Volume Location Database (VLDB), F<vldb.DB0> and
47 F<vldb.DBSYS1>, in the F</usr/afs/db> directory if they do not already
48 exist. Use the commands in the B<vos> suite to administer the database.
49
50 The VL Server maintains the record of volume locations in the Volume
51 Location Database (VLDB). When the Cache Manager fills a file request from
52 an application program, it first contacts the VL Server to learn which
53 file server machine currently houses the volume that contains the file.
54 The Cache Manager then requests the file from the File Server process
55 running on that file server machine.
56
57 The VL Server records a trace of its activity in the
58 F</usr/afs/logs/VLLog> file. Use the B<bos getlog> command to display the
59 contents of the file. By default, it records on a minimal number of
60 messages. For instructions on increasing the amount of logging, see
61 L<VLLog(5)>.
62
63 By default, the VL Server runs nine lightweight processes (LWPs). To
64 change the number, use the B<-p> argument.
65
66 This command does not use the syntax conventions of the AFS command
67 suites. Provide the command name and all option names in full.
68
69 =head1 OPTIONS
70
71 =over 4
72
73 =item B<-d> <I<debug level>>
74
75 Sets the detail level for the debugging trace written to the
76 F</usr/afs/logs/VLLog> file. Provide one of the following values, each
77 of which produces an increasingly detailed trace: C<0>, C<1>, C<5>, C<25>,
78 and C<125>. 
79
80 =item B<-p> <I<number of threads>>
81
82 Sets the number of server lightweight processes (LWPs or pthreads) to run.
83 Provide an integer between C<3> and C<64>. The default is C<9>.
84
85 =item B<-jumbo>
86
87 Allows the server to send and receive jumbograms. A jumbogram is
88 a large-size packet composed of 2 to 4 normal Rx data packets that share
89 the same header. The VL Server does not use jumbograms by default, as some
90 routers are not capable of properly breaking the jumbogram into smaller
91 packets and reassembling them.
92
93 =item B<-nojumbo>
94
95 Deprecated; Jumbograms are disabled by default. 
96
97 =item B<-enable_peer_stats>
98
99 Activates the collection of Rx statistics and allocates memory for their
100 storage. For each connection with a specific UDP port on another machine,
101 a separate record is kept for each type of RPC (FetchFile, GetStatus, and
102 so on) sent or received. To display or otherwise access the records, use
103 the Rx Monitoring API.
104
105 =item B<-enable_process_stats>
106
107 Activates the collection of Rx statistics and allocates memory for their
108 storage. A separate record is kept for each type of RPC (FetchFile,
109 GetStatus, and so on) sent or received, aggregated over all connections to
110 other machines. To display or otherwise access the records, use the Rx
111 Monitoring API.
112
113 =item B<-allow-dotted-principals>
114
115 By default, the RXKAD security layer will disallow access by Kerberos
116 principals with a dot in the first component of their name. This is to avoid
117 the confusion where principals user/admin and user.admin are both mapped to the
118 user.admin PTS entry. Sites whose Kerberos realms don't have these collisions 
119 between principal names may disable this check by starting the server
120 with this option.
121
122 =item B<-auditlog> <I<log path>>
123
124 Turns on audit logging, and sets the path for the audit log.  The audit
125 log records information about RPC calls, including the name of the RPC
126 call, the host that submitted the call, the authenticated entity (user)
127 that issued the call, the parameters for the call, and if the call
128 succeeded or failed.
129
130 =item B<-audit-interface> (file | sysvmq)
131
132 Specifies what audit interface to use. Defaults to C<file>. See
133 L<fileserver(8)> for an explanation of each interface.
134
135 =item B<-rxbind>
136
137 Bind the Rx socket to the primary interface only.  (If not specified, the
138 Rx socket will listen on all interfaces.)
139
140 =item B<-syslog>[=<I<syslog facility>>]
141
142 Specifies that logging output should go to syslog instead of the normal log
143 file. B<-syslog>=I<FACILITY> can be used to specify to which facility the log
144 message should be sent. Logging message sent to syslog are tagged with the
145 string "vlserver".
146
147 =item B<-noauth>
148
149 Turns off all authorization checks, and allows all connecting users to act as
150 administrators, even unauthenticated users. The use of this option is
151 inherently insecure, and should only be used in controlled environments for
152 experimental or debug purposes. See L<NoAuth(5)>.
153
154 =item B<-smallmem>
155
156 Specifies that the vlserver should limit its memory usage during certain
157 operations, and return an error to the calling client instead of allocating
158 more memory. This option is only useful on systems where memory is severely
159 limited, and should not be needed on any remotely modern system.
160
161 =item B<-rxmaxmtu> <I<bytes>>
162
163 Sets the maximum transmission unit for the RX protocol.
164
165 =item B<-trace> <I<trace file>>
166
167 Turns on low-level Rx packet tracing, and logs the trace information to the
168 specified file. The trace file can be later dumped into a human-readable form
169 with a tool called B<dumptrace>.
170
171 It is not recommended to turn on this option during normal operation, since the
172 detailed tracing may cause performance issues and use up a lot of disk space.
173
174 =item B<-logfile> <I<log file>>
175
176 Sets the file to use for server logging. If logfile is not specified, and
177 no other logging options are supplied, this will be F</usr/afs/logs/VLLog>.
178 Note that this option is intended for debugging and testing purposes.
179 Changing the location of the log file from the command line may result
180 in undesirable interactions with tools such as B<bos>.
181
182 =item B<-transarc-logs>
183
184 Use Transarc style logging features. Rename the log file
185 F</usr/afs/logs/VLLog> to F</usr/afs/logs/VLLog.old> when the VL Server is
186 restarted.  This option is provided for compatibility with older versions.
187
188 =item B<-database> | B<-db> <I<database path>>
189
190 Set the location of the database used by this program. This option is
191 intended primarily for testing purposes.
192
193 =item B<-config> <I<configuration directory>>
194
195 Set the location of the configuration directory used to configure this
196 service. In a typical configuration this will be F</usr/afs/etc> - this
197 option allows the use of alternative configuration locations for testing
198 purposes.
199
200 =item B<-restricted_query> (anyuser | admin)
201
202 Restrict RPCs that query information about volumes to a specific group
203 of users. Only the RPCs that are not used by cache managers will be
204 restricted, since cache manager connections to the Volume Server are
205 always unauthenticated. You can use C<admin> to restrict to AFS
206 administrators.  The C<anyuser> option doesn't restrict the RPCs and
207 leaves it open for all users including unauthenticated users, this is
208 the default.
209
210 =item B<-s2scrypt> (rxgk-crypt | never)
211
212 Specify C<rxgk-crypt> to use rxgk connections with per-packet encryption for
213 server-to-server (s2s) communication. Specify C<never> to use rxkad connections
214 instead, without per-packet encryption ("rxkad_clear").
215
216 The default is currently C<never>.
217
218 =item B<-help>
219
220 Prints the online help for this command. All other valid options are
221 ignored.
222
223 =back
224
225 =head1 EXAMPLES
226
227 The following B<bos create> command creates a vlserver process on the
228 machine C<fs2.example.com> that uses six lightweight processes. Type the
229 command on a single line:
230
231    % bos create -server fs2.example.com -instance vlserver -type simple \
232                 -cmd "/usr/afs/bin/vlserver -p 6"
233
234 =head1 PRIVILEGE REQUIRED
235
236 The issuer must be logged in as the superuser C<root> on a file server
237 machine to issue the command at a command shell prompt. It is conventional
238 instead to create and start the process by issuing the B<bos create>
239 command.
240
241 =head1 SEE ALSO
242
243 L<BosConfig(5)>,
244 L<VLLog(5)>,
245 L<vldb.DB0(5)>,
246 L<bos_create(8)>,
247 L<bos_getlog(8)>
248
249 =head1 COPYRIGHT
250
251 IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved.
252
253 This documentation is covered by the IBM Public License Version 1.0.  It was
254 converted from HTML to POD by software written by Chas Williams and Russ
255 Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.