[OpenAFS-devel] Port 2040

Jeffrey Hutzelman Jeffrey Hutzelman <jhutz@cmu.edu>
Fri, 19 Jan 2001 21:48:45 -0500 (EST)


On Thu, 18 Jan 2001, Adam Thornton wrote:

> On the S/390 port, I've gotten most things working, except the
> volumeserver will not come up.  The error appears to be that it cannot
> connect to the correct port, 2040 (on localhost--why weren't domain
> sockets used for purely local connections?), in fssync.c.
> 
> My question is, which process or piece of AFS is supposed to be
> listening to 2040, and where should the routine to initialize that be
> getting called from?  

The process you're looking for is the fileserver.

The fssync interface is what allows multiple processes to use the volume
package at the same time.  While the fileserver is running, it "owns" 
every volume on the machine.  Any other process wanting to access a volume
contacts the fileserver via the fssync interface to "attach" the volume. 
Depending on the mode of access, the volume may be made "offline" (not
available; clients get an error) or "busy" (not available, but clients
will block until the volume is no longer busy) until the program that
attached it detaches it.

Most volume utilities cannot run if the fssync interface is not available,
because without it, they have no way to determine if someone else is using
a volume.  The exception is the salvager, which uses the fssync interface
when salvaging a single volume, but not when salvaging an entire
partition.  This is why you have to be very careful not to invoke the
salvager without a volume ID unless no fileserver is running. 

> *IS* there some nice high-level architectural guide that would give me a
> good view of how the pieces of AFS fit together?  I feel like I'm
> wandering around a city with no map and no street signs; every so often
> I happen upon something good, but if I had a Big Picture, life would be
> much easier.



Unfortunately, there is no overview document that I know of.  At present,
OpenAFS actually has _no_ documentation -- IBM has been kind enough to
make available the user and sysadmin documentation from IBM AFS 3.6, but
there are places where that could use improvement.  What documentation
exists for API's, RPC interfaces, and the like hasn't been updated in many
years.  OpenAFS really needs a project to produce user, sysadmin, API, and
architectural documentation.

In addition, I've been intending for a while to start a project to produce
generic documentation for the protocols common to all AFS implementations.
Perhaps I'll say something more on this topic in the next few days.

-- Jeffrey T. Hutzelman (N3NHS) <jhutz+@cmu.edu>
   Sr. Research Systems Programmer
   School of Computer Science - Research Computing Facility
   Carnegie Mellon University - Pittsburgh, PA