Unfortunately, mirrored or "clustered" hosting is not something with easy answers, especially if you want active redundancy, instead of fail over.
Here's some thoughts: The load balancing portion can be done with DNS and/or Anycasting. Rsync or similar can be used for keeping files in sync. MySQL and PostgreSQL both have cluster or master/slave database mirroring.
Setting everything up and tieing it together could be a chore. If you have the budget, consider using a service provider to setup the system. Some dedicated service providers now offer clusters too.
Edit:Ooops, didn't notice this thread was a year old.