2 oder mehr Gigabyte-Netzwerkkarten miteinander verbinden, um eine Leistung von 2 Gbit / s zwischen 1 Server und 1 Client zu erzielen?

7

Ich habe den Server oder die Netzwerkkarte noch nicht erhalten, aber hier ist das Ziel-Setup:

  1. 1x Server
  2. 1x Client
  3. 1 oder mehrere NICs, die Punkt zu Punkt zwischen Server und Client verknüpft sind (kein Switch beteiligt)

Ich frage mich daher, ob es möglich ist, eine Verbindung mit einer 2-Nic- oder 4-Nic-Pro-Intel-Ethernet-Karte auf dem PCI-X / PCI-E-Bus so einzurichten, dass Client und Server diese gemeinsam nutzen können Dateien schneller als die 1-Gbit / s-Obergrenze?

Ich bin mir bewusst, dass es einen gewissen Overhead von TCP / UDP und einen anderen Overhead von anderen Dingen geben wird, aber ich möchte versuchen, dem Client und Server die höchstmögliche Gesamtbandbreite zwischen beiden bereitzustellen.

Wenn dies nicht möglich ist, werde ich keine zusätzlichen Kosten mit einer 2x Ethernet-Netzwerkkarte oder einer 4x Ethernet-Netzwerkkarte verursachen.

Pharaun
quelle
Ich möchte eine zusätzliche Frage hinzufügen, warum ein Switch erforderlich ist. Können Sie das nicht Punkt für Punkt tun, indem Sie das Kabel von jedem Ethernet-Port in den anderen stecken?
Pharaun
Ich müsste mit hintereinander verbundenen Servern testen, aber ich würde sagen, dass dies möglich ist, indem die Schnittstellen auf beiden Seiten verbunden werden. Möglicherweise benötigen Sie jedoch Crossover-Kabel, wenn Ihre Netzwerkkarte nicht automatisch überkreuzt.
Khai
1
Ich möchte dies einfach halten und muss mich nicht um einen Switch usw. kümmern, sondern nur Punkt für Punkt und damit fertig sein.
Pharaun
Zur Verwendung geeigneter Verbindungsprotokolle (z. B. LACP) ist ein Schalter erforderlich. Der Schalter lässt die 2+ Kabel wie 1 großes Fettkabel erscheinen. Hierfür gibt es verschiedene Protokolle. Ich habe dies mit von 3com und Dell verwalteten Switches getan. Sie würden die Verbindung mit der Netzwerkkartensoftware auf beiden Boxen (eine IP, mehrere Netzwerkkarten) einstellen und dann das Switch-Protokoll (die Nic-Software würde dasselbe Protokoll verwenden) und voila done einstellen. es ist nicht so schwierig, klingt schlimmer als es ist.
Luma
1
@Luma afaik Um 802.3ad zu verwenden, benötigen Sie KEINEN Schalter. Aber Sie können mir mit einem Link zu einer Referenz das Gegenteil beweisen :) Ich sehe keinen anderen Grund, ein komplexeres Protokoll zu benötigen, als zu wollen, dass die beiden Kabel von verschiedenen Schaltern stammen.
Khai

Antworten:

9

Ich habe ein Labor mit 2 Servern mit jeweils 2 Gbit-Netzwerkkarten eingerichtet, die über 2 CAT5e-Kabel hintereinander verbunden sind. Mit Debian 5.0.5, das frisch auf beiden Servern installiert wurde, habe ich auf beiden Computern eine Bonding-Master-Schnittstelle bond0 mit eth0 und eth1 im Bond-Modus 0 (balance-rr) konfiguriert, da nichts Komplexeres erforderlich ist.

Die Konfigurationen (/ etc / network / interfaces) sehen ungefähr so ​​aus:

iface bond0 inet static
    address 192.168.1.1
    netmask 255.255.255.0
    slaves eth0 eth1
    bond_mode balance-rr
    bond_miimon 100
    bond_downdelay 200
    bond_updelay 200

Ich habe Apache auf einem der Server installiert und eine Datei von diesem Apache auf den anderen Computer heruntergeladen. Ich konnte keine Geschwindigkeit> 1 Gbit / s erreichen, aber ich vermute, dass dies auf E / A-Engpässe zurückzuführen ist. Ich kann jedoch sehen, dass Datenverkehr auf beiden physischen Schnittstellen fließt, sodass ich sagen würde, dass das, was Sie wollen, möglich ist.

Lass mich wissen, wie es dann ausgeht :)

Hoffe das hilft!

Khai
quelle
5
+1 für echte Tests :)
Antoine Benkemoun
Es sieht so aus, als würde ich vorerst eine 2x-Port-NIC-Karte kaufen, um ein bisschen Geld zu sparen, wenn es am Ende nicht klappt, aber das sieht vielversprechend aus :) Ich konnte weitere Informationen ausgraben: linuxfoundation.org/collaborate/workgroups/networking/bonding Es scheint, als wäre das balance-rr die beste Option. Es sieht so aus, als hätten Sie bewiesen, dass es funktioniert. Es sollte nur darum gehen, den Kernel / etc zu optimieren, damit es reibungslos funktioniert. Vielen Dank!
Pharaun
3

Dies kann mit den meisten Netzwerkkarten durchgeführt werden, Sie benötigen jedoch auch einen Switch, der dies unterstützt. Die meisten verwalteten Switches können dies problemlos, aber nicht verwaltete Switches können dies nicht sehr gut.

Stellen Sie sicher, dass Ihre Server die Bandbreite bewältigen können, bevor Sie Geld ausgeben. Eine einzelne billige Festplatte kann 2 Gbit / s größtenteils nicht verarbeiten. Ein schönes Big Fat Disk Array ist eine andere Sache.

Luma
quelle
+1 für die Festplatten - habe vergessen, das ursprünglich in meiner Antwort zu erwähnen.
Rob Moir
1
Ich habe eine 6-fache RAID-Festplatte auf dem Server (der Client erhält auch überfallene Festplatten), und ich habe sie im schlimmsten Fall mit etwa 158 MBit / s und bis zu 367 MBit / s gelesen, was ~ 1,2 Gbit / s bis 2,9 entspricht Gbit / s. Es sieht also so aus, als ob 2-3x Ethernet nicht für den Overhead geeignet sein sollte.
Pharaun
1

Es ist sicherlich möglich, dies mit einem Switch zu tun, nicht sicher, ob es direkt zwischen Computern ausgeführt werden soll, da ich es noch nie versucht habe.

Ob es sich lohnt oder nicht, hängt von der Qualität der verwendeten Netzwerkkarten und der Geschwindigkeit des internen Busses ab, an den sie angeschlossen sind, und, wie in Lumas Antwort angegeben, von der Geschwindigkeit der verwendeten Festplatten. Ich fürchte, es geht wirklich darum, es zu versuchen und zu sehen.

Rob Moir
quelle
Ich suche nach Intel Pro Gigabyte Ethernet, PCI-E auf dem Server und wahrscheinlich auch PCI-E auf dem Client, könnte je nach Motherboard PCI-X auf dem Client verwenden.
Pharaun
PCI-E wäre meiner Erfahrung nach besser, wenn es verfügbar ist, da es einen breiten Steckplatz und eine Karte bietet. Die große Frage ist, ob Sie einen Schalter benötigen oder nicht. Ich bin geneigt zu glauben, dass Sie es tun, aber ich weiß es nicht genau.
Rob Moir