[OpenAFS] Re: AFSDB records

Andrew Deason adeason@sinenomine.net
Tue, 4 May 2010 13:01:48 -0500

On Tue, 4 May 2010 15:31:02 +0000
"Brunckhorst, Ralf" <ralf.brunckhorst@hp.com> wrote:

> Questions: 
>   * What is the behavior of a running afs-client if we change an
>   AFSDB-record in DNS (because one of the AFSDB-server is moved to a
>   new location)?

Clients should cache the AFSDB information for the TTL in the DNS record
at the longest. After that, they should fetch the new AFSDB information.

>   * Will the changes be done automatically on the afs-client? 
>   * Also for the Cache Manager's kernel-resident list of database
>   server machines?

I don't understand the difference between these two questions. If your
CellServDB has just the two cells listed, without any dbservers for the
cells, the kernel-resident list of database server machines is the only
list of database server machines.

But yes, it will happen automatically. If, for whatever reason, the
client needs to contact the dbservers for a cell, it will re-fetch the
list of database servers if that list has expired (according to the TTL
in the previous DNS response).

> We have an update-script for the existing old afs-clients that have a
> CellServDB file with static IP info. This will be run daily via cron.
> It fetch a central CellServDB file (if it difer with the local one)
> and change the kernel-resisdent list via 'fs newcell …'
> Questions:
>   * How can we migrate those clients to use the AFSDB-records without
>   rebooting (will the kernel-resisdent list updated if the afsd
>   started with -afsdb)?
>   * Or is the reboot needed to get rid of the kernel-list?

Keep in mind for Linux you usually don't need to reboot the entire
machine, but you can just restart the afs client (though if these
clients are very old, maybe you cannot do that). Not that that helps,
since restarting the AFS client tends to be about as disruptive as a

Anyway, AFSDB records will not override static information set via
CellServDB or 'fs newcell' (unless the CellServDB specifies no hosts).
So, as far as I know, you need to reboot/restart the clients.

It may be possible to make 'fs newcell' clear the host list, so new
dbserver information will be fetched from DNS, but right now
'fs newcell' does not allow that. I'm not entirely sure if that works,
but if you modify 'fs newcell' (or get someone to modify it), you might
be able to get clients to use AFSDB information without rebooting.

>   * Which is the oldest afs-version that have support for -afsdb?

OpenAFS 1.1.0 was the first release with it, I think.

Andrew Deason