Import Upstream version 1.8.5
[hcoop/debian/openafs.git] / doc / man-pages / pod8 / afsd.pod
CommitLineData
805e021f
CE
1=head1 NAME
2
3afsd, afsd.fuse - Initializes the Cache Manager and starts related daemons
4
5=head1 SYNOPSIS
6
7=for html
8<div class="synopsis">
9
10B<afsd> [B<-afsdb>] [B<-backuptree>]
11 S<<< [B<-biods> <I<number of bkg I/O daemons (aix vm)>>] >>>
12 S<<< [B<-blocks> <I<1024 byte blocks in cache>>] >>>
13 S<<< [B<-cachedir> <I<cache directory>>] >>>
14 S<<< [B<-chunksize> <I<log(2) of chunk size>>] >>>
15 S<<< [B<-confdir> <I<configuration directory>>] >>>
16 S<<< [B<-daemons> <I<number of daemons to use>>] >>>
17 S<<< [B<-dcache> <I<number of dcache entries>>] >>> [B<-debug>]
18 [B<-dynroot>] [B<-dynroot-sparse>] [B<-enable_peer_stats>]
19 [B<-enable_process_stats>] [B<-fakestat>] [B<-fakestat-all>]
20 S<<< [B<-files> <I<files in cache>>] >>>
21 S<<< [B<-files_per_subdir> <I<log(2) of files per dir>> ] >>>
22 [B<-help>] S<<< [B<-logfile> <I<Place to keep the CM log>>] >>>
23 S<<< [B<-inumcalc>] <I<method>> >>>
24 [B<-mem_alloc_sleep>] [B<-memcache>]
25 S<<< [B<-mountdir> <I<mount location>>] >>> [B<-nomount>]
26 [B<-nosettime>]
27 S<<< [B<-prealloc> <I<number of 'small' preallocated blocks>>] >>>
28 [B<-rmtsys>] S<<< [B<-rootvol> <I<name of AFS root volume>>] >>>
29 [B<-rxbind>] S<<< [B<-rxmaxmtu> value for maximum MTU ] >>>
30 S<<< [B<-rxpck> value for rx_extraPackets ] >>>
31 [B<-settime>] [B<-shutdown>]
32 S<<< [B<-splitcache> <I<RW/RO ratio>>] >>>
33 S<<< [B<-stat> <I<number of stat entries>>] >>> [B<-verbose>]
34 [B<-disable-dynamic-vcaches>]
35 S<<< [B<-volumes> <I<number of volume entries>>] >>>
36 [B<-waitclose>] [B<-rxmaxfrags> <I<max # of fragments>>]
37 S<<< [B<-volume-ttl> <I<vldb cache timeout>>] >>>
38
39=for html
40</div>
41
42=head1 DESCRIPTION
43
44The B<afsd> command initializes the Cache Manager on an AFS client machine
45by transferring AFS-related configuration information into kernel memory
46and starting several daemons. B<afsd.fuse> is an experimental variant that
47initializes a FUSE-based Cache Manager instead of one based on a kernel
48module.
49
50The B<afsd> command performs the following actions:
51
52=over 4
53
54=item *
55
56Sets a field in kernel memory that defines the machine's cell
57membership. Some Cache Manager-internal operations and system calls
58consult this field to learn which cell to execute in. (The AFS command
59interpreters refer to the F</usr/vice/etc/ThisCell> file instead.) This
60information is transferred into the kernel from the
61F</usr/vice/etc/ThisCell> file and cannot be changed until the B<afsd>
62program runs again.
63
64=item *
65
66Places in kernel memory the names and Internet addresses of the database
67server machines in the local cell and (optionally) foreign cells. The
68appearance of a cell's database server machines in this list enables the
69Cache Manager to contact them and to access files in the cell. Omission of
70a cell from this list, or incorrect information about its database server
71machines, prevents the Cache Manager from accessing files in it.
72
73By default, the list of database server machines is transferred into the
74kernel from the F</usr/vice/etc/CellServDB> file. Alternatively, when the
75B<-afsdb> option is used, the list of database server machines is taken
76from the DNS SRV or AFSDB records for each cell. After initialization, use the
77B<fs newcell> command to change the kernel-resident list without having to
78reboot.
79
80=item *
81
82Mounts the root of the AFS filespace on a directory on the machine's local
83disk, according to either the first field in the
84F</usr/vice/etc/cacheinfo> file (the default) or the B<afsd> command's
85B<-mountdir> argument. The conventional value is F</afs>.
86
87=item *
88
89Determines which volume to mount at the root of the AFS file tree. The
90default is the volume C<root.afs>; use the B<-rootvol> argument to
91override it. Although the base (read/write) form of the volume name is the
92appropriate value, the Cache Manager has a bias for accessing the
93read-only version of the volume (by convention, C<root.afs.readonly>) if
94it is available.
95
96=item *
97
98Configures the cache on disk (the default) or in machine memory if the
99B<-memcache> argument is provided. In the latter case, the B<afsd> program
100allocates space in machine memory for caching, and the Cache Manager uses
101no disk space for caching even if the machine has a disk.
102
103=item *
104
105Defines the name of the local disk directory devoted to caching, when the
106B<-memcache> argument is not used. If necessary, the B<afsd> program
107creates the directory (its parent directory must already exist). It does
108not remove the directory that formerly served this function, if one
109exists.
110
111The second field in the F</usr/vice/etc/cacheinfo> file is the source for
112this name. The standard value is F</usr/vice/cache>. Use the B<-cachedir>
113argument to override the value in the B<cacheinfo> file.
114
115=item *
116
117Sets the size of the cache. The default source for the value is the third
118field in the F</usr/vice/etc/cacheinfo> file, which specifies a number of
119kilobytes.
120
121For a memory cache, the following arguments to the afsd command override
122the value in the B<cacheinfo> file:
123
124=over 4
125
126=item *
127
128The B<-blocks> argument, to specify a different number of kilobyte blocks.
129
130=item *
131
132The B<-dcache> and B<-chunksize> arguments together, to set both the
133number of dcache entries and the chunk size (see below for definition of
134these parameters). In this case, the B<afsd> program derives cache size by
135multiplying the two values. Using this combination is not recommended, as
136it requires the issuer to perform the calculation beforehand to determine
137the resulting cache size.
138
139=item *
140
141The B<-dcache> argument by itself. In this case, the B<afsd> program
142derives cache size by multiplying the value specified by the B<-dcache>
143argument by the default memory cache chunk size of eight kilobytes. Using
144this argument is not recommended, as it requires the issuer to perform the
145calculation beforehand to determine the resulting cache size.
146
147=back
148
149For satisfactory memory cache performance, the specified value must leave
150enough memory free to accommodate all other processes and commands that
151can run on the machine. If the value exceeds the amount of memory
152available, the B<afsd> program exits without initializing the Cache
153Manager and produces the following message on the standard output stream:
154
155 afsd: memCache allocation failure at <number> KB
156
157where <number> is how many kilobytes were allocated just before the
158failure.
159
160For a disk cache, use the B<-blocks> argument to the B<afsd> command to
161override the value in the B<cacheinfo> file. The value specified in either
162way sets an absolute upper limit on cache size; values provided for other
163arguments (such as B<-dcache> and B<-chunksize>) never result in a larger
164cache. The B<afsd> program rejects any setting larger than 95% of the
165partition size, and exits after generating an error message on the
166standard output stream, because the cache implementation itself requires a
167small amount of disk space and overfilling the partition can cause the
168client machine to panic.
169
170To change the size of a disk cache after initialization without rebooting,
171use the B<fs setcachesize> command; the setting persists until the B<afsd>
172command runs again or the B<fs setcachesize> command is reissued. The B<fs
173setcachesize> command does not work for memory caches.
174
175=item *
176
177Sets the size of each cache I<chunk>, and by implication the amount of
178data that the Cache Manager requests at a time from the File Server (how
179much data per fetch RPC, since AFS uses partial file transfer).
180
181For a disk cache, a chunk is a F<VI<n>> file and this parameter sets the
182maximum size to which each one can expand. For a memory cache, each chunk
183is a collection of contiguous memory blocks. The default for a disk cache
184is between 256 KB and 1 MB depending on the size of the cache. The default
185for a memory cache is 8 KB.
186
187To override the default chunk size for either type of cache, use the
188B<-chunksize> argument to provide an integer to be used as an exponent of
189two; see L</OPTIONS> for details. For a memory cache, if total cache size
190divided by chunk size leaves a remainder, the B<afsd> program rounds down
191the number of dcache entries, resulting in a slightly smaller cache.
192
193=item *
194
195Sets the number of chunks in the cache. For a memory cache, the number of
196chunks is equal to the cache size divided by the chunk size. For a disk
197cache, the number of chunks (F<VI<n>> files) is set to the largest
198of the following unless the B<-files> argument is used to set the value
199explicitly:
200
201=over 4
202
203=item *
204
205100
206
207=item *
208
2091.5 times the result of dividing cache size by chunk size
210(I<cachesize>/I<chunksize> * 1.5)
211
212=item *
213
214The result of dividing cachesize by 10 KB (I<cachesize>/10240)
215
216=back
217
218=item *
219
220Sets the number of I<dcache entries> allocated in machine memory for
221storing information about the chunks in the cache.
222
223For a disk cache, the F</usr/vice/cache/CacheItems> file contains one
224entry for each F<VI<n>> file. By default, one half the number of
225these entries (but not more that 2,000) are duplicated as dcache entries
226in machine memory for quicker access.
227
228For a memory cache, there is no F<CacheItems> file so all information
229about cache chunks must be in memory as dcache entries. Thus, there is no
230default number of dcache entries for a memory cache; instead, the B<afsd>
231program derives it by dividing the cache size by the chunk size.
232
233To set the number of dcache entries, use the B<-dcache> argument; the
234specified value can exceed the default limit of 2,000. Using this argument
235is not recommended for either type of cache. Increasing the number of
236dcache entries for a disk cache sometimes improves performance (because
237more entries are retrieved from memory rather than from disk), but only
238marginally. Using this argument for a memory cache requires the issuer to
239calculate the cache size by multiplying this value by the chunk size.
240
241=item *
242
243Sets the number of I<stat> entries available in machine memory for caching
244status information about cached AFS files. The default is based on the
245size of the cache. Use the B<-stat> argument to override the default.
246
247=back
248
249In addition to setting cache configuration parameters, the B<afsd> program
250starts the following daemons. (On most system types, these daemons appear
251as nameless entries in the output of the UNIX B<ps> command.)
252
253=over 4
254
255=item *
256
257One I<callback> daemon, which handles callbacks. It also responds to the
258File Server's periodic probes, which check that the client machine is
259still alive.
260
261=item *
262
263One I<maintenance> daemon, which performs the following tasks:
264
265=over 4
266
267=item *
268
269Garbage collects obsolete data (for example, expired tokens) from kernel
270memory.
271
272=item *
273
274Synchronizes files.
275
276=item *
277
278Refreshes information from read-only volumes once per hour.
279
280=item *
281
282Does delayed writes for NFS clients if the machine is running the NFS/AFS
283Translator.
284
285=back
286
287=item *
288
289One I<cache-truncation> daemon, which flushes the cache when free space is
290required, by writing cached data and status information to the File
291Server.
292
293=item *
294
295One I<server connection> daemon, which sends a probe to the File
296Server every few minutes to check that it is still accessible.
297
298=item *
299
300One or more I<background> daemons that improve performance by pre-fetching
301files and performing background (delayed) writes of saved data into AFS.
302
303The default number of background daemons is two, enough to service at
304least five simultaneous users of the machine. To increase the number, use
305the B<-daemons> argument. A value greater than six is not generally
306necessary.
307
308=item *
309
310On some system types, one I<Rx listener> daemon, which listens for
311incoming RPCs.
312
313=item *
314
315On some system types, one I<Rx event> daemon, which reviews the Rx
316system's queue of tasks and performs them as appropriate. Most items in
317the queue are retransmissions of failed packets.
318
319=item *
320
321On machines that run AIX with virtual memory (VM) integration, one or more
322I<VM> daemons (sometimes called I<I/O> daemons, which transfer data
323between disk and machine memory. The number of them depends on the setting
324of the B<-biods> and B<-daemons> arguments:
325
326=over 4
327
328=item *
329
330If the B<-biods> argument is used, it sets the number of VM daemons.
331
332=item *
333
334If only the B<-daemons> argument is used, the number of VM daemons is
335twice the number of background daemons.
336
337=item *
338
339If neither argument is used, there are five VM daemons.
340
341=back
342
343=back
344
345B<afsd.fuse> is a variant of B<afsd> that, instead of initializing a Cache
346Manager implemented as a kernel module, initializes a FUSE-based AFS
347client. FUSE (Filesystem in USErspace) is a Linux-only mechanism for
348providing a file system through a purely user-space daemon without a
349kernel module component. B<afsd.fuse> takes all of the same options as
350B<afsd>.
351
352This command does not use the syntax conventions of the AFS command
353suites. Provide the command name and all option names in full.
354
355=head1 CAUTIONS
356
357Before using the B<-shutdown> parameter, use the standard UNIX B<umount>
358command to unmount the AFS root directory (by convention, F</afs>). On
359Linux, unloading the AFS kernel module and then loading it again before
360restarting AFS after B<-shutdown> is recommended.
361
362AFS has for years had difficulties with being stopped and restarted
363without an intervening reboot. While most of these issues have been
364ironed out, stopping and restarting AFS is not recommended unless
365necessary and rebooting before restarting AFS is still the safest course
366of action. This does not apply to Linux; it should be safe to restart the
367AFS client on Linux without rebooting.
368
369In contrast to many client-server applications, not all communication is
370initiated by the client. When the AFS client opens a file, it registers a
371callback with the AFS server. If the file changes, the server notifies the
372client that the file has changed and that all cached copies should be
373discarded. In order to enable full functionality on the AFS client,
374including all command-line utilities, the following UDP ports must be open
375on an firewalls between the client and the server:
376
377 fileserver 7000/udp
378 cachemanager 7001/udp (OpenAFS client. Arla uses 4711/udp)
379 ptserver 7002/udp
380 vlserver 7003/udp
381 kaserver 7004/udp (not needed with Kerberos v5)
382 volserver 7005/udp
383 reserved 7006/udp (for future use)
384 bosserver 7007/udp
385
386Clients will also need to be able to contact your Kerberos KDC to
387authenticate. If you are using B<kaserver> and B<klog>, you need to allow
388inbound and outbound UDP on ports >1024 (probably 1024<port<2048 would
389suffice depending on the number of simultaneous B<klog>s).
390
391Be sure to set the UDP timeouts on the firewall to be at least twenty
392minutes for the best callback performance.
393
394B<afsd.fuse> was first introduced in OpenAFS 1.5.74. It is only available
395if OpenAFS was built with the C<--enable-fuse-client> configure switch.
396It should be considered experimental.
397
398=head1 OPTIONS
399
400=over 4
401
402=item B<-afsdb>
403
404Enable afsdb support. This will use DNS to lookup the SRV or AFSDB records and
405use that for the database servers for each cell instead of the values
406in the F<CellServDB> file. This has the advantage of only needing to
407update one set of DNS records to reconfigure the AFS clients for a new
408database server as opposed to touching all of the clients, and also
409allows one to access a cell without preconfiguring its database
410servers in F<CellServDB>. The format of SRV records is defined in
411RFC 5864, and the AFSDB record format is in RFC 1183.
412
413=item B<-backuptree>
414
415Prefer backup volumes for mountpoints in backup volumes. This option means
416that the AFS client will prefer to resolve mount points to backup volumes
417when a parent of the current volume is a backup volume. This is similar to
418the standard behaviour of preferring read-only volumes over read-write
419volumes when the parent volume is a read-only volume.
420
421=item B<-biods> <I<number of I/O daemons>>
422
423Sets the number of VM daemons dedicated to performing I/O operations on a
424machine running a version of AIX with virtual memory (VM) integration. If
425both this argument and the B<-daemons> argument are omitted, the default
426is five. If this argument is omitted but the B<-daemons> argument is
427provided, the number of VM daemons is set to twice the value of the
428B<-daemons> argument.
429
430=item B<-blocks> <I<blocks in cache>>
431
432Specifies the number of kilobyte blocks to be made available for caching
433in the machine's cache directory (for a disk cache) or memory (for a
434memory cache), overriding the default defined in the third field of the
435F</usr/vice/etc/cacheinfo> file. For a disk cache, the value cannot exceed
43695% of the space available in the cache partition. If using a memory
437cache, do not combine this argument with the B<-dcache> argument, since
438doing so can possibly result in a chunk size that is not an exponent of 2.
439
440=item B<-cachedir> <I<cache directory>>
441
442Names the local disk directory to be used as the cache. This value
443overrides the default defined in the second field of the
444F</usr/vice/etc/cacheinfo> file.
445
446=item B<-chunksize> <I<chunk size>>
447
448Sets the size of each cache chunk. The integer provided, which must be
449from the range C<0> to C<30>, is used as an exponent on the number 2. If not
450supplied, a default chunksize will be determined based on the cache type and
451cache size, and will range from C<13> (8KB) for memory cache and C<18> to
452C<20> (256 KB to 1MB) for disk cache. A value of C<0> or less, or greater than
453C<30>, sets chunk size to the appropriate default. Values less than C<10>
454(which sets chunk size to a 1 KB) are not recommended. Combining this
455argument with the B<-dcache> argument is not recommended because it
456requires that the issuer calculate the cache size that results.
457
458B<-chunksize> is an important option when tuning for performance. Setting
459this option to larger values can increase performance when dealing with
460large files.
461
462=item B<-confdir> <I<configuration directory>>
463
464Names a directory other than the F</usr/vice/etc> directory from which to
465fetch the F<cacheinfo>, F<ThisCell>, and F<CellServDB> configuration
466files.
467
468=item B<-daemons> <I<number of daemons to use>>
469
470Specifies the number of background daemons to run on the machine. These
471daemons improve efficiency by doing prefetching and background writing of
472saved data. This value overrides the default of C<2>, which is adequate
473for a machine serving up to five users. Values greater than C<6> are not
474generally more effective than C<6>.
475
476Note: On AIX machines with integrated virtual memory (VM), the number of
477VM daemons is set to twice the value of this argument, if it is provided
478and the B<-biods> argument is not. If both arguments are omitted, there
479are five VM daemons.
480
481=item B<-dcache> <I<number of dcache entries>>
482
483Sets the number of dcache entries in memory, which are used to store
484information about cache chunks. For a disk cache, this overrides the
485default, which is 50% of the number of F<VI<n>> files (cache chunks). For
486a memory cache, this argument effectively sets the number of cache chunks,
487but its use is not recommended, because it requires the issuer to
488calculate the resulting total cache size (derived by multiplying this
489value by the chunk size). Do not combine this argument with the B<-blocks>
490argument, since doing so can possibly result in a chunk size that is not
491an exponent of 2.
492
493=item B<-debug>
494
495Generates a highly detailed trace of the B<afsd> program's actions on the
496standard output stream. The information is useful mostly for debugging
497purposes.
498
499=item B<-dynroot>
500
501The standard behaviour of the AFS client without the B<-dynroot> option is
502to mount the root.afs volume from the default cell on the F</afs> path. The
503F</afs> folder and root.afs volume traditionally shows the folders for
504F<ThisCell> and other cells as configured by the AFS cell administrator.
505
506The B<-dynroot> option changes this. Using this option, the AFS client
507does not mount the root.afs volume on F</afs>. Instead it uses the
508contents of the F<CellServDB> file to populate the listing of cells in
509F</afs>. This is known as a DYNamic ROOT. A cell is not contacted until
510the path F</afs/I<cellname>> if accessed. This functions similarly to an
511automounter. The main advantage of using B<-dynroot> is that the AFS
512client will start properly even without network access, whereas the client
513not using B<-dynroot> will freeze upon startup if cannot contact the
514default cell specified in F<ThisCell> and mount the root.afs
515volume. Dynamic root mode is also sometimes called travelling mode because
516it works well for laptops which don't always have network connectivity.
517
518Two advantages of not using dynroot are that listing F</afs> will usually
519be faster because the contents of F</afs> are limited to what the AFS
520administrator decides and that symbolic links are traditionally created
521by the AFS administrator to provide a short name for the cell (i.e.
522cellname.domain.com is aliased to cellname). However, with dynroot, the
523local system administrator can limit the default contents of F</afs> by
524installing a stripped-down F<CellServDB> file, and if dynroot is in effect,
525the F<CellAlias> file can be used to provide shortname for common AFS cells
526which provides equivalent functionality to the most commonly used symbolic
527links.
528
529When the dynamic root (B<-dynroot>, B<-dynroot-sparse>) and the fake stat
530(B<-fakestat>, B<-fakestat-all>) modes are in effect, the cache manager
531provides a special directory named F</afs/.:mount> which allows access to
532volumes by volume name or ID. The F</afs/.:mount> directory appears to be
533empty, but any name in the form of I<cell>:I<volume> will be resolved as a
534read-write mount point to the specified volume. For example, the
535I<user.jdoe> volume in the I<example.com> cell would be accessible at the
536following path: F</afs/.:mount/example.com:user.jdoe>. This dynamic mount
537feature is recommended only for temporary access to a volume. Linux-based
538cache managers provide this dynamic mount feature even when dynamic root
539(B<-dynroot>, B<-dynroot-sparse>) is not in effect.
540
541=item B<-dynroot-sparse>
542
543In addition to operating in the manner described for dynroot above,
544cells other than the local cell are not shown by default until a lookup
545occurs. Cell aliases as set in the CellAliases file are shown as normal,
546although they may appear to be dangling links until traversed.
547
548=item B<-enable_peer_stats>
549
550Activates the collection of Rx statistics and allocates memory for their
551storage. For each connection with a specific UDP port on another machine,
552a separate record is kept for each type of RPC (FetchFile, GetStatus, and
553so on) sent or received. To display or otherwise access the records, use
554the Rx Monitoring API.
555
556=item B<-enable_process_stats>
557
558Activates the collection of Rx statistics and allocates memory for their
559storage. A separate record is kept for each type of RPC (FetchFile,
560GetStatus, and so on) sent or received, aggregated over all connections to
561other machines. To display or otherwise access the records, use the Rx
562Monitoring API.
563
564=item B<-fakestat>
565
566Return fake values for stat calls on cross-cell mounts. This option makes
567an C<ls -l> of F</afs> much faster since each cell isn't contacted, and
568this and the B<-fakestat-all> options are useful on Mac OS X so that the
569Finder program doesn't try to contact every AFS cell the system knows
570about.
571
572Note that, for the purposes of B<-fakestat>, local cellular mounts count
573as "cross-cell" mounts. That is, if the local cell is C<localcell>, a
574mount for C<localcell:root.cell> will count as a "cross-cell" mount and
575so stat calls for it will be faked with B<-fakestat>. In practice, local
576cellular mounts are rare and generally discouraged, so this should not
577generally make a difference.
578
579=item B<-fakestat-all>
580
581Return fake values for stat calls on all mounts, not just cross-cell
582mounts. This and the B<-fakestat> options are useful on Mac OS X so that
583the Finder program doesn't hang when browsing AFS directories.
584
585=item B<-files> <I<files in cache>>
586
587Specifies the number of F<VI<n>> files to create in the cache directory
588for a disk cache, overriding the default that is calculated as described
589in L</DESCRIPTION>. Each F<VI<n>> file accommodates a chunk of data, and
590can grow to a maximum size of 64 KB by default. Do not combine this
591argument with the B<-memcache> argument.
592
593=item B<-files_per_subdir> <I<files per cache subdirectory>>
594
595Limits the number of cache files in each subdirectory of the cache
596directory. The value of the option should be the base-two log of the
597number of cache files per cache subdirectory (so 10 for 1024 files, 14 for
59816384 files, and so forth).
599
600=item B<-help>
601
602Prints the online help for this command. All other valid options are
603ignored.
604
605=item B<-logfile> <I<log file location>>
606
607This option is obsolete and no longer has any effect.
608
609=item B<-inumcalc> <I<method>>
610
611Specifies the method used by the Cache Manager to generate inode numbers for
612files, directories, and symlinks in the AFS filesystem. Valid methods are
613C<compat> and C<md5>. The default method is C<compat>.
614
615When the C<compat> method is in effect, the Cache Manager generates inode
616numbers for a given inode by multiplying the AFS volume number by 65536, adding
617the result to the AFS vnode number, and finally truncating the result to a
618signed 32 bit integer.
619
620When the C<md5> method is in effect, the Cache Manager generates inode numbers
621for a given inode by calculating the MD5 digest of a combination of the cell
622number, volume number, and vnode number. The result is truncated to a signed 32
623bit integer. The C<md5> method is computationally more expensive but greatly
624reduces the chance for inode number collisions, especially when volumes from
625multiple cells are mounted within the AFS filesystem.
626
627=item B<-mem_alloc_sleep>
628
629This option is obsolete and no longer has any effect.
630
631=item B<-memcache>
632
633Initializes a memory cache rather than a disk cache. Do not combine this
634flag with the B<-files> argument.
635
636=item B<-mountdir> <I<mount location>>
637
638Names the local disk directory on which to mount the root of the AFS
639filespace. This value overrides the default defined in the first field of
640the F</usr/vice/etc/cacheinfo> file. If a value other than the F</afs>
641directory is used, the machine cannot access the filespace of cells that
642do use that value.
643
644=item B<-nomount>
645
646Do not mount AFS on startup. The afs global mount must be mounted via
647some other means. This is useful on Mac OS X where /afs is sometimes
648mounted in /Network/afs like other network file systems.
649
650=item B<-nosettime>
651
652This option is obsolete and no longer has any effect. The operating system
653provided time keeping daemons should be used to maintain the system time.
654
655=item B<-prealloc> <I<number of preallocated blocks>>
656
657Specifies the number of pieces of memory to preallocate for the Cache
658Manager's internal use. The default initial value is C<400>, but the Cache
659Manager dynamically allocates more memory as it needs it.
660
661=item B<-rmtsys>
662
663Initializes an additional daemon to execute AFS-specific system calls on
664behalf of NFS client machines. Use this flag only if the machine is an
665NFS/AFS translator machine serving users of NFS client machines who
666execute AFS commands.
667
668=item B<-rootvol> <I<name of AFS root volume>>
669
670Names the read/write volume corresponding to the root directory for the
671AFS file tree (which is usually the F</afs> directory). This value
672overrides the default of the C<root.afs> volume. This option is ignored if
673B<-dynroot> is given.
674
675=item B<-rxbind>
676
677Bind the Rx socket (one interface only).
678
679=item B<-rxmaxfrags> <I<max # of fragments>>
680
681Set a limit for the maximum number of UDP fragments Rx will send per Rx
682packet, and the maximum number of fragments Rx thinks it can receive when
683advertising its receive size to peers. Practically speaking, setting this
684option means that you will not see Rx data packets that are broken into more
685than N fragments, where N is the value specified for this option. Setting this
686option to 1 effectively prevents fragmentation, and can be useful when dealing
687with networking equipment that does not properly handle UDP fragments.
688
689Note that this option just specifies a maximum. The actual number of fragments
690seen on the wire may be less than what is specified, depending on the
691configuration of the peer.
692
693=item B<-rxmaxmtu> <I<value for maximum MTU>>
694
695Set a limit for the largest maximum transfer unit (network packet size) that
696the AFS client on this machine will be willing to transmit. This switch can
697be used where an artificial limit on the network precludes packets as large
698as the discoverable MTU from being transmitted successfully.
699
700=item B<-rxpck> <I<value for rx_extraPackets>>
701
702Set rx_extraPackets to this value. This sets the number of extra Rx
703packet structures that are available to handle Rx connections. This
704value should be increased if the "rxdebug 127.0.0.1 -port 7001
705-rxstats" command shows no free Rx packets. Increasing this value may
706improve OpenAFS client performance in some circumstances.
707
708=item B<-settime>
709
710This option is obsolete and no longer has any effect. The operating system
711provided time keeping daemons should be used to maintain the system time.
712
713=item B<-shutdown>
714
715Shuts down the Cache Manager. Before calling B<afsd> with this option,
716unmount the AFS file system with B<umount>.
717
718=item B<-splitcache> <I<RW/RO Ratio>>
719
720This allows the user to set a certain percentage of the AFS cache be
721reserved for read/write content and the rest to be reserved for read-only
722content. The ratio should be written as a fraction. For example,
723C<-splitcache 75/25> devotes 75% of your cache space to read/write content
724and 25% to read-only.
725
726=item B<-stat> <I<number of stat entries>>
727
728Specifies the number of entries to allocate in the machine's memory for
729recording status information about the AFS files in the cache. If this value
730is not specified, the number of stat entires will be autotuned based on the
731size of the disk cache.
732
733=item B<-verbose>
734
735Generates a detailed trace of the B<afsd> program's actions on the
736standard output stream.
737
738=item B<-volumes> <I<number of volume entries>>
739
740Specifies the number of memory structures to allocate for storing volume
741location information. The default value is C<200>.
742
743=item B<-disable-dynamic-vcaches>
744
745By default, dynamic vcache overrides the B<-stat> option by using the value of
746B<-stat> (or the default) as the initial size of the stat (or vcache) pool and
747increases the pool dynamically as needed on supported platforms. This flag will
748disable this new functionality and honor the '-stat' setting.
749
750=item B<-waitclose>
751
752Has no effect on the operation of the Cache Manager. The behavior it
753affected in previous versions of the Cache Manager, to perform synchronous
754writes to the File Server, is now the default behavior. To perform
755asynchronous writes in certain cases, use the B<fs storebehind> command.
756
757=item B<-volume-ttl>
758
759Specifies the maximum amount of time the Cache Manager will cache volume
760information retrieved from VL Servers.
761
762By default, the Cache Manager will cache read-only volume information as long
763as a volume callback is held for that volume. The callback may be held as long
764as files in the read-only volume are being accessed, with no upper limit. For
765read/write volumes, by default the Cache Manager will cache volume information
766forever, until a fileserver returns a volume-level error in response to
767accessing files in that volume.
768
769Use the B<-volume-ttl> option to specify the maximum amount of time in seconds
770that volume information will be cached, regardless of connectivity to the
771fileservers. Lowering this value can make the Cache Manager recover more
772quickly from certain volume/fileserver errors, but will increase the load on
773the VL Servers for contacted cells.
774
775A typical value is 7200 seconds (2 hours), which is the same as the default
776callback duration for read-only volumes. The minimum valid value is 600 seconds
777(10 minutes).
778
779=back
780
781=head1 EXAMPLES
782
783The B<afsd> command is normally included in the machine's AFS
784initialization file, rather than typed at the command shell prompt. For
785most disk caches, the appropriate form is
786
787 % /usr/vice/etc/afsd
788
789The following command is appropriate when enabling a machine to act as an
790NFS/AFS Translator machine serving more than five users.
791
792 % /usr/vice/etc/afsd -daemons 4 -rmtsys
793
794The following command initializes a memory cache and sets chunk size to 16
795KB (2^14).
796
797 % /usr/vice/etc/afsd -memcache -chunksize 14
798
799=head1 PRIVILEGE REQUIRED
800
801The issuer must be logged in as the local superuser root.
802
803=head1 SEE ALSO
804
805L<fs_newcell(1)>,
806L<afs_cache(5)>,
807L<CellServDB(5)>,
808L<cacheinfo(5)>
809
810RFC 5864 L<http://www.ietf.org/rfc/rfc5864.txt>
811RFC 1183 L<http://www.ietf.org/rfc/rfc1183.txt>
812
813=head1 COPYRIGHT
814
815IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved.
816
817This documentation is covered by the IBM Public License Version 1.0. It
818was converted from HTML to POD by software written by Chas Williams and
819Russ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.