[OpenAFS] is it possible to have two network cards?

Jeffrey Hutzelman jhutz@cmu.edu
Thu, 15 Jan 2004 13:05:03 -0500 (EST)


On Thu, 15 Jan 2004, Derek Atkins wrote:

> Jeffrey Hutzelman <jhutz@cmu.edu> writes:
>
> > You _can_ give clients configuration which lists only some of the
> > dbservers.  However, if you do that, and one of the servers that's not
> > listed becomes sync site, then that client will not be able to do any
> > updates.  To users the most noticeable affect will be that they can't
> > create or delete PTS groups or change PTS group memberships
>
> I thought that if you had >5 db servers the server you try will tell
> you the sync site IP Address instead of just telling you to go away
> and assuming you can find it.  Is my memory faulty?

If you try to perform an operation that requires writing to the database,
and you're not talking to the sync site, you get UNOTSYNC.  There is no
channel for providing additional information with an error.

If a client has more than 3 servers configured _and_ is using the client
helpers in libubik (most of OpenAFS's user-mode tools do this, but not the
cache manager itself, which also makes no calls requiring the sync site),
then the client library will call uvote_GetSyncSite() to discover the sync
site; it will then jump to that point in its list, and try that server
next.  If the server indicated by uvote_GetSyncSite() is not listed in the
client's configuration, it will just try all the servers it know about --
it will never try a new server it "discovers" via this method and didn't
know about before.

This is an optimisation -- if the server you try first is not the sync
site, you can ask it what the correct sync site is, and jump to that.
This means that you make a total of 3 RPC's -- two to the first server,
and one to the real sync site.  This is only a savings if you have more
than 3 dbservers, so if that is not the case, we don't bother with the
"optimization", and just try all the servers in order.


-- Jeff