Dado: Tenho duas máquinas virtuais em uma SAN que posso usar para hospedar o RavenDB.
Pergunta: Se meu objetivo for alta disponibilidade, devo sempre preferir o cluster em vez de uma configuração mestre-escravo?
Do meu ponto de vista, mestre-escravo parece mais uma dor de cabeça de manutenção. Clustering parece muito mais fácil. [Mas talvez eu esteja perdendo alguma coisa.]
Geralmente, Master-Slave é uma configuração de recuperação de desastre: quando o master morre, o slave torna-se master. A intervenção manual é necessária ou você precisa de alguma camada de redirecionamento. Você também pode ter um atraso de replicação integrado para que a corrupção do mestre possa ser interrompida antes que atinja o escravo.
Clustering é alta disponibilidade: o failover é automático.
Você precisa de HA e DR, não apenas um. Você pode ter clusters distribuídos que misturam um pouco, mas geralmente os conceitos são diferentes.
Se as 2 VMs estiverem no mesmo host físico, isso não é HA nem DR, é claro.
Se você usar clustering, use Percona . O cluster do MySQL está quebrado em termos de RDBMS