[OpenAFS] Re: OpenAFS Project List
Phil.Moore@msdw.com
Phil.Moore@msdw.com
Thu, 15 Mar 2001 13:55:04 -0500 (EST)
>>>>> "Lyle" == Lyle Seaman <lws@spinnakernet.com> writes:
Lyle> Re: NFS-style hardmounts. I seem to recall someone having added
Lyle> this code to the CM in or around 96 or 97, I don't recall who.
Lyle> I vaguely recall that Phil did it first, one way, and then I did
Lyle> it again, differently, because I thought I knew better. Go
Lyle> figure.
I do not deserve the credit for the initial hack. That was done by
Ken Sieczkowski and J Rambhaskar, two of my cohorts here at MSDW.
That was indeed a quick 'n' dirty hack, but it kept us in business.
Lyle> If I'm not hallucinating the whole thing, it was only a few
Lyle> lines, and it was (intentionally) limited to the local cell, and
Lyle> was probably in afs/afs_cache.c, and was probably an afsd
Lyle> switch, and probably limited to RO volumes, and (oh, it's coming
Lyle> to me) was all buried in the code that checks the RPC return
Lyle> codes. afs_CheckCode? and maybe afs_GetVolume? It wasn't a
Lyle> "strict" hardmount functionality, but rather it iterated a
Lyle> configurable number of times over the list of volumes, so it
Lyle> could range from soft to firm, to rather uncomfortably firm.
Lyle> If the IBM people are still using CML, then it should be one of
Lyle> the last six deltas I made. Scary. It was a fairly q&d hack,
Lyle> but I suppose that's no surprise.
You're not hallucinating. Well, at least not right now. I've seen
evidence of past lws hallucinations, but this is not one of them ;-)
Here's the scoop on the hardmount functionality that MSDW literally
would NOT be able to use AFS without.
Lyle did in fact make code changes that made it into the baseline AFS
product, although originally, this functionality was only done for us
(in a special code branch Transarc maintained to keep us happy).
There are three kernel variables that control the hardmount behavior,
and to the best of my knowledge, this should work on any client
platform for AFS 3.5 and beyond.
set afs:hm_retry_RO=1
set afs:hm_retry_RW=1
set afs:hm_retry_int=60
The first two enable the hardmount functionality for RO and/or RW
volumes, and the 3rd is the number of seconds to sleep between
retries.
This is implemented ONLY for data in the local AFS cell.
We depend on this here at MSDW, and without it, wouldn't be running
AFS. See the long winded story below if you don't understand why this
is so important.
This works on the Solaris client, I know for a fact. I beleive the
code is entirely generic, so setting those variables *should* turn
this on.
The same code change is also in the OpenAFS tree, but clearly, this
will have to be tested. I would love to do so, but I am actually not
set up to do anything with OpenAFS here at work (yet...)