Estou vendo algum comportamento confuso em relação às interfaces vinculadas no Linux e gostaria de apresentar a situação na esperança de que alguém possa esclarecer isso para mim.
Eu tenho dois servidores: o Servidor 1 (S1) possui conexões Ethernet de 4x 1Gbit; O servidor 2 (S2) possui duas conexões Ethernet de 1 Gbit. Ambos os servidores estão executando o Ubuntu 12.04, embora com o kernel 3.11.0-15 (do pacote lts-saucy linux-generic).
Ambos os servidores têm todas as suas respectivas interfaces de rede agrupadas em uma única interface bond0 com a seguinte configuração (pol /etc/network/interfaces
):
bond-mode 802.3ad
bond-miimon 100
bond-lacp-rate fast
bond-slaves eth0 eth1 [eth2 eth3]
Entre os servidores, há alguns comutadores HP que estão (eu acho) configurados corretamente para o LACP nas portas em questão.
Agora, o link está funcionando - o tráfego da rede flui alegremente de e para as duas máquinas. E todas as respectivas interfaces estão sendo usadas, portanto, não é como se a agregação estivesse falhando completamente. No entanto, preciso da maior largura de banda possível entre esses dois servidores e não estou conseguindo os ~ 2Gbit / s que esperaria.
Nos meus testes, posso observar que cada servidor parece alocar cada conexão TCP (por exemplo, iperf, scp, nfs, o que for) a uma única interface escrava. Basicamente, tudo parece estar limitado a no máximo 1 gigabit.
Por definição bond-xmit-hash-policy layer3+4
, eu posso usar iperf -c S1 -P2
para enviar em duas interfaces escravas, mas no lado do servidor, a recepção ainda está ocorrendo apenas em uma interface escrava e, portanto, a taxa de transferência total é limitada em 1Gbit / s, ou seja, o cliente mostra ~ 40-50MB / s em duas interfaces escravas, o servidor mostra ~ 100 MB / s em uma interface escrava. Sem configurar bond-xmit-hash-policy
o envio também é limitado a uma interface escrava.
Fiquei com a impressão de que o LACP deveria permitir esse tipo de pacote de conexão, permitindo, por exemplo, uma única transferência scp para fazer uso de todas as interfaces disponíveis entre os dois hosts.
O meu entendimento do LACP está errado? Ou eu perdi algumas opções de configuração em algum lugar? Todas as sugestões ou pistas para investigação seriam muito apreciadas!