[LUGOS] LAG oz. net-bonding - kako nastaviti?

Damir Dezeljin dev at dezo.org
Fri Sep 5 08:35:51 CEST 2008


Hoj,

Na SWITCH Dell PowerConnect 5424 (gigabit switch) imam priklopljenih 5
nodov. Vsak node ima dve gigabitni mrezni kartici (torej, vsak je prikljucen
na dva porta na SWITC-u).

Na Ubuntu 8.04 bi rad usposobil t.i. LAG (Link Aggregation) oz. kakorkoli se
ze rece stvari, ki bi mi ta dva per-node connectiona zdruzila v enega
virtualnega z skoraj dvojno hitrostjo prenosa. Dodatno bi rad optimiziral
network stack za hiter prenos po lokalni mrezi. Gre namrec za
high-performance comuting cluster katerega nodi bodo veliko komunicirali
lokalno (lahko se zgodi, da bo med dvema nodoma aktiven le en TCP socket
connection).

Najprej drug problem - optimizacija ...
Izgleda, da bi mi prav prisla opcija 'Jumbo Frames'. To opcijo vklopim na
SWITCH-u, nato pa poskusim na Linuxu:
----
$ sudo ip link set eth0 mtu 9000
RTNETLINK answers: Invalid argument

$ dmesg | grep "eth[01]" | grep PCI
[   51.511345] eth0: Tigon3 [partno(BCM95721A211F) rev 4201 PHY(5750)] (PCI
Express) 10/100/1000Base-T Ethernet 00:10:18:33:6b:3c
[   51.551630] eth1: Tigon3 [partno(BCM95754) rev b002 PHY(5787)] (PCI
Express) 10/100/1000Base-T Ethernet 00:1e:4f:e6:5f:c7
----
^^^
Ce poskusim nastaviti katerikoli MTU vecji od 1500 dobim zgornji error. V
dokumentaciji sem prebral, da nekateri network gonilniki ne podpirajo vecjih
MTU-jev. Hmmm ... iz zgornjega outputa sklepam, da gre za Broadcom kartico,
ki ni ravno low-end in se cudim, ce je res mozno, da mrezna ne podpira
vecjih MTU-jev oz. kako vklopim jumbo frames?


Glede LAG-a ...
Po precej prebrane dokumentacije sem ugotovil, da seveda obstaja N nacinov
kako to usposobiti. Na Linuxu je default nacin *balance-rr* (mode 0), ki naj
bi bil tudi edini, ki omogoca, da se signel connection deli na vec
vmesnikov. Sicer mi ni vsec round-robin politika deljenja (zaradi
out-of-order paketkov), a bi rad to preizkusil. Tako sem naredil naslednje:
---- Linux ----
$ cat /etc/modprobe.d/bonding
alias bond0 bonding
options bond0 mode=0 lacp_rate=0 miimon=100

$ cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.2.3 (December 6, 2007)

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:10:18:33:6b:3c

Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:1e:4f:e6:5f:c7
----

SWITCH:
- omenjene porte sem odstrail iz VLAN-ov;
- po dva in dva zdruzil v t.i. LAG group;
- vklopil LACP (ter razne kombinacije - torej tudi brez LACP) na LAG portih;
- dodal LAG porte nazaj v pravi VLAN
- vse ponovno zagnal


Dobil sem delujoco HA konfiguracijo. Tako lahko pozenem neko sejo (npr. scp
par GB datoteke), odklopim en kabel iz SWITCH-a in stvar se dela.
Zal pa mi *iperf* med dvema taksnima nodoma doseze max. hitrost okoli 120
MB/s, kar doseze tudi med takim in 'navadnim' nodom (tudi, ce uporabim vec
threadov). Lokalno (torej iperf server zazenem na zunanjem {ne lo} IP-ju
noda) mi izmeri nekaj GB/s, kar bi pricakoval, a test sem naredil, da
preverim za kaksne omejitve. Menim, da CPU NE bi smel biti problem (Intel(R)
Xeon(R) CPU E5440  @ 2.83GHz).
Poizkusil sem tudi nekaj drugih konfiguracij od katerih mi jih dosti tudi ni
delalo (morda ne znam nastaviti); vseeno nisem uspel doseci nic boljsega
rezultata.


Kaksen hint kako to usposobiti?


Hvala in lp,
Damir
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://liste2.lugos.si/pipermail/lugos-list/attachments/20080905/6e9a419e/attachment.htm 


More information about the lugos-list mailing list