I want a cluster of 3+ VPS servers in different cities that acts like one VPS server, meaning:
% When I update a file on one VPS in the cluster, it's "automatically" updated on all the other VPSs.
% When I run a command on one VPS, it's automatically run on all others.
% When I update a db entry on one VPS, it's automatically updated on all others (which is the same as point 1 for dbs that use file storage)
% If one VPS goes down, it "catches up" when it comes back up.
In other words, the VPS are exact mirrors of each other.
I realize the IP addresses (and maybe even /etc/resolv.conf and a few other files) must be different, but the general idea is that they look identical to outside viewers.
Since the VPSs may host blogs, etc, the mirroring must be preserved when a browsing user makes a comment on a blog. In other words, I can't have a central VPS and push out updates, since users can make changes on any VPS, not just the central one.
Does such a thing exist? I tried creating my own using iwatch and MySQL replication, but it didn't work well in practice.
I know about http://mediatemple.net/webhosting/gs/ but those servers are all in a single location (and not quite what I describe above).