As long as AFS 3.3 & 3.4 share the same file format, then mixing
the two will "work" in the sense that they'll interoperate.  Not
that that makes it a good idea.

If the file format changes, it definitely won't work, and in most
cases, it will become very obvious very fast.  You can't, for instance,
mix afs 3.2 & afs 3.3 vl server, because the file format *definitely*
changed between the two, and you would, at best, get a *very* confused
vlserver depending on which version was the syncsite and so on.

However, even if the file format is basically the same, you could still
get various less obvious sorts of problems.  I believe Transarc currently
guarantees support for only one version forwards /backwards between
server & client.  Clients that are more than one version off aren't
guaranteed to work (often, they will, but not always).

Since kauth's RPC interface has changed between 3.2,3.3,&3.4, it makes
a good sample.  A 3.3 client will work with 3.3 & 3.4, so no problem.
Same with 3.4.  On the other hand, a 3.2 client will only work with 3.3,
& not with 3.4.  (At least "In theory" -- who knows?  practice may be even
stranger.) That means, if you were to go to another site that had 3.2
clients, and attempt to authenticate to your mixed 3.3/3.4 site, you
would very likely experience strange random failures.  Another source
of weirdness is in the *interpretation* of the database.  I don't
know if 3.3/3.4 interpret the database differently, but certainly
3.2/3.3 did.  A different interpretation of the same data might
lead to oddnesses depending on which server your client happens
to contact.  For instance, the ka entry expiration code has been
evolving between AFS releases, so it is likely that if you expire
ka entries, they might behave inconsistently.  VL and PT could also
experience similar problems, although I think the two have changed less
between 3.3 & 3.4 than ka.  So, it's *possible* there might not be a
problem there, but there is certainly no guarantee.  The backup database
is another potential problem area - I suspect a version skew there
could be very bad.

If you want to mix versions, what would be safest is to keep runing your
3.3 fileserver binaries, but upgrade the database software (vl, ka, pt,
bu, ?) to be the *same* version on all of your database servers.
Basically, anything that uses ubik should be upgraded all at once.
However, running 3.3 {fileserver,salvager,volserver} binaries and
3.4 {ptserver,kaserver,vlserver,buserver} binaries on the same machine
should be equivalent to running them on different machines, and so
it should be safe to upgrade either the fileserver binaries or
the DB binaries on the same machine, independently of each other.

                        -Marcus Watts
                        UM ITD RS Umich Systems Group

Reply via email to