802.3ad Bandbreite

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
PatrickOliver
Beiträge: 70
Registriert: 03.04.2014 10:54:32

802.3ad Bandbreite

Beitrag von PatrickOliver » 03.04.2014 12:04:09

Hallo Community,

aktuell beschäftigt mich das Thema Bonding und habe dafür das Paket ifenslave-2.6 auf zwei Supermicro-Rechnern mit je vier Gbit-Nics unter Debian Wheezy installiert.
Die Netzwerkschnittstellen eth0 und eth1 sind jeweils direkt miteinander per Crossover-Kabel verbunden.
Beide Maschinen sind mit Ausnahme der IP Adressen gleich konfiguriert, alle Pakete sind per aptitude update und upgrade auf dem aktuellen Stand.

Code: Alles auswählen

root@kvm1:/# uname -r
3.2.0-4-amd64

Code: Alles auswählen

root@kvm1:/# aptitude show ifenslave-2.6 | grep -i version
Version: 1.1.0-20

Code: Alles auswählen

root@kvm1:/# cat /etc/network/interfaces
auto lo
iface lo inet loopback

iface eth0 inet manual
        bond-master bond0

auto eth1
iface eth1 inet manual
        bond-master bond0

auto bond0
iface bond0 inet static
        address 192.168.83.225
        network 255.255.255.0
        gateway 192.168.83.1
        bond-mode 4
        bond-miimon 100
        bond-downdelay 200
        bond-updelay 200
        bond-lacp-rate 4
        bond-slaves none

Code: Alles auswählen

root@kvm1:/# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 200
Down Delay (ms): 200

802.3ad info
LACP rate: fast
Min links: 0
Aggregator selection policy (ad_select): stable
Active Aggregator Info:
        Aggregator ID: 1
        Number of ports: 2
        Actor Key: 17
        Partner Key: 17
        Partner Mac Address: xx:xx:xx:xx:xx:xx

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: xx:xx:xx:xx:xx:xx
Aggregator ID: 1
Slave queue ID: 0

Slave Interface: eth1
MII Status: down
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: xx:xx:xx:xx:xx:xx
Aggregator ID: 1
Slave queue ID: 0

Code: Alles auswählen

root@kvm1:/# iperf -c kvm2 -P 4
------------------------------------------------------------
Client connecting to 192.168.83.226, TCP port 5001
TCP window size: 23.5 KByte (default)
------------------------------------------------------------
[  5] local 192.168.83.225 port 34514 connected with 192.168.83.226 port 5001
[  6] local 192.168.83.225 port 34515 connected with 192.168.83.226 port 5001
[  3] local 192.168.83.225 port 34511 connected with 192.168.83.226 port 5001
[  4] local 192.168.83.225 port 34512 connected with 192.168.83.226 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   279 MBytes   234 Mbits/sec
[  6]  0.0-10.0 sec   272 MBytes   228 Mbits/sec
[  4]  0.0-10.0 sec   291 MBytes   243 Mbits/sec
[  5]  0.0-10.1 sec   292 MBytes   244 Mbits/sec
[SUM]  0.0-10.1 sec  1.11 GBytes   947 Mbits/sec
Auszug aus der Manpage zu iperf.

Code: Alles auswählen

      -P, --parallel n
             number of parallel client threads to run
Vermutlich habe ich 802.3ad nicht richtig verstanden, oder ich bediene iperf falsch.
Ich bin davon ausgegangen, dass ich mit dem Bond-Modus 4 (802.3ad) eine Bandbreitenerhöhung erziele.
Könnt ihr mir bitte einen Schubser in die richtige Richtung geben?

dufty2
Beiträge: 1714
Registriert: 22.12.2013 16:41:16

Re: 802.3ad Bandbreite

Beitrag von dufty2 » 03.04.2014 22:04:39

PatrickOliver hat geschrieben: Slave Interface: eth1
MII Status: down
Speed: Unknown
Duplex: Unknown
Mmmh, eth1 ist down?
Kann dann nix werden mit den 2 Gbit/s, oder?

PatrickOliver
Beiträge: 70
Registriert: 03.04.2014 10:54:32

Re: 802.3ad Bandbreite

Beitrag von PatrickOliver » 04.04.2014 08:42:35

Hallo Dufty2,

