boas soluções de failover / alta disponibilidade para linux? [fechadas]

9

Tenho vários casos em que preciso que os aplicativos sejam migrados de um servidor para outro em caso de falha (travamento ou travamento do servidor).

No solaris, fazemos isso com o VCS (Veritas Cluster Server). Quais opções estão disponíveis para Linux?

Indique o nível de esforço para configurar / manter ou custar (se houver) para cada um.

- Mais detalhes adicionados -

Para dar uma idéia do nível de complexidade:

  • servidor com falha pode travar ou travar sem aviso prévio, ainda pode ser 'capaz de executar ping'
  • servidor de recuperação precisa iniciar seus aplicativos em failover
  • uma vez que o servidor falha na inicialização / ciclo de energia, torna-se passivo para não interferir no servidor de recuperação.

Este é um nó de coleta ou computação de dados, não um banco de dados; portanto, soluções mais simples podem funcionar.

- ainda mais detalhes (desculpe) -

o armazenamento compartilhado não é uma opção, mas não é necessário muito estado (se houver) para migrar de um servidor para outro. Mantemos os dois servidores sincronizados via rsync.

Muito obrigado por todas as postagens até agora.

ericslaw
fonte

Respostas:

10

http://linux-ha.org/ para todas as suas necessidades de alta disponibilidade. Como a música diz, as melhores coisas da vida são gratuitas.

mulher
fonte
você pode recomendar um bom livro?
Slf
4

Eu usei uma variedade de soluções de cluster no Linux. Eu também sou um proponente de gerenciamento de configuração, então adicionarei um pouco sobre isso em minhas descrições (Chef ou Puppet, ou seja)

Veritas Cluster Server (VCS). Já faz um tempo, mas implantamos alguns clusters de VCS do Linux no RHEL 3.0. Espero que esteja disponível no RHEL 5.0. Você deve estar familiarizado com a dificuldade de configurar isso, como seu território familiar. Como você deve saber, o VCS é caro. Curiosamente, o VCS não é adequado para ser configurado pelo gerenciamento de configurações.

Falando em RHEL, o Red Hat Cluster Suite amadureceu muito desde seu lançamento original com o RHEL 2.1. A fase de instalação / configuração é bem direta, e a documentação é muito completa e útil, e, como o VCS, você pode adquirir suporte do fornecedor. Para produtos comerciais de alta disponibilidade, o RHCS tem preços razoáveis. Eu usaria apenas o gerenciamento de configuração para instalar os pacotes e mantê-los "manualmente" através da interface da web. Além disso, ouvi falar de algumas pessoas usando-o em plataformas que não são da Red Hat, embora não tenha experiência com isso diretamente.

O Linux-HA (drbd / heartbeat) também é ótimo, embora, vindo do VCS, a configuração possa parecer simplista, porém pesada. Isso é muito fácil de automatizar com uma ferramenta de gerenciamento de configuração.

Como prova de conceito, instalei um cluster Linux com o HACMP da IBM - seu software de cluster AIX. Eu não recomendaria isso, pelo que me lembro, é mais caro do que até o VCS. A IBM possui procedimentos específicos para instalar e manter o HACMP; eu não usaria o gerenciamento de configuração aqui.

jtimberman
fonte
4

Michael está certo de que a comunidade está um pouco fragmentada no momento e a documentação é um pouco escassa.

Na verdade, está tudo lá, é simplesmente impossível de entender. O que você realmente deseja é o e-book "Configuração do marcapasso explicado" ... ( Link para PDF ). Você vai querer lê-lo cerca de uma dúzia de vezes e, em seguida, tentar implementá-lo, e depois lê-lo mais uma dúzia de vezes, para poder realmente grok.

A melhor implementação suportada de serviços de cluster para Linux neste momento provavelmente será o SLES11 da Novell e sua HAE (High Availability Extension). APENAS saiu um mês ou dois atrás, e vem com um bom manual de 200 páginas que descreve como configurá-lo e colocar as coisas em funcionamento. A Novell também tem sido excelente em oferecer suporte às configurações do pacemaker de várias formas.

Além disso, há a implementação do RHEL5, que tem o mesmo pacote e documentação decente, mas acho que é mais caro que o SLES. Pelo menos, é para nós.

Eu evitaria o Heartbeat agora e seguia com o Pacekmaker / OpenAIS, porque eles terão muito mais suporte no futuro. NO ENTANTO, o estado atual da comunidade é tal que existem poucos especialistas, há algumas pessoas que o administram na produção e há uma tonelada de pessoas completamente sem noção. Entre na lista de marcapasso do Pacemaker e preste atenção em um homem chamado Andrew Beekhof.

Edite para fornecer os detalhes solicitados:

