[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: High availability

Chuck Yerkes wrote:

Quoting taproot420 (taproot420_(_at_)_myrealbox_(_dot_)_com):

Is there a high availability solution for openbsd? I am needing to setup a cluster of servers, i would like the HA solution to provide load balancing so all the servers can be used concurrently and of coarse fail over master / slave etc... I found the HUT project but its HA daemons freevrrp and loadd only run on freebsd.

"High Availability" is a  marketing phrase.
(I worked for the company bought by OpenVision and then Veritas
that developed the first failover HA solution for Suns).

Define your actual needs better, and you can get answers.

HA for EMail relays is easy: MX

How do they sync mail afterwards? Or do you mean just sending mail? I think this is a slightly more complex problem than you make it. It really becomes Storage HA problem (and locking). One solution, if a redundant storage is available is to use Maildir format. That way, it's possible to have multiple relays receiving mail and avoid locking issues.

Another solution is just get a really good server and go with Cyrus mail system. have a small box be an emergency queue for mail, if main server fails, backup will queue mail until main is back up. Not the best but a very workable model. users won't die if they can't read email for a few hours and everything is queue'd.

HA for NFS is pretty easy: NetApp

I think the question asked for BSD solution. Not all of us can afford NetApp. One possible solution is to use AFS, it's not the greatest since learning curve and usability are not easy, but doable and workable and I think there is a client for bsd.

I am not familiar with any good redundant NFS solution (other than going with a proprietary appliance). There is a possible solution on the linux platform: a storage driver that writes to two netwroked machines. So master will receive nfs requests and the storage driver will sync to secondary boxes. If master fails, slave can become the master and sync changes to master when master comes back. I think the driver is called drbd (http://www.complang.tuwien.ac.at/reisner/drbd/) but I am not familiar as to how "production-ready" it is. It's certainly an interesting solution (that is used by a few proprietary vendors on windows platform, with some success).

Another is to get a winchester type system and connect the raid array to two or more machines. Then implement a daemon that would make one be the master and serve files. However I would think that existing connection might time out and only new connections would work with a slave which became a master. However, a lengthy NFS timeout might actually be long enough for master to fail, slave come online and client to finally see that and fetch the request. Just a thought, never implemented this myself.

These are very interesting problems, so if anyone implemented them with success, please post and tell your stories. I'd be very interested to hear what people have implemented and how well it went for them.