Ich sehe ein verwirrendes Verhalten in Bezug auf verbundene Schnittstellen unter Linux und möchte die Situation in der Hoffnung, dass jemand sie für mich klären kann, auf den Markt bringen.
Ich habe zwei Server: Server 1 (S1) hat 4x 1Gbit-Ethernet-Verbindungen; Server 2 (S2) verfügt über 2x 1-Gbit-Ethernet-Verbindungen. Auf beiden Servern wird Ubuntu 12.04 ausgeführt, allerdings mit Kernel 3.11.0-15 (aus dem lts-saucy linux-generic-Paket).
Beide Server haben alle ihre jeweiligen Netzwerkschnittstellen in einer einzigen bond0-Schnittstelle mit der folgenden Konfiguration (in /etc/network/interfaces
) gebündelt :
bond-mode 802.3ad
bond-miimon 100
bond-lacp-rate fast
bond-slaves eth0 eth1 [eth2 eth3]
Zwischen den Servern befinden sich einige HP Switches, die (glaube ich) für LACP an den betreffenden Ports korrekt konfiguriert sind.
Jetzt funktioniert die Verbindung - der Netzwerkverkehr fließt problemlos zu und von beiden Computern. Und alle entsprechenden Schnittstellen werden verwendet, sodass die Aggregation nicht vollständig fehlschlägt. Ich benötige jedoch so viel Bandbreite wie möglich zwischen diesen beiden Servern und erhalte nicht die ~ 2 Gbit / s, die ich erwarten würde.
Bei meinen Tests kann ich feststellen, dass jeder Server jede TCP-Verbindung (z. B. iperf, scp, nfs usw.) einer einzelnen Slave-Schnittstelle zuzuordnen scheint. Im Wesentlichen scheint alles auf maximal 1 Gigabit begrenzt zu sein.
Durch die Einstellung bond-xmit-hash-policy layer3+4
kann ich iperf -c S1 -P2
auf zwei Slave-Schnittstellen senden, aber auf der Serverseite erfolgt der Empfang immer noch nur auf einer Slave-Schnittstelle, und der Gesamtdurchsatz ist daher auf 1 Gbit / s begrenzt, dh der Client zeigt ~ 40-50 MB / s an Auf zwei Slave-Schnittstellen zeigt der Server auf einer Slave-Schnittstelle ~ 100 MB / s an. Ohne Einstellung ist bond-xmit-hash-policy
das Senden auch auf eine Slave-Schnittstelle beschränkt.
Ich hatte den Eindruck, dass LACP diese Art der Verbindungsbündelung zulassen sollte, sodass beispielsweise eine einzige SCP-Übertragung alle verfügbaren Schnittstellen zwischen den beiden Hosts nutzen kann.
Ist mein Verständnis von LACP falsch? Oder habe ich irgendwo einige Konfigurationsoptionen verpasst? Anregungen oder Hinweise zur Untersuchung wäre sehr dankbar!