rsalz@uunet.uu.net (Rich Salz) (04/11/90)
Submitted-by: Jan-Simon Pendry <jsp@doc.ic.ac.uk> Posting-number: Volume 21, Issue 99 Archive-name: amd/part11 #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of archive 11 (of 13)." # Contents: doc/amd.tex.2 # Wrapped by rsalz@papaya.bbn.com on Tue Apr 10 15:12:15 1990 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'doc/amd.tex.2' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'doc/amd.tex.2'\" else echo shar: Extracting \"'doc/amd.tex.2'\" \(28104 characters\) sed "s/^X//" >'doc/amd.tex.2' <<'END_OF_FILE' XIf a filesystem type is to be heavily used, it may be worthwhile Xadding a new filesystem type into \amd, but for most uses the Xprogram filesystem should suffice. X XThe {\tt /n} convention says that each directory within {\tt /n} is the Xroot directory of the filesystems on a machine with the corresponding Xname. XSupposing a program, {\tt net-mount}, was available. To provide Xan implementation of {\tt /n} the following map ({\tt net.map}) could be used: X\begin{quote} X\tt X{}*\ \ \ \ type:=program;mount:="/etc/net-mount mount \Var{key} \Var{fs}";\verb+\+ \\ X\mbox{}\ \ \ \ \ unmount:="/etc/net-mount unmount \Var{key} \Var{fs}" X\end{quote} Xwhere {\tt argv[0]} is used to distinguish between mount and unmount requests; X{\tt argv[1]} is the name of the machine; {\tt argv[2]} is the local directory Xunder which to mount the filesystems. XThis could be started with the following command: X\begin{quote} X\tt Xamd ... /n net.map X\end{quote} X X\Section[Symbolic Link Filesystem]{Symbolic Link Filesystem ({\tt type:=link})} X XThe {\em link} filesystem type allows other parts of the filesystem Xto be referenced as if they were mounted under the automounter. XUnder SunOS 4.0 this can also be done using the loopback filesystem, Xhowever that adds an unnecessary extra mount into the system. X XOne common use for the symlink filesystem is {\tt /homes} Xwhich can be made to contain an entry for each user which points Xto their (auto-mounted) home directory. Although this may seem Xrather expensive, it provides a great deal of administrative Xflexibility. X XThe \opt{fs} option specifies the destination of the link, as modified Xby the \opt{sublink} option. If \opt{sublink} is specified, it Xis appended to \Var{fs}{\tt /} and the resulting string is used as the target. X X%\Amd\ keeps track of the local mount points on which it has mounted X%a filesystem. If a second mount would be to the same local mount point, X%\amd\ converts that into a cross-reference to the original mount X%and the new mount is converted into a mount of type {\tt link}. X%References through either name will cause the time-to-live of the X%mount to be extended. X XAn example entry might be: X\begin{quote} X\tt Xjsp\ \ \ host==charm;type:=link;fs:=/home/charm;sublink:=jsp X\end{quote} X X\Section[Automount Filesystem]{Automount Filesystem ({\tt type:=auto})}\label{auto-fs} X XThe {\em auto} filesystem type allows a new automount point to Xbe added below an existing automount point. The new mount point appears Xas a sub-directory of the original mount point. This allows Xsome additional structure to be added, Xfor example to mimic the mount tree of another Xmachine.\footnote{ XFuture work will allow a tree of automount points to be built by Xexamining the exported mount tree of a remote fileserver.} X XThe following option may be specified: X\begin{description} X\item[cache]\label{afs:cache} Xspecifies whether the data in this mount-map should be Xcached. By default, no caching is done in order to conserve memory. XHowever, better performance and reliability can be obtained by caching Xsome or all of a mount-map. If the cache option specifies {\tt all}, Xthe entire map is enumerated when the mount point is created. XIf the cache option specifies {\tt inc}, caching is done incrementally Xas and when data is required. XSome map types do not support cache mode {\tt all}, in which case {\tt inc} Xis used whenever {\tt all} is requested. X XThe default cache mode is {\tt none} which means that no data will be cached. XEach mount map type has a default cache type, usually {\tt inc}, which Xcan be selected by specifying {\tt mapdefault}. X XThe cache mode for a mount map can only be selected on the command line. Starting X\amd\ with the command X\begin{quote} X\tt Xamd /homes hesiod.homes -cache:=inc X\end{quote} Xwill cause {\tt /homes} to be automounted using the {\em Hesiod} name server with local Xincremental caching of all succesfully resolved names. X XAll cached data is forgotten whenever \amd\ receives Xa {\tt SIGHUP} signal. If cache {\tt all} mode was selected, the Xcache will be reloaded. This can be used to inform \amd\ that a map Xhas been updated. In addition, whenever a cache lookup fails and \amd\ needs Xto examine a map, the map's modify time is examined. If the cache is out Xof date with respect to the map then it is flushed as if a {\tt SIGHUP} had Xbeen received. X\end{description} X XThe \opt{fs} option specifies the name of the mount map to use for the new Xmount point. X%If the string ``{\tt .}'' is used then the same map is used; X%in addition the lookup prefix is set to the name of the mount point followed X%by a slash ``{\tt /}''. XThis is the same as specifying {\tt fs:=\$\{map\};pref:=\$\{key\}/}. XThe prefix can be overridden with the \opt{pref} option. XThe prefix alters the name that is looked up in the mount map. If the Xprefix is non-null then it is prepended to the name requested by Xthe kernel before the map is searched. X XThe server {\tt dylan.doc.ic.ac.uk} has two user disks: {\tt /dev/dsk/2s0} and X{\tt /dev/dsk/5s0}. These are accessed as {\tt /home/dylan/dk2} and X{\tt /home/dylan/dk5} respectively. Since {\tt /home} is already an automount Xpoint, this naming is achieved with the following map entries: X\begin{quote}\raggedright X\tt Xdylan\ \ \ \ \ \ \ \ type:=auto;fs:=\Var{map};pref:=\Var{key}/ \\ Xdylan/dk2\ \ \ \ type:=ufs;dev:=/dev/dsk/2s0 \\ Xdylan/dk5\ \ \ \ type:=ufs;dev:=/dev/dsk/5s0 X\end{quote} X X\Section[Direct Automount Filesystem]{Direct Automount Filesystem ({\tt type:=direct})}\label{direct-fs} X XThe {\em direct} filesystem is almost identical to the automount filesystem. XInstead of appearing to be a directory of mount points, it appears Xas a symbolic link to a mounted filesystem. The mount is done at Xthe time the link is accessed. X XDirect automount points are created by specifying the {\tt direct} filesystem Xtype on the command line: X\begin{quote} X\tt Xamd ... /usr/man auto.direct -type:=direct X\end{quote} Xwhere {\tt auto.direct} would contain an entry such as: X\begin{quote}\raggedright X\tt Xusr/man\ \ \ \ -type:=nfs;rfs:=/usr/man \verb+\+ \\ X\ \ \ \ \ \ \ \ \ \ \ rhost:=man-server1\ \ rhost:=man-server2 X\end{quote} XIn this example, {\tt man-server1} and {\tt man-server2} are file servers Xwhich export copies of the manual pages. XNote that the key does {\em not} have a leading ``{\tt /}''. X X\Section{Error Filesystem}\label{error-fs} X XThe {\em error} filesystem type is used internally as a catch-all in Xthe case where none of the other filesystems was selected, or some other Xerror occurred. XLookups always fail with ``No such file or directory''. XAll other operations trivally succeed. X XThe error filesystem is not directly accessible. X X\Section{Inheritance Filesystem}\label{ifs} X XThe inheritance filesystem is not directly accessible. XInstead, internal mount nodes of this type are automatically generated Xwhen \amd\ is started with the ``-r'' option. XAt this time the system mount table ({\tt /etc/mtab}) is scanned to locate Xany filesystems which are already mounted. If any reference to Xthese filesystems is made through \amd\ then instead of attempting Xto mount it, \amd\ simulates the mount and {\em inherits} the Xfilesystem. This allows a new version of \amd\ to be installed Xon a live system simply by killing the old daemon and starting Xthe new one. X X\Chapter{Run-time Administration}\label{chapter:amq} X XIt is sometimes desirable or necessary to exercise external control Xover some of \amd's internal state. To support this requirement, X\amd\ implements an RPC interface which is used by the \amq\ program. X X\Amq\ provides a variety of operations. With no arguments, \amq\ obtains Xa brief list of all existing mounts created by \amd. This is different from Xthe list displayed by {\bf df}(1) since the latter only includes system Xmount points. XThe output from this option includes the following information: X\begin{itemize} X\item the automount point, X\item the filesystem type, X\item the mount map or mount information, X\item the internal, or system mount point. X\end{itemize} XFor example: X\begin{verbatim} X/ auto "root" sky:(pid75) X/homes auto /usr/local/etc/amd.homes /homes X/home auto /usr/local/etc/amd.home /home X/homes/jsp nfs charm:/home/charm /a/charm/home/charm/jsp X/homes/phjk nfs toytown:/home/toytown /a/toytown/home/toytown/ai/phjk X\end{verbatim} X XThe ``-m'' option similar information about mounted filesystems, Xrather than automount points. The output includes the following Xinformation: X\begin{itemize} X\item the mount information, X\item the mount point, X\item the filesystem type, X\item the number of references to this filesystem, X\item the server hostname, X\item the state of the file server, X\item any error which has occured. X\end{itemize} XFor example: X\begin{verbatim} X"root" truth:(pid602) auto 1 localhost is up X../a_master5 /tmp/amd/junk auto 1 localhost is up Xpelican:/home/pelican /a/pelican/home/pelican nfs 1 pelican is up Xtoytown:/home/toytown /a/toytown/home/toytown nfs 5 toytown is up Xgould:/home/gould /a/gould/home/gould nfs 0 gould is up (Permission denied) Xpebbles:/home/pebbles /a/pebbles/home/pebbles nfs 0 pebbles is down X\end{verbatim} XWhen the reference count is zero the filesystem is not mounted but Xthe mount point and server information is still being maintained Xby \amd. X X\Amq\ generally applies an operation, specified by a single letter option, Xto a list of mount points. The default operation is to obtain statistics Xabout each mount point. This is similar to the output shown above Xbut includes information about the number and type of accesses to each Xmount point. X XBy default the local host is used; in an HP-UX cluster the root server Xis used. XTo query \amd\ on another host the ``-h'' option should be used. X XThe ``-u'' option causes the time-to-live interval of the named mount points Xto be expired, thus causing an unmount attempt. This is the only safe way Xto unmount an automounted filesystem. XIt is not possible to unmount a filesystem which has been mounted with Xthe {\tt notimeout} flag. X X%The ``-H'' option informs \amd\ that the specified mount point has hung - X%as if its keepalive timer had expired. X XThe ``-s'' option displays global statistics. If any other options are specified Xor any filesystems named then this option is ignored. X XThe ``-f'' option causes \amd\ to flush the internal mount map cache. This is Xuseful for YP and Hesiod maps since \amd\ does not normally notice when they Xhave been updated. X XThree other operations are implemented. These modify the state of X\amd\ as a whole, rather than any particular filesystem. XThe ``-l'', ``-x'' and ``-D'' options have exactly the same effect Xas \amd's corresponding command line options. However, the ``-l'' Xoption is rejected by \amd\ in version ``\VERSION'' Xfor obvious security reasons. X X X\Chapter{Examples} X X\Section{User Filesystems} XWith more than one fileserver, the directories most frequently Xcross-mounted are those containing user home directories. XA common convention used at Imperial College is to mount Xthe user disks under {\tt /home/}{\em machine}. XTypically, the {\tt /etc/fstab} file\footnote{{\tt /etc/checklist} Xon System V} contained a long list of entries Xsuch as: X\begin{quote} X{\em machine}{\tt :/home/}{\em machine}\ \ \tt /home/{\em machine}\ nfs \ldots X\end{quote} Xfor each fileserver on the network. X XThere are numerous problems with this system. XThe mount list can become quite large, or some of the machines Xmay be down when a system is booted. XWhen a new fileserver is installed, {\tt /etc/fstab} must be Xupdated on every machine, the mount directory created and Xthe filesystem mounted. XIn research environments most Xpeople use the same few workstations, but it is convenient to go Xto a colleague's machine and access your own files. XWhen a server goes down, it can cause a process on a client machine to Xhang. By minimising the mounted filesystems to only include those Xactively being used, there is less chance that a filesystem will be mounted Xwhen a server goes down. X XThe following is a short extract from a map taken from a research fileserver Xat Imperial College: X\begin{verbatim} X/defaults opts:=rw,intr,grpid,nosuid Xcharm host!=${key};type:=nfs;rhost:=${key};rfs:=/home/${key} \ X host==${key};type:=ufs;dev:=/dev/xd0g X# X... X X# X# dylan has two user disks so have a X# top directory in which to mount them. X# Xdylan type:=auto;fs:=${map};pref:=${key}/ X# Xdylan/dk2 host!=dylan;type:=nfs;rhost:=dylan;rfs:=/home/${key} \ X host==dylan;type:=ufs;dev:=/dev/dsk/2s0 X# Xdylan/dk5 host!=dylan;type:=nfs;rhost:=dylan;rfs:=/home/${key} \ X host==dylan;type:=ufs;dev:=/dev/dsk/5s0 X... X# Xtoytown host!=${key};type:=nfs;rhost:=${key};rfs:=/home/${key} \ X host==${key};type:=ufs;dev:=/dev/xy1g X# Xzebedee host!=${key};type:=nfs;rhost:=${key};rfs:=/home/${key} \ X host==${key};type:=ufs;dev:=/dev/dsk/1s0 X# X# Just for access... X# Xgould type:=auto;fs:=${map};pref:=${key}/ Xgould/staff host!=gould;type:=nfs;rhost:=gould;rfs:=/home/${key} X# Xgummo host!=${key};type:=nfs;rhost:=${key};rfs:=/home/${key} X... X\end{verbatim} X XThis map is shared by most of the machines listed so on those Xsystems any of the user disks is accessible via a consistent name. X XNote that when mounting a remote filesystem, the {\em automounted} Xmount point is referenced, so that the filesystem will be mounted if Xit is not yet (at the time the remote mountd obtains the file handle). X X\Section{Home Directories} XOne convention for home directories is to locate them in {\tt /homes} so Xuser {\tt jsp}'s home directory is {\tt /homes/jsp}. XWith more than a single fileserver it is convenient Xto spread user files across several machines. XAll that is required is a mount-map Xwhich converts login names to an automounted directory. X XSuch a map might be started by the command: X\begin{quote} X\tt amd /homes amd.homes X\end{quote} Xwhere the map {\tt amd.homes} contained the entries: X\begin{quote}\raggedright X\tt X/defaults\ \ \ type:=link\ \ \ \# All the entries are of type:=link \\ Xjsp\ \ \ \ \ \ \ \ \ fs:=/home/charm/jsp\\ Xnjw\ \ \ \ \ \ \ \ \ fs:=/home/dylan/dk5/njw\\ X...\\ Xphjk\ \ \ \ \ \ \ \ fs:=/home/toytown/ai/phjk\\ Xsjv\ \ \ \ \ \ \ \ \ fs:=/home/ganymede/sjv X\end{quote} XWhenever a login name is accessed in {\tt /homes} a symbolic link Xappears pointing to the real location of that user's home directory. XIn this example, {\tt /homes/jsp} would appear to be a symbolic link Xpointing to {\tt /home/charm/jsp}. XOf course, {\tt /home} would also be an automount point. X XThis system causes an extra level of symbolic links to be used. XAlthough that turns out to be relatively inexpensive, an alternative is Xto directly mount the required filesystems in the {\tt /homes} Xmap. The required map is simple, but long, and its creation best automated. XThe entry for {\tt jsp} could be: X{\tt\begin{tabbing} Xjsp\ \ \ \ \ \ \= -sublink:=\$\{key\};rfs:=/home/charm {\verb+\+}\kill \\ Xjsp \> -sublink:=\$\{key\};rfs:=/home/charm {\verb+\+}\\ X \> host==charm;type:=ufs;dev:=/dev/xd0g {\verb+\+}\\ X \> host!=charm;type:=nfs;rhost:=charm X\end{tabbing}} X XThis map can become quite big if it contains a large number of Xentries. By combining two other features of \amd\ it can be greatly Xsimplified. First the \UFS\ partitions should be mounted under the Xcontrol of {\tt /etc/fstab}, taking care that they are mounted in the Xsame place that \amd\ would have automounted them. XThe map can then be changed to: X\begin{quote}\raggedright X\tt X/defaults\ \ \ \ type:=nfs;sublink:=\Var{key};opts:=rw,intr,nosuid,grpid\\ Xjsp\ \ \ \ \ \ \ \ \ \ rhost:=charm;rfs:=/home/charm\\ Xnjw\ \ \ \ \ \ \ \ \ \ rhost:=dylan;rfs:=/home/dylan/dk5\\ X...\\ Xphjk\ \ \ \ \ \ \ \ \ rhost:=toytown;rfs:=/home/toytown;sublink:=ai/\Var{key}\\ Xsjv\ \ \ \ \ \ \ \ \ \ rhost:=ganymede;rfs:=/home/ganymede X\end{quote} X XThis map operates as usual on a remote machine (ie \Var{host} $\not=$ \Var{rhost}). XOn the machine where the filesystem is stored (ie \Var{host} $=$ \Var{rhost}), X\amd\ will construct a local filesystem mount point which corresponds to Xthe name of the locally mounted \UFS\ partition. If \amd\ is started Xwith the ``-r'' option then instead of attempting an \NFS\ mount, \amd\ will Xsimply inherit the \UFS\ mount (\see \Ref{ifs}). X X%\Section{System Filesystem} X X\Section{Architecture Sharing} X%At the moment some of the research machines have sets of software X%mounted in {\tt /vol}. This contains subdirectories for \TeX, X%system sources, local sources, prolog libraries and so on. XOften a filesystem will be shared by machines of different architectures. XSeparate trees can be maintained for the executable images for each Xarchitecture, but it may be more convenient to have a shared tree, Xwith distinct subdirectories. X XA shared tree might have the following structure on the fileserver (called X{\tt fserver} in the example): X\begin{quote}\raggedright X\tt Xlocal/tex \\ Xlocal/tex/fonts \\ Xlocal/tex/lib \\ Xlocal/tex/bin \\ Xlocal/tex/bin/sun3 \\ Xlocal/tex/bin/sun4 \\ Xlocal/tex/bin/hp9000 \\ X... X\end{quote} XIn this example, the subdirectories of {\tt local/tex/bin} should be Xhidden when accessed via the automount point (conventionally {\tt /vol}). XA mount-map for {\tt /vol} to achieve this would look like: X{\tt\begin{tabbing} Xtex/fonts\ \ \ \ \ \= \kill \\ X/defaults \> rfs:=/vol;sublink:=\$\{key\};rhost:=fserver;type:=link\\ Xtex \> type:=auto;fs:=\$\{map\};pref:=\$\{key\}/\\ Xtex/fonts \> host!=fserver;type:=nfs\ {\verb+\+}\\ X \> host==fserver;fs:=/usr/local \\ Xtex/lib \> host!=fserver;type:=nfs\ {\verb+\+}\\ X \> host==fserver;fs:=/usr/local \\ Xtex/bin \> -sublink:=\$\{key\}/\$\{arch\} host!=fserver;type:=nfs\ {\verb+\+}\\ X \> host:=fserver;fs:=/usr/local X\end{tabbing}} XWhen {\tt /vol/tex/bin} is referenced, the current machine architecture Xis automatically appended to the path by the \Var{sublink} variable. XThis means that users can have {\tt /vol/tex/bin} in their {\tt PATH} Xwithout concern for architecture dependencies. X X\Section{Wildcard names \& Replicated Servers} XBy using the wildcard facility, \amd\ can {\em overlay} an existing Xdirectory with additional entries. XThe system files are usually mounted under {\tt /usr}. If instead X\amd\ is mounted on {\tt /usr}, additional Xnames can be overlayed to augment or replace names in the ``master'' {\tt /usr}. XA map to do this would have the form: X{\tt\begin{tabbing} Xlocal\ \ \ \ \ \= blah \kill \\ Xlocal \> type:=auto;fs:=local-map\\ Xshare \> type:=auto;fs:=share-map\\ X{}* \> -type:=nfs;rfs:=/export/exec/\$\{arch\};sublink:="\$\{key\}"\ \verb+\+\\ X \> \ \ \ \ rhost:=fserv1\ \ rhost:=fserv2\ \ rhost:=fserv3 \\ X\end{tabbing}} XNote that the assignment to \Var{sublink} is surrounded by double quotes to Xprevent the incoming key from causing the map to be misinterpreted. XThis map has the effect of directing any access to {\tt /usr/local} or {\tt /usr/share} Xto another automount point. XIn this example, it is assumed that the {\tt /usr} files are replicated on Xthree fileservers: {\tt fserv1}, {\tt fserv2} and {\tt fserv3}. XFor any references other than to {\tt local} Xand {\tt share} one of the servers is used and a symbolic link to X{\tt \Var{autodir}/\Var{rhost}/export/exec/\Var{arch}/}{\em whatever} Xis returned once an appropriate filesystem has been mounted. X X\Chapter{Internals} X X\Section{Log Messages} X XIn the following sections a brief explanation is given of some Xof the log messages made by \amd. XWhere the message is in {\tt typewriter} font, it corresponds Xexactly to the message produced by \amd. Words in {\em italic} Xare replaced by an appropriate string. Variables, \Var{{\em var}}, Xindicate that the value of the appropriate variable is output. X XLog messages are either sent direct to a file, Xor logged via the {\bf syslog}(3) mechanism. XMessages are logged with facility {\tt LOG\_DAEMON} when using {\bf syslog}(3). XIn either case, entries in the file are of the form: X\begin{quote} X{\em Unix-date}\ \ {\em hostname} {\tt amd[}{\em pid}{\tt ]}\ \ {\em message} X\end{quote} X X\Subsection{Fatal errors} X\Amd\ attempts to deal with unusual events. XWhenever it is not possible to deal with such an error, \Amd\ will Xlog an appropriate message and, if it cannot possibly continue, will Xeither exit or abort. XThese messages are selected by {\tt -x~fatal} on the command line. XWhen {\bf syslog}(3) is being used, they are logged with Xlevel {\tt LOG\_FATAL}. XEven if \amd\ continues to operate it is likely to remain in a precarious Xstate and should be restarted at the earliest opportunity. X X\begin{description} X\item [\tt Attempting to inherit not-a-filesystem]\mbox{}\\ XThe prototype mount point created during a filesystem restart Xdid not contain a reference to the restarted filesystem. XThis is a ``should never happen'' error. X X\item [\tt Can't bind to domain "{\em yp-domain}"]\mbox{}\\ XA specific YP domain was requested on the command line, but no Xserver for that domain is available on the local net. X X\item [\tt Can't determine IP address of this host ({\em hostname})]\mbox{}\\ XWhen \amd\ starts it determines its own IP address. XIf this lookup fails then \amd\ cannot continue. XThe hostname it looks up is that obtained returned by X{\bf gethostname}(2) system call. X X\item [\tt Can't find root file handle for {\em automount point}]\mbox{}\\ X\Amd\ creates its own file handles for the automount points. XWhen it mounts itself as a server, it must pass these Xfile handles to the local kernel. XIf the filehandle is not obtainable the mount point is ignored. XThis is a ``should never happen'' error. X X\item [\tt Must be root to mount filesystems (euid = {\em euid})]\mbox{}\\ XTo prevent embarrassment, \amd\ makes sure it has appropriate Xsystem priviledges. This amounts to having an euid of 0. XThe check is made after argument processing complete to Xgive non-root users a chance to access the ``-v'' option. X X\item [\tt No work to do - quitting]\mbox{}\\ XNo automount points were given on the command line and so Xthere is no work to do. X X\item [\tt Out of memory in realloc]\mbox{}\\ XWhile attempting to realloc some memory, the memory space Xavailable to \amd\ was exhausted. This is an unrecoverable Xerror. X X\item [\tt Out of memory]\mbox{}\\ XWhile attempting to maalloc some memory, the memory space Xavailable to \amd\ was exhausted. This is an unrecoverable Xerror. X X\item [\tt cannot create rpc/udp service]\mbox{}\\ XEither the NFS or AMQ endpoint could not be created. X X\item [\tt gethostname:\ {\em description}]\mbox{}\\ XThe {\bf gethostname}(2) system call failed during startup. X X\item [\tt host name is not set]\mbox{}\\ XThe {\bf gethostname}(2) system call returned a zero length Xhost name. XThis can happen if \amd\ is started in single user mode just Xafter booting the system. X X\item [\tt ifs\_match called!]\mbox{}\\ XAn internal error occurred while restarting a pre-mounted Xfilesystem. XThis is a ``should never happen'' error. X X\item [\tt mount\_afs:\ {\em description}]\mbox{}\\ XAn error occured while \amd\ was mounting itself. X X\item [\tt run\_rpc failed]\mbox{}\\ XSomehow the main NFS server loop failed. XThis is a ``should never happen'' error. X X\item [\tt unable to free rpc arguments in amqprog\_1]\mbox{}\\ XThe incoming arguments to the AMQ server could not be Xfree'ed. X X\item [\tt unable to free rpc arguments in nfs\_program\_1]\mbox{}\\ XThe incoming arguments to the NFS server could not be Xfree'ed. X X\item [\tt unable to register (AMQ\_PROGRAM, AMQ\_VERSION, udp)]\mbox{}\\ XThe AMQ server could not be registered with the local portmapper Xor the internal RPC dispatcher. X X\item [\tt unable to register (NFS\_PROGRAM, NFS\_VERSION, 0)]\mbox{}\\ XThe NFS server could not be registered with the internal RPC dispatcher. X X\end{description} X X\Subsection{Info messages} X\Amd\ generates information messages to record state changes. XThese messages are selected by {\tt -x~info} on the command line. XWhen {\bf syslog}(3) is being used, they are logged with Xlevel {\tt LOG\_INFO}. XThe messages listed below can be generated Xand are in a format suitable for simple statistical analysis. X``{\em mount-info}'' is the string that is displayed by \amq\ in its mount Xinformation column and placed in the system mount table. X\begin{description} X\item[\tt mount of "\Var{path}" on \Var{fs} timed out]\mbox{}\\ XAttempts to mount a filesystem for the given automount point have failed Xto complete within 30 seconds. X X\item[\tt "\Var{path}" forcibly timed out]\mbox{}\\ XAn automount point has been timed out by the \amq\ command. X X\item[\tt restarting {\em mount-info} on \Var{fs}]\mbox{}\\ XA pre-mounted file system has been noted. X X\item[\tt "\Var{path}" has timed out]\mbox{}\\ XNo access to the automount point has been made within the timeout period. X X\item[\tt file server \Var{rhost} is down - timeout of "\Var{path}" ignored]\mbox{}\\ XAn automount point has timed out, but the corresponding file server is known to be down. XThis message is only produced once for each mount point for which the server is down. X X\item[\tt Re-synchronizing cache for map \Var{map}]\mbox{}\\ XThe named map has been modified and the internal cache is being re-synchronized. X X\item[\tt Filehandle denied for "\Var{rhost}:\Var{rfs}"]\mbox{}\\ XThe mount daemon refused to return a file handle for the requested filesystem. X X\item[\tt Filehandle error for \Var{path}:\Var{rfs}":\ {\em description}]\mbox{}\\ XThe mount daemon gave some other error for the requested filesystem. X X\item[\tt {\em mount-info} restarted fstype \Var{type} on \Var{fs}]\mbox{}\\ X\Amd\ is using a pre-mounted filesystem to satisfy a mount request. X X\item[\tt file server \Var{rhost} type nfs starts up]\mbox{}\\ XA new \NFS\ file server has been referenced and is known to be up. X X\item[\tt file server \Var{rhost} type nfs starts down]\mbox{}\\ XA new \NFS\ file server has been referenced and is known to be down. X X\item[\tt file server \Var{rhost} type nfs is up]\mbox{}\\ XAn \NFS\ file server that was previously down is now up. X X\item[\tt file server \Var{rhost} type nfs is down]\mbox{}\\ XAn \NFS\ file server that was previously up is now down. X X\item[\tt Finishing with status {\em exit-status}]\mbox{}\\ X\Amd\ is about to exit with the given exit status. X X\item[\tt {\em mount-info} mounted fstype \Var{type} on \Var{fs}]\mbox{}\\ XA new file system has been mounted. X X\item[\tt {\em mount-info} unmounted fstype \Var{type} from \Var{fs}]\mbox{}\\ XA file system has been unmounted. X X\item[\tt {\em mount-info} unmounted fstype \Var{type} from \Var{fs} link \Var{fs}/\Var{sublink}]\mbox{}\\ XA file system of which only a sub-directory was in use has been unmounted. X X\end{description} X X\Chapter*{Acknowledgements \& Trademarks} X\addcontentsline{toc}{chapter}{Acknowledgements \& Trademarks} XThanks to the Formal Methods Group at Imperial College for Xsuffering patiently while \amd\ was being developed on their machines. X XThanks to the many people who have helped with the development Xof \amd\, especially Piete Brooks at the Cambridge University Computing Lab for Xmany hours of testing, experimentation and discussion and who also provided Xthe RISC iX and Ultrix ports. X X\begin{trivlist} X\item[{\sf DEC}, {\sf VAX} and {\sf Ultrix}] X are registered trademarks of Digital Equipment Corporation. X\item[{\sf IBM}] Xis a registered trademark of International Business Machines Corporation. X\item[{\sf Sun}, {\sf NFS} and {\sf SunOS}] Xare registered trademarks of Sun Microsystems, Inc. X\item[{\sf Unix}] Xis a registered trademark of AT\&T Bell Laboratories in Xthe USA and other countries. X\item[{\sf UTX}] Xis a registered trademark of Gould, Inc. X\end{trivlist} X X\bibliographystyle{ieeetr} X\bibliography{amd} X X\addcontentsline{toc}{chapter}{Bibliography} X X%\newpage X%\input index X X\end{document} END_OF_FILE if test 28104 -ne `wc -c <'doc/amd.tex.2'`; then echo shar: \"'doc/amd.tex.2'\" unpacked with wrong size! fi # end of 'doc/amd.tex.2' fi echo shar: End of archive 11 \(of 13\). cp /dev/null ark11isdone MISSING="" for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 13 archives. rm -f ark[1-9]isdone ark[1-9][0-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0 exit 0 # Just in case... -- Please send comp.sources.unix-related mail to rsalz@uunet.uu.net. Use a domain-based address or give alternate paths, or you may lose out.