Suggestions for “clustering” WordPress MU servers? Or mirroring servers?

Suggestions for “clustering” WordPress MU servers? Or mirroring servers?

WDS_LINK_PLACEHOLDER_7b9fc085b1a18e7c390402a1cf7efde5

January 22nd, 2009 by Dan York

 

WDS_LINK_PLACEHOLDER_3c39c70f12dbc52f01564b470bc9b3ad

 

wordpressmulogo.jpgAny suggestions out there for how to “cluster” WordPress MU servers for redundancy? Or to make a mirror of the server on another system?

I have a problem. If something were ever to happen to the physical server hosting this site… well… WDS_LINK_PLACEHOLDER_919a8dd9b3bc2d4e158abbe0e89bb543 would be off the Internet until a backup server can be put in place… a backup image restored, etc., etc. That could take a period of time. There’s also the risk of losing whatever content was added to the server since the last backup.

I don’t like single points of failure.

What I’d like to do is to have some type of system in place so that if the physical server fails for some reason, the site won’t be offline for very long at all. It seems to me that there are a couple of approaches:


1. BUILD A WPMU “CLUSTER” – It’s pretty clear that large WPMU sites are already doing this. There are various forum posts – for example WDS_LINK_PLACEHOLDER_cd3d9b5c63a08031bc69af585ab35f6c, WDS_LINK_PLACEHOLDER_3e0e7c18a19ef8210afda9bddcac2cf3, WDS_LINK_PLACEHOLDER_9a4e42fd2ff5554acc3cff09e8180a6b, WDS_LINK_PLACEHOLDER_e06b35aab356b9c63140aa217821558c and WDS_LINK_PLACEHOLDER_c7d557d8aa284ffa5957f3cdc3578423. There is WDS_LINK_PLACEHOLDER_ce1d330d1d6c06664bb8b9926cd4ad87. There’s even WDS_LINK_PLACEHOLDER_801023b2b0bf20d0579e1662c880ce63 (looks like a talk I would have enjoyed seeing). Overall it looks rather straightforward – set up multiple web servers… replicate the MySQL databases… rsync the data (or use some sync mechanism)… set up some DNS entries… and so on…

The thing is that in reading through all those pages I feel a bit like I would be trying to build the Space Shuttle just to be able to drive down to the corner store. I don’t have 200,000 blogs… I have six… and maybe we’ll grow that to 10, but it’s still a tiny number. I’m not really concerned about scaling the server and dealing with performance issues as I am with ensuring availability.

Of course, I’d naturally also like the WPMU cluster to be easy to administer… easy to updateeasy to post to, etc.

Really, I’m looking for a nice easy HOWTO for someone who just wants to create a small WordPress MU cluster. I can’t seem to find one… (which maybe means I need to write one when I get it all sorted out.) If anyone has any pointers to pages I may have missed, I’d love to learn of them.

The nice thing about doing a cluster approach would be that a server could die and the site would continue to be available. The dead server could be repaired, resynced and put back in action. Plus, since we have our WDS_LINK_PLACEHOLDER_da35a2fc3f69a897aa5f4f73c242691a, I could put the second WPMU server in another of our data centers and be able to get that added redundancy.


2. MIRRORING A WPMU SERVER – Another less-involved approach seems to me to be to mirror the primary server onto another server and then be able to swap in that backup server should the primary server fail. Essentially it is very similar to a cluster except that only one server is actually in use at any time.

From a user and administrative point-of-view, it would still be a single WPMU server that we are posting to and administering – with then some kind of sync going on to the backup server.

If the primary server dies, the recovery could be as simple as pointing the DNS entry for “blogs.voxeo.com” to the IP of the backup server (or bringing up the backup server with the IP of the primary… or pointing the public IP to the internal IP of the backup server… there are numerous ways to do this).

So far, though, I’m not finding any forum posts, HOWTOs, or other posts talking about how to do this. I’m thinking it’s probably setting up MySQL replication again and then using something like rsync to sync the WPMU files between servers