O Pacemaker / OpenAIS usa uma operação de 'monitor' em um 'recurso primitivo' (por exemplo, nfs-server) para acompanhar o que o recurso está fazendo. Se o servidor NFS de exemplo não responder ao restante do cluster por um número X de segundos, o cluster executará uma operação STONITH (Atire o outro nó na cabeça) para desligar o nó principal, promovendo a ativação do nó secundário. Você decide na configuração o que executar posteriormente e as ações associadas a serem executadas. Os detalhes da implementação dependem de qual serviço você está tentando executar failover, janelas de execução para determinadas operações (como promover o nó primário de volta ao mestre) e tudo é o mais configurável possível.

Karl Katzke
fonte
1

A comunidade de alta disponibilidade do Linux está um pouco particionada no momento.

As ferramentas anteriormente conhecidas como HA de Linux atualmente são Pacemaker e OpenAIS , geralmente são executadas em combinação com DRBD quando é necessária uma arquitetura de nada compartilhado.

Sugiro obter um bom livro sobre esse tópico antes de mergulhar, pois essa é uma área bastante abrangente, e o estado dos projetos não é necessariamente tão fácil de usar quanto algumas soluções de fornecedores.

Também existem soluções Linux de alguns fornecedores de software de cluster, mas não posso dizer muito sobre elas, pois nunca as usei.

Michael Renner
fonte
1
Você poderia sugerir um bom livro ou dois sobre esse assunto?
Matt Simmons
1

Com o Linux, implementamos o clustering com pulsação e drbd. A pulsação verifica o status do servidor. DRBD é usado para sincronização de dados entre servidores. Temos serviço oracle em execução em um servidor e apache em outro servidor. Quando o servidor que executa o oracle falha, a pulsação detecta o mesmo e restaura o serviço oracle no servidor que executa o apache. e vice-versa. Usam essa configuração para muitos outros fins e são confiáveis ​​até a data.

Viky
fonte
1

O Red Hat Cluster Suite fará o que você deseja para praticamente todos os aplicativos possíveis. Em combinação com o GFS e o Cluster LVM, você pode ter um armazenamento compartilhado sólido.

A manutenção não é muito mais difícil do que manter as caixas individuais em funcionamento. A migração de aplicativos facilita, na verdade, corrigir as caixas individuais.

O RHCS vem com um front-end da web (Luci) e um front-end do GTK (system-config-cluster) para tornar a configuração e a migração clicáveis. Permite configurar domínios de failover por aplicativo, políticas de recuperação, cercas, tudo em um console de gerenciamento central baseado na Web.

Considerando o fato de que o RHCS realmente tem uma opção de suporte bastante sólida, eu optaria pelo RHCS.

Não sei quanto isso custaria, mas acho que está na faixa de vários milhares de dólares.

wzzrd
fonte
1

UltraMonkey , parcialmente construído sobre a estrutura Linux-HA. Eu sempre pensei nisso como mais uma solução de balanceamento de carga do que um cluster de verdade, mas ele lida bem com o failover.

gbjbaanb
fonte
Isso ainda está atualizado? o site diz:Copyright © 2000-2005, Horms Last Updated: Sat Mar 4 16:33:57 2006 +0900
NickW
0

Usamos o Linux Virtual Server e mantemos-os vivos para nossa alta disponibilidade. O keepalived pode fazer VRRP nos próprios hosts (que eu acredito que depende do outro servidor morrer) ou você pode configurá-lo em um host separado para fazer o balanceamento de carga, que pode ter verificações de disponibilidade do serviço. Pode ser possível configurar as verificações de serviço na primeira situação, mas ainda não o fiz. A segunda situação é particularmente boa se você pode ter os dois servidores em execução ao mesmo tempo, caso contrário, você pode fazer uma alternância manual.

David Pashley
fonte
0

Eu escrevi um balanceador de carga baseado em software para TCP que não requer uma máquina separada. Ele compartilha um único endereço IP, anunciando-o em um endereço no nível do link multicast e negociando entre máquinas para evitar duas máquinas que atendem à mesma conexão TCP.

O lado negativo é que ele não está realmente pronto para produção - mas se você quiser testá-lo em sua rede de testes, ficaria satisfeito.

O cluster fofo está aqui

Não detecto necessariamente uma situação "viva mas doente", mas faço o balanceamento de carga entre os servidores membros (se o processo do espaço do usuário morrer, os outros nós notarão e removerão o nó com falha)

MarkR
fonte
0

Não é gratuito, mas para aqueles que não têm tempo ou conhecimento para instalar sua própria solução de HA no Linux, a resposta está em www.rapidscaleclusters.com. Em poucos minutos você está pronto para o uso, fácil de instalar e executar, também é suportado.

Vince Bryant
fonte
não sei por que alguém marcou isso ... isso parece uma solução viável (embora sempre haja truques técnicos ... pelo menos isso não parece um 'serviço' que foi minha primeira impressão).
21411 ericslaw
0

Estou trabalhando em um gerenciador de cluster de failover de código aberto escrito em shell script. Está em boa forma, mesmo que possa perder alguma integração necessária. Confira e informe-me se houver algum recurso ausente que você gostaria de ver e usar: https://github.com/nackstein/back-to-work/

se você é bom em programação de shell (shell POSIX), pode participar do desenvolvimento do projeto: D

Luigi
fonte