Primeiro, você tem certeza de que o clustering é a resposta para seu problema de desempenho? Você já considerou:
- Cache. Se você tem páginas "públicas" que são muito usadas e atingem o banco de dados, o cache de front-end é muito simples de configurar e provavelmente fará maravilhas (pense em httpd + mod_cache)
- Otimize seu aplicativo. Eu suponho que você já saiba que seu gargalo é o Postgres. Execute o pgFouine em registros de um dia, localize as principais consultas, indexe-as ou tente evitá-las.
- Aprimore o hardware no servidor Postgres. Se você está ligado à CPU (caso raro), talvez uma CPU melhor ou mais núcleos ajudará. Você sempre pode adicionar mais RAM para que mais coisas sejam armazenadas em cache (e certifique-se de usá-las! As configurações de memória padrão do Postgres são muito conservadoras - isso pode ser o seu problema, verifique se você está usando toda a sua RAM). Além disso, uma matriz RAID10 grande o suficiente fará maravilhas ...
Se você quiser configurar o cluster de qualquer maneira - e no Postgres estou inclinado a pensar que deveria ser mais para propósitos de disponibilidade do que para performance- pgpool fornece alguns truques para replicar os bancos de dados com muito pouco tempo de inatividade ( link ).