+ Responder ao Tópico



  1. #1
    apmatos
    Visitante

    Padrão Alta disponibilidade para o Apache

    Boa noite a todos!

    Na empresa q eu trabalho a equipe de desenvolvimento criou um sistema que funciona com a seguinte arquitetura: basicamente é um servidor Linux (Red Hat 9 nas versões anteriores e Fedora Core 4 nas atuais) que roda um servidor HTTP (Apache), com uma aplicação PHP, que acessa um banco de dados local MySQL.

    Como redundância, uma outra máquina idêntica é instalada e disponibilizada como backup, com IP e hostname diferentes da principal. Este servidor backup fica parado. Quando a principal morre, é preciso que alguém mude manualmente todos os clientes, fazendo-os apontar para o endereço do servidor backup.

    Nem preciso dizer q não rola de manter uma parada assim em produção. Ainda mais em redes q a gente aqui não tem acesso remoto e nem sempre tem alguém de prontidão no local pra fazer a mudança, gerando muitas vezes indisponibilidade elevada.

    Pensei em criar uma solução de alta disponibilidade pra essa solução, impactando o mínimo possível. Não tem como implementar cluster, pq acho q precisaria mexer muito na estrutura do MySQL. Mas dá pra resolver o problema do banco configurando uma replicação transacional nos 2 servidores. Assim, toda transação que ocorra em um servidor automaticamente é replicada para o outro, através de uma conexão ponto-a-ponto dedicada.

    Meu problema está em balancear o Apache. Alguém conhece alguma solução simples e boa pra fazer isso? De preferência via software, não vai rolar de comprar um balanceador tipo LocalDirector ou Alteon. Assim eu
    ficaria com apenas um IP/hostname virtual e configuraria os clientes para fazer acesso a este VIP.

    Este balanceador poderia trabalhar fazendo round-robin ou até mesmo mandando todas as requisições para um servidor e quando este cair, passaria a mandar pro outro, como se fosse um cluster ativo-passivo. Tanto faz, desde que se possa fazer o failover automaticamente e de modo transparente pros clientes.

    Um abração!
    Alexandre

  2. #2



  3. #3
    juliano.hallac
    Visitante

    Padrão

    Citação Postado originalmente por apmatos Ver Post
    Boa noite a todos!

    Na empresa q eu trabalho a equipe de desenvolvimento criou um sistema que funciona com a seguinte arquitetura: basicamente é um servidor Linux (Red Hat 9 nas versões anteriores e Fedora Core 4 nas atuais) que roda um servidor HTTP (Apache), com uma aplicação PHP, que acessa um banco de dados local MySQL.

    Como redundância, uma outra máquina idêntica é instalada e disponibilizada como backup, com IP e hostname diferentes da principal. Este servidor backup fica parado. Quando a principal morre, é preciso que alguém mude manualmente todos os clientes, fazendo-os apontar para o endereço do servidor backup.

    Nem preciso dizer q não rola de manter uma parada assim em produção. Ainda mais em redes q a gente aqui não tem acesso remoto e nem sempre tem alguém de prontidão no local pra fazer a mudança, gerando muitas vezes indisponibilidade elevada.

    Pensei em criar uma solução de alta disponibilidade pra essa solução, impactando o mínimo possível. Não tem como implementar cluster, pq acho q precisaria mexer muito na estrutura do MySQL. Mas dá pra resolver o problema do banco configurando uma replicação transacional nos 2 servidores. Assim, toda transação que ocorra em um servidor automaticamente é replicada para o outro, através de uma conexão ponto-a-ponto dedicada.

    Meu problema está em balancear o Apache. Alguém conhece alguma solução simples e boa pra fazer isso? De preferência via software, não vai rolar de comprar um balanceador tipo LocalDirector ou Alteon. Assim eu
    ficaria com apenas um IP/hostname virtual e configuraria os clientes para fazer acesso a este VIP.

    Este balanceador poderia trabalhar fazendo round-robin ou até mesmo mandando todas as requisições para um servidor e quando este cair, passaria a mandar pro outro, como se fosse um cluster ativo-passivo. Tanto faz, desde que se possa fazer o failover automaticamente e de modo transparente pros clientes.

    Um abração!
    Alexandre

    Utilize o HearBeat é uma otima opção para qualquer tipo de serviço que se queira monitorar. Na empresa em que trabalho eu o utilizo para monitorar o apache, o sistema de replicação e balanceamento de carga do BD. Funciona perfeitamente. Quando acontece qualquer coisa com a maquina principal o heartbeat sobe a segunda com todos os serviços necessarios como se fossem a principal.
    Mais informações em:
    HomePage: Linux HA