=head1 NAME
-afsd - Initializes the Cache Manager and starts related daemons
+afsd, afsd.fuse - Initializes the Cache Manager and starts related daemons
=head1 SYNOPSIS
S<<< [B<-confdir> <I<configuration directory>>] >>>
S<<< [B<-daemons> <I<number of daemons to use>>] >>>
S<<< [B<-dcache> <I<number of dcache entries>>] >>> [B<-debug>]
- [B<-dynroot>] [B<-enable_peer_stats>] [B<-enable_process_stats>]
- [B<-fakestat>] [B<-fakestat-all>]
+ [B<-dynroot>] [B<-dynroot-sparse>] [B<-enable_peer_stats>]
+ [B<-enable_process_stats>] [B<-fakestat>] [B<-fakestat-all>]
S<<< [B<-files> <I<files in cache>>] >>>
S<<< [B<-files_per_subdir> <I<log(2) of files per dir>> ] >>>
[B<-help>] S<<< [B<-logfile> <I<Place to keep the CM log>>] >>>
S<<< [B<-stat> <I<number of stat entries>>] >>> [B<-verbose>]
[B<-disable-dynamic-vcaches>]
S<<< [B<-volumes> <I<number of volume entries>>] >>>
- [B<-waitclose>]
+ [B<-waitclose>] [B<-rxmaxfrags> <I<max # of fragments>>]
=for html
</div>
The B<afsd> command initializes the Cache Manager on an AFS client machine
by transferring AFS-related configuration information into kernel memory
-and starting several daemons. More specifically, the B<afsd> command
-performs the following actions:
+and starting several daemons. B<afsd.fuse> is an experimental variant that
+initializes a FUSE-based Cache Manager instead of one based on a kernel
+module.
+
+The B<afsd> command performs the following actions:
=over 4
By default, the list of database server machines is transferred into the
kernel from the F</usr/vice/etc/CellServDB> file. Alternatively, when the
B<-afsdb> option is used, the list of database server machines is taken
-from the AFSDB DNS records for each cell. After initialization, use the
+from the DNS SRV or AFSDB records for each cell. After initialization, use the
B<fs newcell> command to change the kernel-resident list without having to
reboot.
To override the default chunk size for either type of cache, use the
B<-chunksize> argument to provide an integer to be used as an exponent of
-two; see L<OPTIONS> for details. For a memory cache, if total cache size
+two; see L</OPTIONS> for details. For a memory cache, if total cache size
divided by chunk size leaves a remainder, the B<afsd> program rounds down
the number of dcache entries, resulting in a slightly smaller cache.
status information about cached AFS files. The default is based on the
size of the cache. Use the B<-stat> argument to override the default.
-=item *
-
-If the B<-settime> option is specified, then it randomly selects a file
-server machine in the local cell as the source for the correct time. Every
-five minutes thereafter, the local clock is adjusted (if necessary) to
-match the file server machine's clock. This is not enabled by default. It
-is recommended, instead, that the Network Time Protocol Daemon be used to
-synchronize the time.
-
=back
In addition to setting cache configuration parameters, the B<afsd> program
=item *
One I<server connection> daemon, which sends a probe to the File
-Server every few minutes to check that it is still accessible. If the
-B<-settime> option is set, it also synchronizes the machine's clock
-with the clock on a randomly-chosen file server machine. There is
-always one server connection daemon.
+Server every few minutes to check that it is still accessible.
=item *
=back
+B<afsd.fuse> is a variant of B<afsd> that, instead of initializing a Cache
+Manager implemented as a kernel module, initializes a FUSE-based AFS
+client. FUSE (Filesystem in USErspace) is a Linux-only mechanism for
+providing a file system through a purely user-space daemon without a
+kernel module component. B<afsd.fuse> takes all of the same options as
+B<afsd>.
+
This command does not use the syntax conventions of the AFS command
suites. Provide the command name and all option names in full.
Be sure to set the UDP timeouts on the firewall to be at least twenty
minutes for the best callback performance.
+B<afsd.fuse> was first introduced in OpenAFS 1.5.74. It is only available
+if OpenAFS was built with the C<--enable-fuse-client> configure switch.
+It should be considered experimental.
+
=head1 OPTIONS
=over 4
=item B<-afsdb>
-Enable afsdb support. This will use DNS to lookup the AFSDB record and
+Enable afsdb support. This will use DNS to lookup the SRV or AFSDB records and
use that for the database servers for each cell instead of the values
in the F<CellServDB> file. This has the advantage of only needing to
-update one DNS record to reconfigure the AFS clients for a new
+update one set of DNS records to reconfigure the AFS clients for a new
database server as opposed to touching all of the clients, and also
allows one to access a cell without preconfiguring its database
-servers in F<CellServDB>. The format of AFSDB records is defined in
-RFC 1183.
+servers in F<CellServDB>. The format of SRV records is defined in
+RFC 5864, and the AFSDB record format is in RFC 1183.
=item B<-backuptree>
which provides equivalent functionality to the most commonly used symbolic
links.
+When the dynamic root (B<-dynroot>, B<-dynroot-sparse>) and the fake stat
+(B<-fakestat>, B<-fakestat-all>) modes are in effect, the cache manager
+provides a special directory named F</afs/.:mount> which allows access to
+volumes by volume name or ID. The F</afs/.:mount> directory appears to be
+empty, but any name in the form of I<cell>:I<volume> will be resolved as a
+read-write mount point to the specified volume. For example, the
+I<user.jdoe> volume in the I<example.com> cell would be accessible at the
+following path: F</afs/.:mount/example.com:user.jdoe>. This dynamic mount
+feature is recommended only for temporary access to a volume. Linux-based
+cache managers provide this dynamic mount feature even when dynamic root
+(B<-dynroot>, B<-dynroot-sparse>) is not in effect.
+
+=item B<-dynroot-sparse>
+
+In addition to operating in the manner described for dynroot above,
+cells other than the local cell are not shown by default until a lookup
+occurs. Cell aliases as set in the CellAliases file are shown as normal,
+although they may appear to be dangling links until traversed.
+
=item B<-enable_peer_stats>
Activates the collection of Rx statistics and allocates memory for their
Finder program doesn't try to contact every AFS cell the system knows
about.
+Note that, for the purposes of B<-fakestat>, local cellular mounts count
+as "cross-cell" mounts. That is, if the local cell is C<localcell>, a
+mount for C<localcell:root.cell> will count as a "cross-cell" mount and
+so stat calls for it will be faked with B<-fakestat>. In practice, local
+cellular mounts are rare and generally discouraged, so this should not
+generally make a difference.
+
=item B<-fakestat-all>
Return fake values for stat calls on all mounts, not just cross-cell
Specifies the number of F<VI<n>> files to create in the cache directory
for a disk cache, overriding the default that is calculated as described
-in L<DESCRIPTION>. Each F<VI<n>> file accommodates a chunk of data, and
+in L</DESCRIPTION>. Each F<VI<n>> file accommodates a chunk of data, and
can grow to a maximum size of 64 KB by default. Do not combine this
argument with the B<-memcache> argument.
=item B<-mem_alloc_sleep>
-Allows sleeps when allocating a memory cache.
+This option is obsolete and no longer has any effect.
=item B<-memcache>
=item B<-nosettime>
-This is enabled by default. It prevents the Cache Manager from
-synchronizing its clock with the clock on a server machine selected at
-random by checking the time on the server machine every five minutes.
-This is the recommended behavior; instead of the AFS Cache Manager, the
-Network Time Protocol Daemon should be used to synchronize the system
-time.
+This option is obsolete and no longer has any effect. The operating system
+provided time keeping daemons should be used to maintain the system time.
=item B<-prealloc> <I<number of preallocated blocks>>
Bind the Rx socket (one interface only).
+=item B<-rxmaxfrags> <I<max # of fragments>>
+
+Set a limit for the maximum number of UDP fragments Rx will send per Rx
+packet, and the maximum number of fragments Rx thinks it can receive when
+advertising its receive size to peers. Practically speaking, setting this
+option means that you will not see Rx data packets that are broken into more
+than N fragments, where N is the value specified for this option. Setting this
+option to 1 effectively prevents fragmentation, and can be useful when dealing
+with networking equipment that does not properly handle UDP fragments.
+
+Note that this option just specifies a maximum. The actual number of fragments
+seen on the wire may be less than what is specified, depending on the
+configuration of the peer.
+
=item B<-rxmaxmtu> <I<value for maximum MTU>>
Set a limit for the largest maximum transfer unit (network packet size) that
=item B<-settime>
-Enable native AFS time synchronization. This option is the opposite of
-B<-nosettime> and cannot be used with the B<-nosettime> option.
+This option is obsolete and no longer has any effect. The operating system
+provided time keeping daemons should be used to maintain the system time.
=item B<-shutdown>
L<CellServDB(5)>,
L<cacheinfo(5)>
-RFC 1183 L<http://www.faqs.org/rfcs/rfc1183.html>
+RFC 5864 L<http://www.ietf.org/rfc/rfc5864.txt>
+RFC 1183 L<http://www.ietf.org/rfc/rfc1183.txt>
=head1 COPYRIGHT