Balanceamento de carga assistido por comutador com tolerância a falhas

9

Enquanto estudava para obter as certificações Cisco e Microsoft, li muito sobre o NIC Teaming, Etherchannels e coisas semelhantes.

Eu sei que você pode fazer equipes estáticas no MS Windows Server ou criar um canal de porta na Cisco ou usar protocolos dinâmicos como LACP e PAgP. Mas todos eles oferecem balanceamento de carga usando o endereço MAC ou o endereço IP de origem ou destino, uma combinação que é XOR ou algo semelhante, certo? E parece que não há como aumentar sua taxa de transferência real se você tiver uma longa transferência de arquivos de um servidor para outro (por exemplo, ter 4 GigE unidos para aumentar para 4 Gbps).

Então, eu me pergunto se é verdade? Existe uma maneira de usar toda a largura de banda das interfaces vinculadas? Ouvi de algumas fontes que existe algo como o SLB (Balanceamento de Carga Assistido por Comutador com Tolerância a Falhas), que suporta o balanceamento de carga total e permite usar a largura de banda total (como 4 Gbps do meu exemplo entre dois servidores em uma transação).

Eu ouvi tantas coisas contraditórias sobre isso e estou totalmente confuso. Me ajudem galera!

Alex
fonte
Não é uma pergunta ruim, mas o AFAIK não tem como aumentar a taxa de transferência de um único fluxo de dados usando o balanceamento de carga.
24413 pauska
Isso não foi uma resposta! Apenas um comentário :-) espere o cara mais habilidoso encontrar uma resposta mais profunda.
24413 pauska
É claro que vou :) No entanto, sou um pouco cético quanto a isso ser possível, mas alguns vendedores dizem que sim e meu colega (servidor) também está confuso :) Quer descartar isso
Alex
haha me lembrar: por favor não seguir o conselho de Vendas Pessoas com as lições OSI há alguns anos
Alex

Respostas:

8

Na camada 2, todo o balanceamento de carga é feito, na melhor das hipóteses, por um XOR ou hash do MAC de origem e de destino, e se você tiver sorte, ele pode até ler a camada 3 e também hash esses dados.

Na camada 3, no entanto, onde estamos basicamente falando sobre vários gateways (portanto, efetivamente, dois links físicos com um próximo salto único em cada um), você pode maximizar a largura de banda entre os links, se estiver preparado para balanceamento de pacotes.

Antes de prosseguir, o balanceamento por pacote geralmente é uma coisa ruim devido ao fato de poder resultar em entrega de pacotes fora de ordem, isso pode ser especialmente terrível nas conexões TCP, mas é claro que isso se resume à implementação e a maioria das pilhas modernas pode tolerar isso relativamente bem.

Para fazer o balanceamento por pacote, obviamente, um requisito é que os endereços IP de origem e destino não estejam vinculados aos dispositivos que possuem vários caminhos, pois precisam ser roteados para que o balanceamento seja possível. A redundância pode ser alcançada por meio de um protocolo de roteamento como BGP, OSPF, ISIS, RIP ou, alternativamente, BFD ou detecção simples do estado do link.

Por fim, é claro que existe uma solução da camada de transporte - protocolos como o SCTP suportam conexão com vários pontos finais, e o TCP já possui rascunhos em andamento que adicionam opções para fazer coisas semelhantes. Ou ... você pode simplesmente fazer seu aplicativo abrir vários soquetes.

Olipro
fonte
Obrigado por responder! Sim, estou ciente desse balanceamento de carga L3. E, basicamente, se você quiser mais de um show na camada dois, vá com 10gig? Especialmente se você quiser fazer backups entre os servidores da camada 2, que estão conectados ao mesmo switch?
24413 Alex
Basicamente, sim - você pode fazer coisas hacky no próprio host, como fazer uma ponte falsa e reescrever o MAC de destino de cada quadro para fazer com que cada um saia de uma interface diferente, mas isso realmente depende do seu sistema operacional , não é trivial nem escalável.
Olipro
Temos uma mistura de RHEL e Win 08 R2
Alex
5

Primeiro, vamos ser realistas sobre o desempenho do seu sistema; você precisa garantir que seu sistema possa colocar de forma consistente a largura de banda que você está perguntando do disco para as NICs em questão (consulte a parte inferior da resposta) ...

Desde que você esteja disposto a usar o FTP para suas transferências de arquivos, poderá usar um cliente que ofereça suporte à segmentação do arquivo via RESTcomando FTP para downloads e um servidor que ofereça suporte ao COMBcomando FTP para uploads segmentados. Ao usar clientes FTP que oferecem suporte à segmentação, você pode abrir várias sessões de FTP por transferência de arquivo e aproveitar o hash Layer4 LACP suportado por muitos fornecedores de switches ... independentemente de você estar vinculando links 1GE ou 10GE, as transferências segmentadas aceleram seu desempenho através do LACP.

O CuteFTP para Windows suporta transferências REST e o Filezilla suporta o comando COMB . Estas são apenas duas das várias opções que você pode usar.


Limites do sistema

Não sei que tipo de disco você tem, mas geralmente o limite do sistema único é a E / S do disco ... existem vários pontos de interesse aqui ... da perspectiva do controlador ...

  • SATA (revisão 1) max xfer: 1.2Gbps após sobrecarga de 8b / 10b
  • SATA (revisão 2) max xfer: 2.4Gbps após sobrecarga de 8b / 10b
  • SATA (revisão 3) max xfer: 4.8Gbps após sobrecarga de 8b / 10b
  • Xfer máximo do Fibre Channel 4G: 3.56Gbps

Outro limite possível é a velocidade do disco / eixos / braços ... a menos que você esteja usando um SSD.

Finalmente, você precisa de placas de rede com capacidade suficiente para a placa-mãe ... verifique quantas faixas existem na sua placa de rede PCIe. Suponho que você esteja em uma LAN e que a perda / congestionamento de pacotes não será um problema. Você pode ativar os jumbos se achar que a CPU é um fator limitante para suas transferências.

Mike Pennington
fonte
Acho que usamos FTP e SCP para transferir. No que diz respeito ao desempenho de E / S, estamos planejando migrar para o iSCSI e, independentemente do que eu diga, não podemos realmente oferecer um switch de 10gig de alta densidade devido ao orçamento limitado (o que é realmente necessário nesse caso), portanto estamos tentando improvisar à medida que avançamos. Apenas planejando.
24413 Alex
@Alex Eu também trabalho com um orçamento limitado e uso o iSCSI. Os switches Dell PowerConnect 8132 / 8164F são tão baratos quanto você pode obter por porta com SFPs e não com um buffer de porta distraído. Tivemos um grande sucesso com eles.
24513 pauska
Vou dar uma olhada para eles :)
Alex
@ Alex, eu não estou propondo que você use um switch 10GE ... mesmo vários 1GEs ligados podem exceder a capacidade do servidor ... Atualizei minha resposta para destacar que estou sugerindo que você use o LACP
Mike Pennington