du hast vollkommen recht, so könnte das nicht funktionieren.
Leider hat sich da aber nur der Fehlerteufel beim kopieren/einfügen eingeschlichen!
Ausgerechnet der von dir bemängelte Teil stammt aus der Übergangszeit meiner anschließenden Experimente mit LACP in Verbindung mit einem Switch.
Für meinen Fehler bitte ich um verzeihung. Besonders, weil du dir die Mühe gemacht hast, dir meinen Beitrag aufmerksam durchzulesen. :oops:

Analog zur Crossoververbindung hier das aktuelle Ergebnis beim Verbund von drei Nodes mit Konfiguration via LACP.

Code: Alles auswählen

root@kvm23-3:/# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 200
Down Delay (ms): 200

802.3ad info
LACP rate: fast
Min links: 0
Aggregator selection policy (ad_select): stable
Active Aggregator Info:
        Aggregator ID: 1
        Number of ports: 2
        Actor Key: 17
        Partner Key: 0
        Partner Mac Address: 00:12:cf:e3:08:02

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:25:90:57:16:80
Aggregator ID: 1
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:25:90:57:16:81
Aggregator ID: 1
Slave queue ID: 0

Code: Alles auswählen

root@kvm23-3:/# cat /etc/modprobe.d/bonding.conf
alias bond0 bonding
        options bonding mode=4 miimon=100 lacp_rate=1

Code: Alles auswählen

root@kvm23-3:/# cat /etc/modules
loop
bonding
mii
Im Switch (TP-Link TL_SG5426) wird der Trunk erkannt.
Trunk 1-3 Type:1000Base-TX, Admin Status: Enabled, Oper Status: Up, Speed Duplex Status: 1000full, Flow Control Status: None, Autonegotation: Enabled, Creation LACP.

Inzwischen glaube ich, dass 802.3ad keine ~2Gbit/s für EINE Verbindung ermöglicht.
Vielmehr denke ich, kann man damit über mehrere Verbindungen auf unterschiedliche Dienste in der Summe ~2Gbit/s erreichen.
So ganz sicher bin ich mir aber noch nicht.
Getestet habe ich bis jetzt nur mit iperf, parallel auf unterschiedlichen Ports.
In der Summe komme ich aber "nur" auf 1Gbit/s :-(

Würde mich sehr über weitere Hilfe freuen ;-)

PatrickOliver
Beiträge: 70
Registriert: 03.04.2014 10:54:32

Re: 802.3ad Bandbreite

Beitrag von PatrickOliver » 04.04.2014 10:46:05

Inzwischen habe ich alles noch einmal überprüft.
Exemplarisch die Konfiguration des 2. Nodes.
Verbunden sind die Kisten per Crossover - eth0 an eth0, eth1 an eth1.

Code: Alles auswählen

root@kvm23-2:/# cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual
        bond-master bond0

auto eth1
iface eth1 inet manual
        bond-master bond0

auto bond0
iface bond0 inet static
        address 192.168.83.225
        network 255.255.255.0
        gateway 192.168.83.1
        bond-mode 4
        bond-miimon 100
        bond-downdelay 200
        bond-updelay 200
        bond-lacp-rate 4
        bond-slaves none

Code: Alles auswählen

root@kvm23-2:/# cat /etc/modprobe.d/bonding.conf
alias bond0 bonding
        options bonding mode=4 miimon=100 lacp_rate=1

Code: Alles auswählen

root@kvm23-2:/# cat /etc/modules
loop
bonding
mii

Code: Alles auswählen

root@kvm23-2:/# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 200
Down Delay (ms): 200

802.3ad info
LACP rate: fast
Min links: 0
Aggregator selection policy (ad_select): stable
Active Aggregator Info:
        Aggregator ID: 1
        Number of ports: 2
        Actor Key: 17
        Partner Key: 17
        Partner Mac Address: 00:25:90:75:95:48

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:25:90:75:67:60
Aggregator ID: 1
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:25:90:75:67:61
Aggregator ID: 1
Slave queue ID: 0
Auf beiden Nodes habe ich iperf auf unterschiedlichen Ports laufen.

Code: Alles auswählen

root@kvm23-2:~# iperf -s -p 5002

Code: Alles auswählen

root@kvm23-4:~# iperf -s -p 5001
Von beiden Nodes verbinde ich fast gleichzeitig jeweils auf den anderen Node.

Code: Alles auswählen

