setting up a 2-servser / 3-server high availability cluster

Hi all,

I wonder if anyone can shed some light on this topic.

Let’s say I have 2 servers, each with a Q9550 Core2Quad CPU, 8GB RAM & 4x250GB HDD’s in RAID10 configuration. Or, for that matter any server setup. This is just an example.

Would I be able to set these up in a high availability cluster, with XEN VPS’s running on either of these, and then if one of the servers fail (power failure / software crash / PSU problem / etc), then the VPS’s will automatically switch-over to the other server and continue running?

I know, traditionally one would have a NAS with the VPS’ on the NAS, and then run the VPS’s on the 2 servers and either one can take over from the other one. But with today’s powerful servers, would it not be possible to make the 2 servers their own NAS’s, and then replicate the 2 NAS server’s data across (on a 2nd 1GB link) to have this kind of setup?

And then, if this can be done, what are the chances of doing this with a 3 server setup, and make sure that at any given time you have at least 35 - 40% (leave some margin for the OS + NAS + Webmin, etc) free resources (RAM / CPU / HDD) on each server, to take over the 3rd server if it crashes?

Can this be done with CloudMin, and if anyone has done it before, please share your setup, or experience with me on this?

I’m working on a project which while doesn’t offer you the High Availability setup you are referring to is designed to allow multiple nodes handle “service level” clustering.

This means that through a single interface, you could create an account and it’d automatically distribute services to a number of nodes.

Ex.

HTTP/HTTPS/FTP/SSH - node #1
MYSQL - node #2
SMTP/IMAP/POP - node #3
SPAM/VIRUS - node #4
DNS - node #5
DNS - node #6

Eventually I’ll add a layer in to handle High Availability, however the initial goal is to simply distribute the load across multiple nodes so that a single service crash would not bring down other services.

Additionally, it’d be possible through my basic design to allocate a certain number of customers to different nodes therefore ensuring that if say “HTTP” went down on one node, it would not take down all customer accounts, on the ones located on that node.

You can follow, and provide your feedback on my thread at:

http://www.virtualmin.com/node/12860

-Peter

well,
I actually want to know if this is possible on a CloudMin setup, where the VPS’s are highly redundant, not the services on the VPS’s

I hear ya, SoftDux.

Since I’ve yet to try CloudMin (on my eventual todo list), my app focuses on the Virtualmin level design as mentioned, however this does not mean it will be limited to just this.

Both high availability, and CloudMin-level integration are things I’d eventually like to work toward. But natually I’ve gotta start somewhere.

So, as mentioned feel free to follow my thread, and provide your feedback.

Features like this are certainly something I want to hear about, and by posting directly to my thread I’ll be able to more easily see what the general population is after, and make sure my focus is around these things.

One step at a time however!

-Peter

thanx for the input Peter.

Maybe Jamie / Joe could use these techniques on CloudMin as well?

right now cloudmin doesnt really do anything when relating to monitoring and automated actions based on those responses.

What your wanting to do mostly needs to be done on the OS side of things, but some of it could be scripted through cloudmin. Your more than likely going to have to use something like DRDB (drdb.org) for the storage syncing if your not wanting to use a SAN and a clustered filesystem (I use clvm and gfs for storing the shared configs).