3. USING A DISTRIBUTED COMPUTING CLOUD – I suppose another approach is to virtualize the WPMU instance and distribute it across multiple servers. Sort of like sticking the whole site up in Amazon EC2 and S3 – only in our own data centers since we already have the infrastructure. I could do this and in fact it does seems like a good layer of redundancy to add. But I’m not sure it’s really the whole answer, because there’s still only one MySQL instance and one WPMU instance running. With either clustering or mirroring you have multiple web servers and multiple databases running, so you have more redundancy going on.


Ultimately, all I’m looking to do is to ensure that if a physical server fails – or needs to be taken offline for any reason – the WordPress MU site will still be accessible to visitors. If anyone reading this has any suggestions or thoughts, I’d definitely be grateful to hear them – either as comments here, WDS_LINK_PLACEHOLDER_f0286ebce5bf9ce130304c66cdb42e50, Twitter replies, whatever. (Thanks in advance.) However I wind up solving the issue, I’ll be sure to write it up here.


If you found this post interesting or helpful, please consider either WDS_LINK_PLACEHOLDER_86c0748a79bba406ddbc7febb0072177 or WDS_LINK_PLACEHOLDER_ba11897ad4e32fcb4217e1642c212504.


 

Technorati Tags:
WDS_LINK_PLACEHOLDER_cad88074e3754f55ccf38ec7ec94c332, WDS_LINK_PLACEHOLDER_1a3c7d7ac7bb899db863a97acb27d9fc, WDS_LINK_PLACEHOLDER_754b8853a21589fd3757eb8915640780, WDS_LINK_PLACEHOLDER_8abfcd613d8edf2594c6459e5bb616ed, WDS_LINK_PLACEHOLDER_a1dbb546a21a91aa79596e4a3dedefe1, WDS_LINK_PLACEHOLDER_e292cd93cc31aa2141e82c5b4556e88a, WDS_LINK_PLACEHOLDER_160f771db96c835815c7d668c6ebd50a, WDS_LINK_PLACEHOLDER_45553b28464ccc59946b009fb188e818, WDS_LINK_PLACEHOLDER_03eef2d80d8f96f2eec09e66fb18da7b, WDS_LINK_PLACEHOLDER_93595af8646313f85669ff7819da6578, WDS_LINK_PLACEHOLDER_ab900d9984b22054d7a6df00716e7ac5

 

WDS_LINK_PLACEHOLDER_dcfdbdb3cf809033b53cd3441c95b0e4 WDS_LINK_PLACEHOLDER_846d069ab4d3f0c6fbf2bfc73079f86a WDS_LINK_PLACEHOLDER_2ddb213af633a7bd93a8989707ce486a

 

WDS_LINK_PLACEHOLDER_57c159c4bef6e7a4fd154949878802e5 WDS_LINK_PLACEHOLDER_b2c4a515f5edbd62443315a15c388434 WDS_LINK_PLACEHOLDER_ded097342b373edbd96575f1d7f50d54

 

WDS_LINK_PLACEHOLDER_eb9e587e51587e876089b3bcd480ce8b WDS_LINK_PLACEHOLDER_6cf1a04ca3d60c5ba4cdb79a2d21862f

 

WDS_LINK_PLACEHOLDER_2f16daf17c3319d6dd53856a89a73744 WDS_LINK_PLACEHOLDER_9aa8a323eb43d84022d5afd4a6baf0c7

 

WDS_LINK_PLACEHOLDER_877a224e7669fea951d0412922951301 WDS_LINK_PLACEHOLDER_1391477d85e06dbaea9d7080d461fc02

 

WDS_LINK_PLACEHOLDER_09e754fb80f56cd38da5c553087f235b WDS_LINK_PLACEHOLDER_133e03f7f75fbb8e472f8e69044fa7f9

 

WDS_LINK_PLACEHOLDER_de7b801025cc6ae7e0820a33d9bc318d WDS_LINK_PLACEHOLDER_c93d1fc0bb15b7543652a1b7e605ab35 WDS_LINK_PLACEHOLDER_b802f957dc43694e75914e261972242e

 

One Reply to “Suggestions for “clustering” WordPress MU servers? Or mirroring servers?”

Leave a Reply

Your email address will not be published. Required fields are marked *