Vraag Netwerkbindingsmodus 802.3ad op Ubuntu 12.04 en een Cisco Switch


Ik probeer 3 netwerkkaarten samen te groeperen op 2 servers. Ik probeer een maximale doorvoer van 3Gbps te bereiken om gegevens tussen de servers te repliceren. De installatie is eenvoudig, ik heb 2 servers met een 3 Gigabit-netwerkkaart aangesloten op dezelfde Cisco-switch. Precies op poort 1-2-3 voor server-1 en poort 4-5-6 voor server-2. Mijn configuratie van de interface ziet er als volgt uit:

auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet manual
        bond-master bond0

auto eth1
iface eth1 inet manual
        bond-master bond0

auto eth2
iface eth2 inet manual
        bond-master bond0

auto bond0
iface bond0 inet static
        address 192.168.1.11
        netmask 255.255.255.0
        gateway 192.168.1.1

        bond-miimon 100
        bond-mode 802.3ad
        #bond-downdelay 200
        #bond-updelay 200
        bond-lacp-rate 1
        # tried bond with slaves and no slaves interfaces
        bond-slaves eth0 eth1 eth2 
        # bond-slaves none

Ik heb meerdere configuraties geprobeerd op deze kaart, maar ik gebruik uiteindelijk altijd slechts 1 netwerkkaart.

Ik testte de prestaties met iperf en netcat

# server-1
iperf -s

# server-2 
iperf -c 192.168.1.10

# Wait for trafic
nc.traditional -l -p 5000 | pv > /dev/null 

# Push trafic
dd if=/dev/zero | pv | nc.traditional 192.168.1.11 5000

We hebben ook veel configuratie op de Cisco-switch geprobeerd, zonder port-kanaal en met poort-kanaal en altijd maar 1 netwerkkaart die op dat moment werd gebruikt. Als we elke kaart afzonderlijk testen, werken ze met 1 Gbps.

Ik kan ook zeggen dat in / proc / net / bonding / bond0 de modus 802.3ad toont en de LACP-snelheid SNEL toont. Ik heb geen koppelingstellingsfout en de 3 interfaces verschijnen. Ik verifieer ook elke eth-interface met ethtool en ze zien er goed uit voor mij.

Ik volgde deze handleiding om het op te zetten https://help.ubuntu.com/community/UbuntuBonding en ik heb de bonding-module in de kernel ingeschakeld modprobe bonding en wanneer ik gebruik lsmod om te controleren of de bonding-module op is, ja staat deze in de lijst.

Wat missen we om dit te laten werken?


4
2018-02-11 17:39


oorsprong




antwoorden:


U krijgt nooit meer dan 1 NIC-prestaties tussen twee servers. Schakelaars spreiden de frames van één bron niet over meerdere links in een Link Aggregation Group (LAG). Wat ze feitelijk doen is hash de bron MAC of IP (of beide) en die hash gebruiken om de client aan één NIC toe te wijzen.

Uw server kan dus zoveel NIC's verzenden als u wilt, maar die frames worden allemaal via een enkele link naar de doelserver verzonden.


4
2018-02-11 18:16



U kunt controleren of het werkt zoals @longneck zegt door meerdere gegevenspogingen uit te voeren om hosts te scheiden. - Thomas G


Gebruik voor het testen van LAG's meerdere threads, zodat ze meerdere links gebruiken. Netperf gebruiken probeer:

netperf -H ipaddress &
netperf -H ipaddress &
netperf -H ipaddress &
netperf -H ipaddress &
netperf -H ipaddress &

Je zou een deel van het verkeer moeten zien dat de andere slaven in de band raakt.

Ik heb vier 10GbE-poorten in een LACP-binding en ik krijg 32 Gb tot 36 Gb per enkele weg tussen de twee servers.

De andere manier is om aliassen in te stellen op de binding met meerdere IP-adressen en vervolgens meerdere netperf-instanties naar de verschillende adressen te starten.

Uw server met de Intel Xeon-processors X5690 heeft meer dan genoeg vermogen om bijna 10 Gb per kern te gebruiken.

Ik heb 80Gb unidirectioneel verkeer over 8x1GbE-poorten gereden. De sleutel gebruikt het hash l3 + l4 op zowel de switch als de NIC's en gebruikt meerdere threads.

Hier is een voorbeeld van mijn 4x10GbE-configuratie ... Mijn interface configuratiebestand:

#Ports that will be used for VXLAN Traffic in on Bond0
auto p4p1
auto p4p2
auto p6p1
auto p6p2

iface p4p1 inet manual
bond-master bond0

iface p4p2 inet manual
bond-master bond0

iface p6p1 inet manual
bond-master bond0

iface p6p2 inet manual
bond-master bond0

#Configure Bond0. Setup script will provide VXLAN VLAN configuration on bond0
auto bond0
iface bond0 inet manual
#address 10.3.100.60
#netmask 255.255.0.0
bond-mode 4
bond-slaves none
bond-lacp-rate 0
bond-ad-select 1
bond-miimon 100
bond-xmit_hash_policy 1