root@kvm23-2:~# iperf -c 192.168.83.227 -p 5001 -d
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
------------------------------------------------------------
Client connecting to 19.168.83.227, TCP port 5001
TCP window size: 150 KByte (default)
------------------------------------------------------------
[  5] local 192.168.83.225 port 55822 connected with 192.168.83.227 port 5001
[  4] local 192.168.83.225 port 5001 connected with 192.168.83.227 port 37504
[ ID] Interval       Transfer     Bandwidth
[  5]  0.0-10.0 sec   723 MBytes   606 MBits/sec
[  4]  0.0-10-0 sec   721 MBytes   604 MBits/sec

Code: Alles auswählen

root@kvm23-4:~# iperf -c 192.168.83.225 -p 5002 -d
------------------------------------------------------------
Server listening on TCP port 5002
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
------------------------------------------------------------
Client connecting to 19.168.83.225, TCP port 5002
TCP window size: 23.5 KByte (default)
------------------------------------------------------------
[  5] local 192.168.83.227 port 38416 connected with 192.168.83.225 port 5002
[  4] local 192.168.83.227 port 5002 connected with 192.168.83.225 port 40802
[ ID] Interval       Transfer     Bandwidth
[  5]  0.0-10.0 sec   460 MBytes   386 MBits/sec
[  4]  0.0-10-0 sec   468 MBytes   392 MBits/sec
Erwartet hätte ich bei nur einem Test eine Bandbreite um die 2GBit/s (jeweils senden und empfangen).
Alternativ wäre ich bei gleichzeitigen, bidirektionalen Tests mit einer Gesamt-Bandbreite von 2GBit/s (jeweils senden und empfangen), also 2x1GBit/s (jeweils senden und empfangen), zufrieden.

Ideen, was ich falsch mache?

Nachtrag:
In der /etc/modprobe.d/bonding.conf habe ich lacp_rate=1 angegeben.
In der /etc/network/interfaces bond-lacp-rate 4.
Keine Ahnung, aus welchen Tutorials ich das zusammengekratz habe.
Unter http://forum.proxmox.com/threads/17360-Bond-lacp-rate wird auf https://www.kernel.org/doc/Documentatio ... onding.txt, Abschnitt lacp_rate verwiesen und dort gibt es nur die Werte 0 für slow und 1 für fast. In meiner Konfig wird scheinbar fast verwendet.

dufty2
Beiträge: 1714
Registriert: 22.12.2013 16:41:16

Re: 802.3ad Bandbreite

Beitrag von dufty2 » 04.04.2014 15:57:42

Probier mal
bond-mode 1 ( balance-rr )
und in einem weiteren Test noch zusätzlich mit mtu 9000.

PatrickOliver
Beiträge: 70
Registriert: 03.04.2014 10:54:32

Re: 802.3ad Bandbreite

Beitrag von PatrickOliver » 04.04.2014 16:04:52

Bei Mode 0 komme ich an die 2GBit/s. Nur habe ich dann 50% Packetverluste, wenn ich ein Kabel ziehe.
Bond Mode 1 ist Aktive/Backup afaik.
Mtu werde ich testen.

r4pt0r
Beiträge: 1237
Registriert: 30.04.2007 13:32:44
Lizenz eigener Beiträge: MIT Lizenz

Re: 802.3ad Bandbreite

Beitrag von r4pt0r » 04.04.2014 16:20:43

Die bond-lacp-rate kenne ich nur als 0 (slow = 30sec = default) und 1 (fast = 1sec) - was ist 4?
"bond-master" für die slave-interfaces kannte ich bisher auch noch nicht


So habe ich es hier an 2 Servern laufen:

/etc/network/interfaces:

Code: Alles auswählen

iface eth0 inet manual

iface eth1 inet manual

auto bond0
iface bond0 inet manual
        slaves eth0 eth1
        bond_miimon 100
        bond_mode 802.3ad

auto vmbr0
iface vmbr0 inet static
        address  ...
        netmask ...
        gateway ...
        broadcast ...
        dns-servers ...
        dns-search ...
        bridge_ports bond0
        bridge_stp off
        bridge_fd 0
Geht natürlich auch ohne bridge-interface, dann wird direkt das bond0 interface angesprochen.

Geschwindigkeit bei backups zum NAS das auch per 802.3ad angebunden ist liegt bei ca 1,7 gbit/s. Gleichzeitig streamen 2 x 10mpixel-Überwachungskameras auf ne VM an dem Server + "Grundrauschen" von ca 30 Windows-clients und nem Windows-Server in einer VM. Kommt also ziemlich gut an die 2gbit/s ran...



