I’ve been doing this successfully with csync and an NDB cluster for years…
Re other solutions:
- rsync works too, albeit slower. (Much, much slower; slow enough to rule out any file-based caching.)
- InnoDB/MyIsam master/slave works too, with HyperDB. But, you’ll end up with a need to manage other stuff, namely auto-increments on write servers, if you need multiple write servers. (NDB is master/master, whereas InooDB or MyISAM cluster are designed and optimized for master/slave setups.)