Typical MySQL Cluster
I was wondering around Howtoforge, looking for ISPConfig, (OK it is another article!) when I noticed the guide for Load Balanced MySQL Cluster. I have setup many of those in my work. Never with a easy guide, just following instructions found on grid technology forums, Google search etc. After a few installations, it becomes a nature to you. But my biggest problem is explaining the process to another. I do it but with quite bit of difficulties.
Remember though, due to the nature of the beast, you will need a lot of memory, say for 1GB database, will need at least 1.1GB usable memory on each node.
That is the reason this guide is valuable, along with it's content, it is fairly well written.
Why do I need a Load balanced MySQL cluster? Well if you have a MySQL database that is very important to your operations, it is always better to have more than one copy of the database. But rather than keeping two copies of the database on two computers, and using one at a time, Load Balanced solution will allow you to use bothe computers at the same time. Providing disaster recovery means and higher through put at the same time. In my Oracle servers, I use Oracle RAC clustering technology. Which does the same thing, but at a higher price.
The cluster the author setup is load-balanced by a high-availability load balancer that in fact has two nodes that use the Ultra Monkey package which provides heartbeat (for checking if the other node is still alive) and ldirectord (to split up the requests to the nodes of the MySQL cluster).
He used Debian Sarge for all nodes. So you may have to check a bit if you are using other distributions. The MySQL version 5.0.19 was used. If you do not want to use MySQL 5, you can use MySQL 4.1 as well.
This howto is meant as a practical guide; it does not cover the theoretical backgrounds. They are treated in a lot of other documents on the web.
Again to thank and protect the author, this does not come with any warranty. He goes on to say that this is not the only way of setting up such a system. There are many ways of achieving this goal but this is the way I take.
So without any further rumblings, here is the article Load Balanced MySQL Cluster.
But there is also another article on MySQL Cluster, on MySQL Site.