bond0 wird nicht komplett ausgelastet

jb_alvarado

Lt. Junior Grade
Registriert
Sep. 2015
Beiträge
491
Hallo Allerseits,
ich habe einen Server mit Rocky Linux 8.5 neu aufgesetzt (vorher lief CentOS 7 drauf). Da der Server 4 Netzwerkkarten hat, habe ich diese wieder zu einem bond Interface zusammen gefügt. Modus ist 802.3ad und verwenden tue ich zudem xmit_hash_policy layer3+4. Im Switch (HP Aruba 1930) ist der Trunk Type auf LACP gestellt.

Das Problem ist jetzt, dass nicht alle 4 Karten voll ausgelastet werden, wenn ich mit vier Rechnern drauf zugreifen (ich teste mit iperf). Ich bekomme nur 3 GBit/s Auslasten (manchmal auch nur 2), obwohl Traffic über alle Interface läuft.

Im Grunde sollten alle Einstellung gleich sein, mit denen die ich schon unter CentOS 7 hatte. Das einzige was mir aufgefallen ist, dass mit ip address show alle Interface die gleiche Mac Adresse haben, das war vorher nicht so. Ich weiß aber nicht ob das vielleicht von Rocky Linux etwas anders gehandelt wird, und nur ein Anzeigeproblem ist.

Hier mal noch einige Daten:

cat /proc/net/bonding/bond0:

Code:
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer3+4 (1)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Peer Notification Delay (ms): 0

802.3ad info
LACP rate: slow
Min links: 0
Aggregator selection policy (ad_select): stable
System priority: 65535
System MAC address: a0:d3:c1:06:36:ec
Active Aggregator Info:
    Aggregator ID: 3
    Number of ports: 4
    Actor Key: 9
    Partner Key: 1000
    Partner Mac Address: b8:d4:e7:eb:17:af

Slave Interface: eno1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: a0:d3:c1:06:36:ec
Slave queue ID: 0
Aggregator ID: 3
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 0
Partner Churned Count: 0
details actor lacp pdu:
    system priority: 65535
    system mac address: a0:d3:c1:06:36:ec
    port key: 9
    port priority: 255
    port number: 1
    port state: 61
details partner lacp pdu:
    system priority: 1
    system mac address: b8:d4:e7:eb:17:af
    oper key: 1000
    port priority: 1
    port number: 4
    port state: 61

Slave Interface: eno2
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: a0:d3:c1:06:36:ed
Slave queue ID: 0
Aggregator ID: 3
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 0
Partner Churned Count: 0
details actor lacp pdu:
    system priority: 65535
    system mac address: a0:d3:c1:06:36:ec
    port key: 9
    port priority: 255
    port number: 2
    port state: 61
details partner lacp pdu:
    system priority: 1
    system mac address: b8:d4:e7:eb:17:af
    oper key: 1000
    port priority: 1
    port number: 2
    port state: 61

Slave Interface: eno3
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: a0:d3:c1:06:36:ee
Slave queue ID: 0
Aggregator ID: 3
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 0
Partner Churned Count: 0
details actor lacp pdu:
    system priority: 65535
    system mac address: a0:d3:c1:06:36:ec
    port key: 9
    port priority: 255
    port number: 3
    port state: 61
details partner lacp pdu:
    system priority: 1
    system mac address: b8:d4:e7:eb:17:af
    oper key: 1000
    port priority: 1
    port number: 3
    port state: 61

Slave Interface: eno4
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: a0:d3:c1:06:36:ef
Slave queue ID: 0
Aggregator ID: 3
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 0
Partner Churned Count: 0
details actor lacp pdu:
    system priority: 65535
    system mac address: a0:d3:c1:06:36:ec
    port key: 9
    port priority: 255
    port number: 4
    port state: 61
details partner lacp pdu:
    system priority: 1
    system mac address: b8:d4:e7:eb:17:af
    oper key: 1000
    port priority: 1
    port number: 1
    port state: 61

nmcli connection show bond0:

