Posso usar o Unix para balancear a carga de dois servidores Linux?

7

Estou tentando descobrir uma solução na minha cabeça em que dois servidores Linux de back-end executam HTTP, SMTP, XMPP espelhados e devem carregar as conexões de equilíbrio entre eles.

Minha solução atual é um frontfront de caixa do OpenBSD, que pode ser estendido com carpas para adicionar mais no futuro, para evitar um único ponto de falha. Usando o PF eu poderia ter um pool de servidores para enviar tráfego, usando métodos aleatórios ou round-robin.

E usando o relayd eu posso remover servidores-pool que não funcionam a partir dele.

Mas eu valorizaria as opiniões da comunidade sobre esse assunto, então, por favor, diga-me sua melhor solução de balanceamento de carga Unix para esse tipo de ambiente.

Um objetivo é que um único servidor tenha permissão para falhar com a interrupção mínima do serviço.

    
por Stefan Midjich 28.09.2011 / 10:07

6 respostas

1

Estou familiarizado apenas com uma combinação Linux pura de heartbeat e ldirector (ambos fazem parte do projeto servidor virtual linux para o encapsulamento IP tráfego de um par de front-ends para N back-ends, e para compartilhar / trocar um IP de front-end entre dois front-ends quando um morre.Ele funcionou muito bem no ambiente que eu usei, mas não tenho certeza se é vulnerável a problemas de cérebro dividido.

    
por 28.09.2011 / 15:17
1

O HAProxy foi compilado em um monte de plataformas * nix, incluindo o BSDs e o Solaris (e, é claro, o Linux). Se o seu balanceador de carga não estiver executando o Linux, é um software muito conveniente e configurável. Ele sabe sobre HTTP, mas também pode balancear qualquer serviço TCP sobre o qual não saiba nada. Ele pode verificar servidores e removerá de serviço qualquer um que não seja responsivo (ou não seja responsivo o suficiente).

Ele mora aqui: link

Há uma desvantagem: ele só fala com os servidores internos (back-end) via IPv4 (as conexões IPv6 de entrada são bem balanceadas, é apenas a conexão interna que é limitada ao IPv4). Se o seu farm de servidores estiver em uma configuração de pilha dupla, isso não é um problema.

    
por 11.01.2012 / 17:55
0

Nós usamos um par de servidores CentOS 5 virtuais que executam lvs, lvs-kiss e heartbeat. Os servidores virtuais deles residem em um cluster XEN que pode fazer failover para um local diferente.

Um dos Servidores LVS é o mestre ativo, o outro é o escravo. Em ambos, os dois processos (mestre e escravo) são executados permanentemente, de modo que as sessões são replicadas o tempo todo.

Se o servidor lvs ativo for desativado, o outro assumirá e servirá a conexão lb para o servidor de destino anterior.

    
por 28.09.2011 / 23:06
0

Outra opção recente usando o Linux é o projeto IPVS que agora está incluído no kernel do Linux v2.6.38-rc3 ou posterior.

Ele usa a comutação da camada 4 no kernel e diz-se que é - RÁPIDO.

Mais informações aqui link

    
por 29.09.2011 / 02:34
0

Para responder a pergunta, sim, você pode usar o Linux para balancear a carga de outros dois servidores linux (seus serviços na verdade). Eu uso o Piranha para ser mais específico para isso. Piranha é uma camada de gerenciamento no topo do sistema de cluster LVS. O bom e detalhado howto da Redhat está no link

link

    
por 11.01.2012 / 18:03
0

A maneira mais completa de fazer isso é usar marcapasso + LVS.

O LVS é a abreviatura de Linux Virtual Server. Muita informação pode ser encontrada em linux-ha.org Basicamente, o kernel do Linux tem um balanceador de carga chamado IPVS. Como tal, é extremamente bem testado e suportado. Também tem sido em torno de um tempo muuuuito, (Kernel 2.0 dias eu acredito).
Existem vários utilitários para gerenciar o balanceador de carga, como ldirector e piranha. Ldirector é provavelmente o mais proeminente. O que esses utilitários são responsáveis por fazer periodicamente é verificar seus servidores de backend e certificar-se de que eles ainda estão lá e operando corretamente. Se achar que o servidor sumiu, ele removerá esse servidor da tabela IPVS do kernel e o removerá efetivamente do pool. Esses utilitários não são necessários, pois você pode interagir diretamente com a tabela IPVS usando ipvsadm .

O marcapasso é o sucessor do Heartbeat, que é o utilitário padrão para armazenamento em cluster há muito tempo. Heartbeat foi preterido em favor do Pacemaker (batimento cardíaco não está mais sendo mantido), então enquanto você ainda pode usar Heartbeat se quiser (é definitivamente mais simples de configurar), seu fim está chegando.
A razão pela qual eu menciono este utilitário é que sem um par de balanceadores de carga na frente, você está apenas movendo o ponto único de falha para outro lugar. Em vez de um único servidor de back-end poder falhar, agora um único balanceador de carga pode falhar e você está no mesmo barco. O marcapasso garantirá que um balanceador de carga esteja sempre em execução. Se o balanceador de carga ativo falhar, o outro assumirá. Um benefício adicional do marca-passo é que ele permite que você execute ambos os balanceadores de carga em uma configuração ativa / ativa se você tiver vários IPs (a pulsação não pode fazer isso).

    
por 12.01.2012 / 01:03

Tags