cat / proc / net / bonding / bond0

root@host2:~# 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: layer3+4 (1)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

802.3ad info
LACP rate: slow
Min links: 0
Aggregator selection policy (ad_select): bandwidth
Active Aggregator Info:
    Aggregator ID: 2
    Number of ports: 4
    Actor Key: 33
    Partner Key: 32768
    Partner Mac Address: 54:7f:ee:e3:01:41

Slave Interface: p6p1
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: 90:e2:ba:47:2b:e4
Aggregator ID: 2
Slave queue ID: 0

Slave Interface: p4p2
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: 90:e2:ba:47:2b:69
Aggregator ID: 2
Slave queue ID: 0

Slave Interface: p4p1
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: 90:e2:ba:47:2b:68
Aggregator ID: 2
Slave queue ID: 0

Slave Interface: p6p2
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: 90:e2:ba:47:2b:e5
Aggregator ID: 2
Slave queue ID: 0

Hier is het resultaat van het uitvoeren van meerdere instanties van netperf:

root@host6:~# vnstat -i bond0.192 -l
Monitoring bond0.192...    (press CTRL-C to stop)

   rx:    36.83 Gbit/s 353202 p/s          tx:   162.40 Mbit/s 314535 p/s

bond0.192  /  traffic statistics

                           rx         |       tx
--------------------------------------+------------------
  bytes                   499.57 GiB  |        2.15 GiB
--------------------------------------+------------------
          max           36.90 Gbit/s  |   170.52 Mbit/s
      average           20.05 Gbit/s  |    86.38 Mbit/s
          min               0 kbit/s  |        0 kbit/s
--------------------------------------+------------------
  packets                   39060415  |        34965195
--------------------------------------+------------------
          max             369770 p/s  |      330146 p/s
      average             186891 p/s  |      167297 p/s
          min                  0 p/s  |           0 p/s
--------------------------------------+------------------
  time                  3.48 minutes

Ik hoop dat dit helpt...


4
2017-11-27 06:04



Welkom bij Serverfout. Dat zijn we echt geen fans van handtekeningen hier, dus ik heb het verwijderd. Voeg gerust uw naam en andere informatie toe die u openbaar wilt maken aan uw gebruikersprofiel. - Michael Hampton♦


Excuses voor het plaatsen van dit als een antwoord. Ik kan geen commentaar geven op het antwoord van @ longneck, mogelijk vanwege een gebrek aan reputatie ...?

Het is mogelijk om meer dan 1 netwerkkaart te krijgen tussen twee servers, omdat switches verkeer kunnen distribueren dat niet alleen op MAC / IP, maar ook op poortnummers is gebaseerd. Cisco-apparaten kunnen dit goed doen, maar misschien moet u de switch configureren om naar de L4-poorten te kijken in plaats van alleen de L2- en L3-adressen, die mogelijk de standaardinstelling zijn.

De echte reden waarom jij waarschijnlijk krijgt niet meer dan 1 NIC-prestaties tussen de twee servers, omdat 1 Gbps bidirectioneel VEEL verkeer is voor elke moderne CPU die moet worden verwerkt. Ik weet niet hoe grunty je servers zijn, maar als de servers zinvolle dingen doen met elk pakket dat het ontvangt, dan zou het mij verbazen als de servers 1 Gbps full-duplex kunnen verwerken.

Sorry, het was niet de bedoeling om op het antwoord van @ longneck hierboven te gaan staan, maar wilde gewoon een paar extra punten verduidelijken.


2
2018-02-11 22:55



De servers hebben Intel (R) Xeon (R) CPU X5690 @ 3,47 GHz met 156 GB RAM. Het probleem is dat wanneer ik een onderhoud aan deze DB-servers doe, het overdragen van de gegevens van de master naar de slaaf voor altijd duurt omdat het 1,4TB weegt en ik het sneller wil laten overbrengen. Bedankt dat we de L4 op Cisco in ons laboratorium zullen onderzoeken. - drivard
Als bij het starten van het onderhoud slechts één stream wordt geopend voor de volledige overdracht, dan is 1 Gbps het maximum. Hashing op L4-poorten is natuurlijk alleen zinvol als er meerdere L4-poorten zijn om mee te werken. Zijn de opslagapparaten ook in staat om te lezen / schrijven met 1 Gbps? Mechanische HDD's zullen het zeker niet verminderen, ongeacht de RAID-configuratie die u gebruikt ... - wookie919
De HDD's zijn HP 600GB 10K / rpm, ik denk dat dat in theorie zou moeten, maar we hebben eindelijk besloten dat dit voorlopig zal doen met de 3 uur datatransmissie en we zullen op een betere manier de gegevens archiveren zodat de overdrachtsgrootte zou dan kleiner worden. Want zelfs als ze investeren in een 10 Gbps netwerkkaart, is het sneller dan de HDD-snelheid. Vriendelijke groeten. - drivard