Bond0 Failover quando a luz do link permanece ativa: High Availability Network

2

Configuração:

  • Dois switches, cada um com uma rota de internet separada
  • Servidores Centos com eth0 e eth1 ligados como um backup ativo no bond0, eth0 no switch e eth1 no outro
  • /etc/modprobe.conf configurado assim, para bond0:

    alias bond0 bonding

    options bond0 mode=1 primary=eth0 miimon=100

  • Às vezes, o eth0 era conectado ao comutador principal, às vezes ao secundário.

Cenário:

  • O comutador secundário tem falha de memória
  • As luzes de link permanecem ativas, mas o switch não está mais lidando com o tráfego

Então, como usamos o miimon, que apenas obtém o status do link, nenhum de nossos servidores desativou esse link de sua ligação quando o switch falhou. Isso causou interrupções de rede e, nos servidores em que eth0 estava no comutador secundário, eles ficaram totalmente indisponíveis. Ironicamente, isso é pior do que se alguém tivesse acabado de passar e retirado todos os cabos, já que eles não falharam.

Eu tenho testado arp_interval como uma alternativa, mas pelo que entendi, arp_interval tem duas limitações:

  • arp_ip_target leva apenas um ip, o que significa que se o endereço IP cair, o bond0 irá erroneamente pensar que o link deve estar inativo e desativá-lo. Eu estava usando o gateway como o endereço IP, mas se o gateway fosse desativado, seria bom continuar com o tráfego interno-para-o-switch continuar. arp_ip_target também não faz isso; ele apenas desligará todas as interfaces, até o último.
  • arp_interval depende de alguma quantidade de tráfego de rede (?), em que um link muito silencioso pode ser encerrado por engano.

Existe alguma maneira de contornar essas limitações arp_interval? O miimon pode ser configurado melhor? Existe uma maneira melhor de realizar o HA Networking? Estamos pensando em manipular failover manualmente por meio de um daemon em cada servidor, em vez de usar arp_interval (ou seja, monitorar os links nós mesmos e usar ifenslave para levá-los para cima e para baixo). Nós já não somos entroncados por desempenho; confiabilidade é realmente nossa prioridade aqui.

    
por Aaron R. 06.05.2013 / 23:18

1 resposta

3

tem a certeza que o testou meticulosamente?

de acordo com this :

arp_ip_target specifies the IP addresses to use as ARP monitoring peers whenarp_interval is > 0. Multiple IP addresses must be separated by a comma.

Eu tenho o modo = 1 configuração em alguns servidores [embora com um único ip fornecido] e ele funciona muito bem, mesmo sem nenhum fluxo de tráfego. o failover foi testado várias vezes com e sem tráfego.

    
por 06.05.2013 / 23:31