Melhor método para obter redundância “transparente” para Ethernet?

2

Minhas desculpas se essa é uma pergunta óbvia, sou novato no que diz respeito a redes redundantes, e não tenho certeza de quais palavras-chave usar no Google. Meu cenário de aplicação é este:

  • O sistema consiste em um pequeno número de servidores baseados em Linux (de 1 a 20)
  • Cada servidor tem dois conectores Ethernet físicos nele
  • O sistema é executado em uma LAN isolada - não está conectado à Internet de nenhuma maneira
  • O software de aplicativo (personalizado / interno) que é executado em cada servidor se comunica com seus colegas nos outros servidores por meio de conexões TCP persistentes e / ou difusão seletiva UDP.
  • Toda a comunicação acontece via IPv6
  • A coisa mais óbvia a ser feita para obter redundância de rede é ter dois switches Ethernet de alta velocidade e conectar cada servidor Linux a ambos os switches. Dessa forma, se um dos switches falhar, ou alguém acidentalmente cortar um cabo Ethernet, a comunicação pode continuar através do outro cabo / switch, e o sistema permanecerá totalmente funcional.

    A minha pergunta é, existe uma maneira de tornar a redundância 100% transparente para o software de aplicação? (Por transparente, quero dizer que o software aplicativo não deveria ter que saber ou se importar com a existência de mais de uma porta Ethernet; idealmente, só veria uma eth0 e não uma eth1 ... e se os dados parassem de fluir sobre uma das duas portas Ethernet físicas por qualquer motivo, o software do aplicativo não deve ter que detectar a falha ou fazer algo especial para continuar trabalhando).

    A largura de banda extra não é importante para meus propósitos (uma "pista" de gigabit ethernet é rápida o suficiente), mas simplicidade e confiabilidade são.

        
    por Jeremy Friesner 02.10.2009 / 01:57

    2 respostas

    4

    O suco do google que você quer é "Ethernet bonding". É uma obra de arte.

        
    por 02.10.2009 / 02:04
    0

    Se você deseja simplicidade e confiabilidade, obtenha dois comutadores que suportam agregação de link de vários chassis (os fornecedores têm seus próprios nomes, às vezes apenas "empilhamento") e suportam Agregados de Link suficientes por comutador para atender às suas necessidades. A configuração LACP nos servidores e das portas do switch, para que todos os seus aplicativos vejam é um única interface "bond0" em cada servidor.

    O Linux também suporta algo chamado "adaptive load balancing", que ainda parece uma interface "bond0" para a camada de aplicação, mas não usa LACP nem requer switches com suporte de agregação de link multi-chassis (mas os switches devem estar conectado com boa largura de banda). Esse modo usa truques ARP para direcionar o tráfego de entrada para cada interface física, em vez de usar os padrões de ligação da camada de link. Ela requer apenas switches idiotas sem recursos especiais e funciona bem para nós em produção com IPv4, não tendo certeza sobre o IPv6.

        
    por 17.01.2012 / 22:12