[OpenAFS] Holy Grail of High Availability
Charles Clancy
security@xauth.net
Mon, 7 Oct 2002 23:08:04 -0500 (CDT)
> So, replicating a database such as Oracle or MySQL that changes data
> often would be a bad idea,
Correct.
> but web sites or mail might be good?
Websites: probably.
Mail spools: probably not.
Websites are semi-static, but mail spools change way too frequently (see
info on how replication works below).
> Would it replcate the entire changed file, or just the pieces of the
> file that has changed.
In AFS, collections of directories are stored in abstract units called
volumes. You can replicate volumes. Volume replicas are updated when the
"vos release volume-name" command is run.
An example scenario would be to have a volume for /afs/@cell/www/htdocs,
and then make several replicas. If you change any files to your site,
you'd need to release that volume, which would consequently release all
changes to your site.
> I'm looking at putting three high end terabyte servers next to each via
> Gigabit Ethernet, and having replication take place. Would the
> replicants be read only?
There is a single RW volume, and its RO replicas are updated, usually by
the person who just made changes to the RW volume, with the "vos release"
command.
> So all the write changes still have to take place to one server.
The writes are made to the RW volume, and that volume can live on any of
the servers.
> If that server goes down, will write changes go to a server that is
> still up and running.
If that server goes down, you won't be able to write. It may take 30
seconds, or so (these values can be changed at compile time), for clients
using the now down server to switch to one of the replicas.
> Also, how does the client know which server go to if there are three
> servers with identical data on the same subnet? Is there any type of
> load balancing going on to help distribute the load?
The clients generally pick one at random. I believe there is a hack that
has them first look for servers on their own subnet first.
> Am I totally off my rocker in thinking AFS might be able to provide all
> these things? And if I am loony in thinking AFS or another distributed
> file system might be my holy grail, are there any other alternatives I
> should be looking at?
AFS is a distributed file system. It works great for sharing files to
user workstations, especially those which may have slow links. Generally
the file system consists of a static set of shared application binaries,
and users' home directories (which aren't replicated for various
implementation reasons I can describe if you're interested).
I don't think of AFS as a very good method of providing HA between
high-speed servers. Its replication model just doesn't fit very well in
that environment. It's much better at replicating [mostly] static data.
[ t charles clancy ]--[ tclancy@uiuc.edu ]--[ www.uiuc.edu/~tclancy ]