Kannst du die beiden ggf mal an einen switch mit LAG hängen? Habe noch nie ausprobiert ob bonding bei direkter Verbindung zweier PCs funktioniert...
Ein älterer netgear-switch ließ aber immer wieder mal eine Leitung fallen bei 802.3ad LAG - egal ob zum Server oder einem der Cisco-switches. Also ganz trivial und 100% kompatibel scheint nicht alles zu sein was 802.3ad "unterstützt".

Die MTU sollte eigentlich nur noch die letzten paar mbit rausholen, aber nicht Ursache für 50% zu wenig Durchsatz sein.

dufty2
Beiträge: 1714
Registriert: 22.12.2013 16:41:16

Re: 802.3ad Bandbreite

Beitrag von dufty2 » 04.04.2014 16:39:38

r4pt0r hat geschrieben: Geschwindigkeit bei backups zum NAS das auch per 802.3ad angebunden ist liegt bei ca 1,7 gbit/s. Gleichzeitig streamen 2 x 10mpixel-Überwachungskameras auf ne VM an dem Server + "Grundrauschen" von ca 30 Windows-clients und nem Windows-Server in einer VM. Kommt also ziemlich gut an die 2gbit/s ran...
Falls nicht mode balance-rr (mode 0) genommen wird - so hab ich bonding.txt verstanden - erreicht man für eine einzelne (TCP-)Verbindung nicht mehr als die 1 Gbit/s.
Bei Deinen beiden Streamern wird's wohl UDP sein und hast auch sonst eine gute Mischung aus mehreren (TCP-)Verbindungen.

r4pt0r
Beiträge: 1237
Registriert: 30.04.2007 13:32:44
Lizenz eigener Beiträge: MIT Lizenz

Re: 802.3ad Bandbreite

Beitrag von r4pt0r » 04.04.2014 16:54:35

Es werden mehrere backups parallel übertragen (was fertig verpackt ist ist wird losgeschickt) - also ja, mehrere separate TCP-Verbindungen.
Eine einzelne Verbindung (iperf) habe ich noch nicht getestet (da nicht auf dem NAS verfügbar - da muss endlich mal debian drauf...)

Wenn tatsächlich je Verbindung aber nur max 1gbit/s möglich sind, wären die gemessenen 9xx Mbits ja OK - sofern eine zweite iperf-Verbindung nochmal den selben Wert zustande bringt...

iperf gibt m.E. auch ganz gerne mal sehr seltsame Werte aus - vor allem wenn Kompression ins Spiel kommt schwanken die Werte locker mal um 50% (da passen dann plötzlich 14MB/ durch ne 10MBit Standleitung :mrgreen: )
Sollte hier zwar nicht der Fall sein, zumal die werte plausibel sind - aber evtl trotzdem mal mit netperf gegentesten oder ne testdatei aus /dev/random füllen und über die Verbindung schieben (auch mehrfach parallel...)

PatrickOliver
Beiträge: 70
Registriert: 03.04.2014 10:54:32

Re: 802.3ad Bandbreite

Beitrag von PatrickOliver » 04.04.2014 16:55:50

Herje .. da hab ich mich mit dem Einstellen des MTU-Werts etwas ausgesperrt. Vermutlich müssen noch Jumboframes konfiguriert werden.

r4pt0r:
Vielen, vielen Dank für deinen Beitrag.
Denn wenn ich deinen Beitrag richtig lese, kann man eben doch über 802.3ad aus 2x1GBit-Interface per z.B. SCP, Gluster oder rsync bis zu 2GBit/s mit einem Prozess hinbekommen.
Das mit der LACP-Rate habe ich heute Mittag bereits veruscht zu erklären.
In irgend einem Tutorial stand das so drin und weil scheinbar in meiner Konfig /etc/modprobe.d/bonding.conf vorrang hat, wird LACP rate: fast in /proc/net/bonding/bond0 angezeigt.
Ich ändere es trotzdem ab ;-)

bond-master" für die slave-interfaces kannte ich bisher auch noch nicht

http://metadata.ftp-master.debian.org/c ... DME.Debian

Nochmal, vielen Dank für deinen Beitrag.
Ich werde es am Montag noch einmal mit einem Cisco-Switch testen und mich dann noch einmal melden ;-)


Nachtrag:
Ich muss das alles noch einmal in Ruhe durchlesen, was ihr zwei da so schreibt und melde mich nach dem Wochenende noch einmal :-)
Danke euch ;-)

Nachtrag 2014-05-14:
Im Faden viewtopic.php?f=30&t=149152#p988103 wird mein Problem auf Seite 2 halbwegs gelöst.

Antworten