Coda File System

Re: coda + reiserfs + qmail in high availability production environment

From: Andrea Cerrito <ml_at_centromultimediale.it>
Date: Thu, 19 Jul 2001 12:26:18 +0200
> -----Messaggio originale-----
> Da: Cain Ransbottyn [mailto:cain_at_realroot.be]
> Inviato: giovedý 19 luglio 2001 1.44
> A: codalist_at_coda.cs.cmu.edu; mailto:reiserfs-list_at_namesys.com
> Oggetto: coda + reiserfs + qmail in high availability production
> environment
>
>
> Hi there,
>
> we need your advice ;-)
>
> We @ RealROOT.be will bring some new production servers online
> next week : 2
> webservers both using reiserfs and acting as 'clients', 2 mailservers with
> the same setup and one database server also with the same layout. They are
> all 'clients' of a dedicated fileserver (also running reiserfs) with the
> coda server running on it.

I have:

2 coda servers
2 web servers (xeon 550, 2gb ram) with coda
2 qmail servers (pentium2 350, 128mb ram) with coda
2 firewalls (failover with heartbeat)
2 load balancers (LVS) (failover with heartbeat)

Great!

> We are using RedHat as a default linux distrib.

Turbolinux here.

> The 'clients' are 'normal' stripped and highly secured linux boxes... they
> have nothing installed, no compilers,... they mount their binaries through
> the coda filesystem (i.e. /packages/apache will be coda-mounted on the
> webserver, /packages/qmail will be mounted on the fileserver.) If
> one of the
> servers fails, another server can do failover by bringing up an
> ip:alias of
> the 'dead' client and coda-mount the /packages/*binary*.

Well, just to say: why don't use load balancing? You are using a network
filesystem, which best advantage is to permit the same mountpoint on
multiple machines: if you are searching for a failover solution, I think you
should consider shared scsi (so you may avoid problems about link()
function).

> Also all the data will be located on the fileserver. /web on the webserver
> will be a mount to /local/web on the fileserver through coda. We
> don't want
> to make this fileserver the only point of failure so we do a rsynch every
> hour from /web on the client to /local/web on the client (each client has
> extra disk space). So if our coda file server fails we always have a
> /local/web with a 'backup'.

I don't understand: if the server fails, venus starts to work in
disconnected mode: how do you stop venus in file server failure? Best
solution: consider to use two coda servers (they sync data automatically).

> If the fileserver fails (network or hardware probs), will it be easily to
> automagically umount the /web on the 'previous coda fileserver' and make a
> symlink from /local/web on the client to /web on the client. This is
> scripted and should all be done in a couple of seconds? We didn't
> succeed to
> do this with 'regular NFS'. Will this umounting work with coda ?
> Will we be
> able to umount the /web in let's say 2 seconds after the hardware
> crash ? (I
> assume we first have to auto-kill the applications using the
> current mount).
> Is this a good way of thinking or are we driving ourself nuts ?
>
> I've read quite a lot of threads about reiserfs and I noticed
> that there are
> still some problems... I assume I make my /usr/coda/venus.cache/ on my
> clients (the mailserver, webserver,...) on 'normal' ext2 ?

Instead reiserfs, I preferred ext3: reiserfs is unuseful, because all the
work is done on a network filesystem, so at least the reiserfs can be used
on the SCM.

> Can I leave my fileserver on reiserfs completely ? Even the / ? What about
> my clients ? Is the above 'venus.cache-ext2-trick' going to work ? Do you
> prefer reiserfs, xfs or ext3 ?
>
> What about qmail ? Will coda or reiserfs have problems with qmail ? What
> should we do about it to get this fixed ?

Yes. Search the archive, you have to patch qmail to work on coda.

> I saw quite a lot of patches but which one will provide us the best
> performance and can garantuee us no data loss ?

No performance issue: you have to remove link() / unlink() and use rename()
instead.

> All your thoughts on this matter are welcome... I would love to start a
> discussion on this ;-)

I think you are misunderstanding coda: you are searching a failover solution
with a network filesystem...
Try to understand what are your needs: if you need to mount a fs on just a
machine, prefer shared scsi = better perfomance. And, instead of link
filesystem trashing a lot of space on your clients, think about a second
Coda server: it can assure you the failover you need.

Even in network failures, your machine will continue to work thanks to venus
disconnected mode, let having you time to resolve your problems.

Finally: I loved ext3, it is great, very stable and with a lot of
compatibility. I'm using ext3 on my production machine with and without
coda, and it saves me even on a mysql db crash (memory fault)... I like
reiserfs, but I don't see advantage in using it with coda...

Anyway, this is IMHO. :)
---
Cordiali saluti / Best regards
Andrea Cerrito
^^^^^^^^^^^^^^
Net.Admin @ Centro MultiMediale di Terni S.p.A.
P.zzale Bosco 3A
05100 Terni IT
Tel. +39 0744 5441330
Fax. +39 0744 5441372
Received on 2001-07-19 06:27:46