Code:
connection.id:                          bond0
connection.uuid:                        78ea4bf9-dcd4-46b0-ad4e-f706e0237fdd
connection.stable-id:                   --
connection.type:                        bond
connection.interface-name:              bond0
connection.autoconnect:                 ja
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
connection.multi-connect:               0 (default)
connection.auth-retries:                -1
connection.timestamp:                   1651043913
connection.read-only:                   nein
connection.permissions:                 --
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:                 --
connection.gateway-ping-timeout:        0
connection.metered:                     unbekannt
connection.lldp:                        default
connection.mdns:                        -1 (default)
connection.llmnr:                       -1 (default)
connection.wait-device-timeout:         -1
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          nein
802-3-ethernet.mac-address:             A0:D3:C1:06:36:EC
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-blacklist:   --
802-3-ethernet.mtu:                     auto
802-3-ethernet.s390-subchannels:        --
802-3-ethernet.s390-nettype:            --
802-3-ethernet.s390-options:            --
802-3-ethernet.wake-on-lan:             default
802-3-ethernet.wake-on-lan-password:    --
802-3-ethernet.accept-all-mac-addresses:-1 (default)
ipv4.method:                            manual
ipv4.dns:                               10.10.2.1,1.1.1.1
ipv4.dns-search:                        --
ipv4.dns-options:                       --
ipv4.dns-priority:                      0
ipv4.addresses:                         10.10.2.5/24
ipv4.gateway:                           10.10.2.1
ipv4.routes:                            --
ipv4.route-metric:                      -1
ipv4.route-table:                       0 (unspec)
ipv4.routing-rules:                     --
ipv4.ignore-auto-routes:                nein
ipv4.ignore-auto-dns:                   nein
ipv4.dhcp-client-id:                    --
ipv4.dhcp-iaid:                         --
ipv4.dhcp-timeout:                      0 (default)
ipv4.dhcp-send-hostname:                ja
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.dhcp-hostname-flags:               0x0 (none)
ipv4.never-default:                     nein
ipv4.may-fail:                          ja
ipv4.required-timeout:                  -1 (default)
ipv4.dad-timeout:                       -1 (default)
ipv4.dhcp-vendor-class-identifier:      --
ipv4.dhcp-reject-servers:               --
ipv6.method:                            disabled
ipv6.dns:                               --
ipv6.dns-search:                        --
ipv6.dns-options:                       --
ipv6.dns-priority:                      0
ipv6.addresses:                         --
ipv6.gateway:                           --
ipv6.routes:                            --
ipv6.route-metric:                      -1
ipv6.route-table:                       0 (unspec)
ipv6.routing-rules:                     --
ipv6.ignore-auto-routes:                nein
ipv6.ignore-auto-dns:                   nein
ipv6.never-default:                     nein
ipv6.may-fail:                          ja
ipv6.required-timeout:                  -1 (default)
ipv6.ip6-privacy:                       -1 (unknown)
ipv6.addr-gen-mode:                     stable-privacy
ipv6.ra-timeout:                        0 (default)
ipv6.dhcp-duid:                         --
ipv6.dhcp-iaid:                         --
ipv6.dhcp-timeout:                      0 (default)
ipv6.dhcp-send-hostname:                ja
ipv6.dhcp-hostname:                     --
ipv6.dhcp-hostname-flags:               0x0 (none)
ipv6.token:                             --
bond.options:                           mode=802.3ad,downdelay=0,miimon=100,updelay=0,xmit_hash_policy=layer3+4
proxy.method:                           none
proxy.browser-only:                     nein
proxy.pac-url:                          --
proxy.pac-script:                       --
GENERAL.NAME:                           bond0
GENERAL.UUID:                           78ea4bf9-dcd4-46b0-ad4e-f706e0237fdd
GENERAL.DEVICES:                        bond0
GENERAL.IP-IFACE:                       bond0
GENERAL.STATE:                          aktiviert
GENERAL.DEFAULT:                        ja
GENERAL.DEFAULT6:                       nein
GENERAL.SPEC-OBJECT:                    --
GENERAL.VPN:                            nein
GENERAL.DBUS-PATH:                      /org/freedesktop/NetworkManager/ActiveConnection/44
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/Settings/5
GENERAL.ZONE:                           --
GENERAL.MASTER-PATH:                    --
IP4.ADDRESS[1]:                         10.10.2.5/24
IP4.GATEWAY:                            10.10.2.1
IP4.ROUTE[1]:                           dst = 10.10.2.0/24, nh = 0.0.0.0, mt = 300
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 10.10.2.1, mt = 300
IP4.DNS[1]:                             10.10.2.1
IP4.DNS[2]:                             1.1.1.1
IP6.GATEWAY:                            --

Was mich halt wunder ist, dass immer eine gewissen Anzahl von Netzwerkkarten ausgelastet sind, also genau zwei, oder genau drei und nicht 2,5 oder 3,2.

Habt ihr Ideen woran das liegen kann, und wie das zu beheben ist?
 
was passiert, wenn du das load balancing auf Layer 2, sprich MAC stellst?
in wie weit werden dann die Karten ausgelastet wenn du mit 4 Clients gleichzeitig testest?
 
  • Gefällt mir
Reaktionen: jb_alvarado
b1nb4sh schrieb:
wie sieht dein iperf command zum Testen aus?
habe auf dem Server zuerst iperf -s ausgeführt, aber auch:
iperf -s -p 5001 & iperf -s -p 5002 & iperf -s -p 5003 & iperf -s -p 5004
Und auf den Clients einfach: iperf -c 10.10.2.5 -t 60, bzw. mit Port-Angabe.

razzy schrieb:
was passiert, wenn du das load balancing auf Layer 2, sprich MAC stellst?
in wie weit werden dann die Karten ausgelastet wenn du mit 4 Clients gleichzeitig testest?
Hm, das hat geholfen. Bevor ich die hash policy geändert hatte, war das schon so eingestellt, aber hatte da auch Geschwindigkeitsprobleme. Jetzt konnte ich damit allerdings alle Netzwerkkarten voll auslasten. Peinlich...
Auch layer2+3 geht nicht richtig, obwohl das sogar "802.3ad compliant" ist.
 
Hattest du eventuell etwas anderes daneben laufen? Das würde das Verhalten erklären, ansonsten bei iperf auf UDP umstellen und als Bandbreite 1G pro Client angeben und nochmal testen.
 
Möglich, aber ist im Nachhinein schwer zu sagen. Ich werde die Tage noch mal das Switch updaten und danach ausgiebig testen.
 
Zurück
Oben