You can do it with mysql cluster. I was about to make a mixture between linux and freebsd one but I finally did with linux only, but you can do it with freebsd too. To make load balancing / redundancy for the webservers you need a hardware system or a server like ultramonkey or something to software-balance. Put two webservers on top, and load-balance them. Then the mysqlcluster is a node for data + server for queries coming from apache. That's the most logical architecture for a basic cluster. You'll need 2 servers for nodes, 2 servers for mysql server and 2 for apache. Total 6 servers. That's the minimum for a cluster. And prepare lots of RAM for the nodes.