[OpenAFS] Heartbeat + DRBD + OpenAFS, any suggestions?
Kyle Moffett
kmoffett@tjhsst.edu
Tue, 22 Mar 2005 16:05:31 -0500
On Mar 22, 2005, at 15:37, Jeffrey Hutzelman wrote:
> The bosserver will look for a file named SALVAGE.xxx in
> AFSDIR_LOCAL_DIR,
> where xxx is the name of the fileserver bnode. If this file exists,
> the
> salvager will be run before the fileserver is started for the first
> time.
I don't suppose there is a way to force a salvage of _only_ one
partition
before restarting the fileserver, so that the users whose homedirs were
on
/vicepa won't have any loss of service while the server salvages
/vicepb?
<Wishful Thinking>
So, who's up to writing a journaled OpenAFS backend for version 1.6? :-D
</Wishful Thinking>
> The file is created automatically (by the bosserver) when the
> fileserver
> is started, and removed when it exists cleanly. The salvager also runs
> any time the fileserver exits with an error.
This is useful to know. Thanks!
> If you followed the standard configuration, xxx is 'fs'. If you used
> --enable-transarc-paths, AFSDIR_LOCAL_DIR is /usr/afs/local; otherwise
> it is normally ${localstatedir}/openafs.
Ok, I think I can find it on my Debian system. If they put it somewhere
_really_ different, I should be able to just start the fileserver and
run "find / -name 'SALVAGE.*'" :-D. Thanks for all your help!
> Be careful not to introduce a race condition where the salvage does not
> occur if A comes back to life before B finishes taking over, or if both
> servers die and reboot.
The nice thing about heartbeat is that it is designed specifically for
all
of the weird racy startup circumstances. In order to ensure that it
does
the right thing, we only need to set the startup timeout to 4-5 times
the
boot-time, so each server will wait about 6 minutes after booting
looking
for the other server before it starts _any_ services. That's not to
say we
won't be careful, though :-D
Thanks for all your help.
Cheers,
Kyle Moffett
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCM/CS/IT/U d- s++: a18 C++++>$ UB/L/X/*++++(+)>$ P+++(++++)>$
L++++(+++) E W++(+) N+++(++) o? K? w--- O? M++ V? PS+() PE+(-) Y+
PGP+++ t+(+++) 5 X R? tv-(--) b++++(++) DI+ D+ G e->++++$ h!*()>++$ r
!y?(-)
------END GEEK CODE BLOCK------