Solução de alta disponibilidade confiável e barata?

2

Estamos procurando uma maneira de melhorar a confiabilidade de um dos nossos servidores (configuração Apache / MySQL / Virtualmin). Até agora, tivemos todos os tipos de clusterfuck possíveis com esse servidor nos últimos seis meses (falha de DNS, DDOS, falha no Dom0, falha de rede, falha do DomU,…; em um bom dia 2 de uma vez) e enquanto todos foram resolvidos em menos de um dia, ainda é preocupante - existem cerca de 50 sites de clientes nesse host, e eles vão entrar em nossas gargantas sempre que o servidor estiver inativo (a disponibilidade do servidor ainda está acima dos 99% garantidos por contrato, mas bem ... você lembre-se das 5 ocasiões em que o servidor teve tempos de inatividade, e não 360 dias depois disso.

Planos até agora:

  1. Backup do servidor DNS (não deve ser um grande problema)
  2. Configuração de alta disponibilidade para o próprio servidor. O problema aqui é a replicação de dados para o host secundário.

Os hosts estariam em datacenters diferentes (Hetzner, btw.), então teríamos uma largura de banda bastante limitada (100 Mbit de uplink, e deveria haver pelo menos alguma largura de banda para os usuários reais ...) e criptografia de dados é mais ou menos um requisito fixo.

O próprio DRBD é muito fraco em relação à WAN, nem fornece criptografia. O proxy DRBD alega resolver o problema de largura de banda (mas não o problema de criptografia, até onde eu posso ver), mas é simplesmente muito caro pelo que eu li, $ 5k / ano são demais (tenho certeza que é mais do que estamos ganhando com esse servidor).

Por outro lado, por minha experiência pessoal, os túneis OpenVPN / SSH não são confiáveis o suficiente para garantir que não teríamos alertas falsos disparando failovers desnecessários (não importa a sobrecarga reduzindo ainda mais o desempenho do disco rígido).

Então ... que alternativas existem? Ou estou simplesmente negligenciando alguma coisa?

Editar: para esclarecer, prefiro uma replicação no nível de sistema de arquivos / dispositivo de bloco. A replicação em nível de aplicativo é possível, mas eu prefiro ter uma solução de replicação em execução em vez de uma para cada aplicativo.

    
por Creshal 10.01.2012 / 14:48

1 resposta

4

Você parece um pouco preso à replicação do DRBD. Eu acho que isso é porque não atende às suas necessidades. Ele replica os dispositivos de bloco e é bastante intensivo em largura de banda (embora a compactação de links possa aliviar bastante isso). Verifique se você não seria mais feliz com a replicação em um nível mais alto, como os mecanismos de replicação do MySQL para os bancos de dados e algo como lsyncd para os sistemas de arquivos.

Colagem junto com material do projeto linux-ha ou configuração de um mecanismo de failover semi-automático ou manual em conjunto com algum monitoramento é certamente um pouco de trabalho, mas deve dar o que você quer a longo prazo.

Claro, você ainda precisaria de um túnel criptografado para o tráfego, mas eu não entendo sua relutância em usar o OpenVPN - como o túnel está lá apenas por causa de um sistema de backup / espera e você teria uma testemunha (em uma configuração de HA com failover automático) ou um sistema de monitoramento (em uma configuração com monitoramento) que é independente da presença do túnel, você não teria nenhum failover nas interrupções do túnel e apenas obteria os alarmes para corrigir o túnel após a interrupção (o que é obviamente necessário, caso contrário, você perderá a capacidade de fazer um failover para um sistema em espera atualizado).

    
por 10.01.2012 / 15:24