I'm giving the question an overhaul to more specifically identify where I need help.
I use two tools to manage a bunch of cloud server: Puppet and Rundeck. Both of these can be configured to use a mysql backend. I'd like to setup an instance of each application in both the U.S., and the U.K., treating the U.K. servers as hot stand-bys in case of failure in the U.S.
I want to use a MySql cluster so that the data is automatically replicated from the U.S. to the U.K. Because these are hot standbys, high performance is not a goal. Redundancy and data integrity are most important.
My question revolves around the setup of the mysql cluster. I want to run three servers, each one running a data node, a sql node, and a management node. Is this a valid configuration for mysql server? If so, could someone point me in the right direction for creating such a setup? I've downloaded the offical tarball, and the official debian, and the documentation for them contradicts many of the online tutorials. I'm installing on Ubuntu 10.04.
It's hard for us to answer if this would be "reasonable" - we know nothing about your environment, architecture, workload, performance tolerance range, etc.
If your environment is already "in the cloud" and your chosen provider can give you hosting in the UK, this seems entirely reasonable, provided you have a good, solid replication plan.
If you're running on dedicated equipment I would suggest a performance and feasibility study before moving "into the cloud", and would advise you to take the history of cloud outages into account before committing your data (and business) to someone else's infrastructure. It may be easier long-term to clone your exact current setup somewhere else (even if that means paying more for a rack and power) until you know for sure that there's another architecture that meets your needs.
If cost is a serious concern, consider deploying a VMWare environment at the remote sites. Performance is usually reasonable, you'll have some limited scalability options within the confines of a single VM host, and rack footprint (thus cost) is substantially lower.
Design and long-term management of a scalable multi-site (especially multi-country) architecture is beyond the scope of your question, even though you're implicitly asking about it (
If so, would anyone be able to help me with the configs?
)/ -- If you're still working off tutorials and can't figure out how to generalize them to a multi-site/multi-nation architecture there are two possibilities:You lack the experience to do this.
(Hire someone who knows what they're doing and learn from them. It's cheaper in the long run)
Your tutorials/examples have lousy architecture and you're being hobbled by them
(re-design with a sane architecture -- if you're unsure how to make the design better after thinking long and hard on it you're back in "Hire someone" territory)
for MySQL Cluster deployments, you will need at least 2 x data nodes between which data can be synchronously replicated - and would recommend on each site. Then use asynchronous replication delivered by the MySQL server node to replicate between the 2 data centers - in MySQL-land, this is called geographic replication
The management nodes could be co-located on the SQL nodes
To get started, I would recommend looking at the quick start guide which shows how to deploy on a single node: http://downloads.mysql.com/tutorials/cluster/GetMySQLClusterRunning-LINUX.pdf
There is also a tutorial available here: http://mysql.com/products/cluster/cluster_install_demo_linux.html