UPDATE: Acho que arrumei a formatação. Deve estar legível agora.
!!!ATENÇÃO – A visualização de algumas sessões pode estar truncando conteúdo! Pelo jeito a tag tá quebrada. Preciso olhar isso, mas preguiça, né? Dá pra ler direitinho usando o RSS !!!!
Mesmo com a a infra-estrutura toda virtualizada e clusterizada nos ESXi fazer um cluster de MySQL ainda é uma boa idéia.
Não só você pode colocar as duas máquinas em storages diferentes e eliminar mais um ponto de falha mas também você pode dedicar uma (ou mais) VM(s) para read-only.
Isso quer dizer que seus usuários rodando reports e chamando estatísticas/gráficos no meio do dia não vão afetar o desempenho de quem está entrando operações em produção.
Isso dito entra em cena o MySQL Multi Master Replication Manager (MMM): Um conjunto de scripts Perl que facilita a replicação e gerenciamento do seu cluster MySQL.
Abaixo os passos que utilizei para criar um cluster de 2 máquinas CentOS 5.5. Vou assumir que você já tem as máquinas em pé com MySQL devidamente instalado.
Além das máquinas rodando o MySQL você vai precisar de uma terceira, que é o monitor. É esse cara que vai manter os olhos no cluster, decidir quando uma máquina morreu e gerenciar os papéis de cada uma.
Nem idéia ainda dos requisitos mínimos desse servidor, visto que apenas fiz um teste pequeno aqui. Mas tá rodando sem reclamar em 1 processador e 512 de RAM.
Cenário:
IP Leitura/Gravação MySQL -> 10.0.0.1
IP Somente Leitura MySQL -> 10.0.0.100
IP Servidor MySQL 1 (hostname master) -> 10.0.0.2
IP Servidor MySQL 2 (hostname master2) -> 10.0.0.3
IP Monitor (hostname mon) -> 10.0.0.10
Editando a configuração do MySQL:
Em cada um dos servidores adicione as seguintes linhas embaixo da sessão [mysqld] do /etc/my.cnf:
Instalando o MMM:
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
yum -y install perl-Algorithm-Diff perl-Class-Singleton perl-DBD-MySQL perl-Log-Log4perl perl-Log-Dispatch perl-Proc-Daemon perl-MailTools yum install mysql-mmm.noarch mysql-mmm-agent.noarch mysql-mmm-tools.noarch
Configurando os Usuários:
Dentro de cada servidor precisamos criar 3 usuários: replication, agent e monitor. Abra seu console do MySQL e mande: