Fornecendo alta disponibilidade e failover usando o MySQL no EC2

5

Eu gostaria de ter um sistema MySQL altamente disponível, com failover automático, executado em instâncias do Amazon EC2.

A abordagem padrão para resolver isso é o problema Heartbeat + DRBD, mas eu encontrei muitos posts sugerindo que o DRBD não funciona no EC2, embora nenhum deles diga exatamente o porquê. Obviamente, uma pulsação serial ou rede distinta está fora de questão no ambiente virtualizado. Também seria bom ter os diferentes servidores em diferentes zonas de disponibilidade, mas estamos entrando em um problema muito mais difícil .

Qual é a opinião das pessoas sobre ter uma solução de alta disponibilidade na "nuvem"?

Observação: Essa pergunta foi feita antes que o RDS com multi-AZ fosse anunciado, o que é a melhor resposta automática para o profissional de TI moderno de hoje. :)

    
por crb 04.03.2010 / 17:12

4 respostas

3

Acho que você realmente quer uma configuração RDS com várias zonas que foi adicionada recentemente à AWS.

Leia mais aqui: link

Se você não perguntasse sobre a AWS, eu sugeriria uma configuração incluindo o DRBD. Isso garantiria que os dois servidores permanecessem em sincronia o tempo todo. Mas tenho quase 100% de certeza de que isso ainda não é possível na AWS.

Geralmente, eu tomaria cuidado com fotos e tudo isso - não é uma bala de prata! Demora um bom tempo na AWS. O armazenamento da instância em si é a) não é rápido de todo e b) não é persistente! Mesmo com EBS não é muito rápido e você ainda precisa parar o i / o para um instantâneo consistente.

    
por 30.06.2010 / 20:49
2

Opção fácil e barata - instale o mysql em diferentes datacenters no EC2 e configure a master / master replicação entre eles. Aponte seus servidores front end em cada datacenter nos servidores mysql replicados. Configurar o Failover de DNS automatizado entre os servidores front-end frontais em cada local se uma verificação de integridade do conteúdo falhar em seu site primário - ele redirecionará automaticamente o tráfego do cliente para o site replicado no outro datacenter - até que você corrija o site principal e as verificações de integridade começar a passar novamente - então o tráfego voltará automaticamente para o site principal. Eu faço isso o tempo todo - mesmo entre diferentes fornecedores, ou seja, EC2 e Linode. Funciona muito bem e o failover de tráfego do cliente acontece em menos de 1 minuto. Você pode obter failover de DNS automatizado de dnshat.com para barato.

    
por 07.11.2012 / 17:28
0

Eu adotaria a replicação master dual ativa / passiva usando um VIP flutuante. (Heartbeat, OpenAIS, MMRM ou Pacemaker)

Não consigo pensar em uma razão pela qual isso não seja uma boa ideia. Você pode?

MMRM

    
por 04.03.2010 / 19:13
0

A opção do-it-yourself seria instalar o MySQL em um volume do EBS, usar um IP elástico ou um DNS dinâmico para alternar para qual servidor você está apontando na falha.

Você precisará de um servidor externo que monitore a pulsação, que desmontará o volume do EBS, remontará ao servidor de backup e, em seguida, remapeará o IP ou alterará o DNS. Se você está preocupado com o sistema de arquivos em si, então você terá que fazer lvm snapshot ou algo para obter cópias de seus dados, e então você pode fazer o backup deles para o S3 ou um volume do EBS também.

Eu gosto de ter os dados no próprio volume do EBS, porque você pode pegar instantâneos do EBS para backup sem se envolver com o material lvm, se isso soa assustador para você.

Além disso, a Amazon tem um pacote Enterprise MySQL que eu não usei, mas é provavelmente uma opção melhor. Seus preços costumam ser bastante razoáveis para contratos de suporte.

    
por 07.03.2010 / 22:48