Direkte Ethernet-Verbindung zwischen zwei Servern

13

Angenommen, ich hatte zwei Server, die eine extrem niedrige Latenz benötigten (Datenbank, Datei usw.). Wäre es möglich, die beiden Server direkt mit 10 GbE zu verbinden, so hätte jeder Server 1 (in der realen Welt hätte er 2) Verbindungen zum 'Hauptnetzwerk', aber 1 Netzwerkkarte mit einem Ethernet-Kabel, das direkt mit dem zweiten verbunden ist Server, keine Switches oder Router, nur eine direkte Verbindung

                         Internet/Datacenter
                                 |
                                 |
                                 |
                                 |
                                 |
                                 |
                                 |
                        --------------------
                        |                  |
            ------------|      Switch      |-----------
            |           |                  |          |
            |           --------------------          |
            |                                         |
            |                                         |
            |                                         |
            |                                         |
            |                                         |
            |                                         |
            |                                         |
  Network Card 1 (eth0)                     Network Card 1 (eth0)
            |                                         |
  --------------------                      --------------------
  |                  |                      |                  |
  |     Server 1     |                      |     Server 2     |
  |                  |                      |                  |
  --------------------                      --------------------
            |                                         |
  Network Card 2 (eth1)                     Network Card 2 (eth1)
            |                                         |
            |                                         |
            |               Direct 10GbE              |
            -------------------------------------------

Meine erste Frage ist, wäre das überhaupt möglich? Würden sie irgendwelche ungewöhnlichen / speziellen Dienste benötigen, die so konfiguriert sind, dass sie über dieses Netzwerk mit anderen als einer Standarddatei kommunizieren können /etc/sysconfig/network-scripts/? Sie hätten beide statische IPs auf eth1, aber wie würde Routing funktionieren? Ich bin kein Experte für Networking, daher ist dies wahrscheinlich eine n00b-artige Frage

Zweite Frage, gibt es irgendeinen Grund? Wäre dies von Vorteil, wenn Sie sie nur über die Standardnetzwerkverbindung über den Switch kommunizieren lassen würden, oder wenn Sie ihnen ein zweites dediziertes Netzwerk nur für die Kommunikation zwischen Servern zur Verfügung stellen würden (da Clients, die auf die Server zugreifen, im Standardnetzwerk Bandbreite verwenden würden)? . Vorausgesetzt, die Latenz war die Priorität.

Ich weiß, dass es bei dieser Methode einige Probleme gibt, zum Beispiel, als wir einen dritten Server hinzufügen wollten, müssten wir jedem Server eine andere Netzwerkkarte geben und wahrscheinlich ein sehr kompliziertes Replikationsdreieck einrichten, aber da dies hypothetisch ist, können wir das ignorieren.

Und da Latenz das Hauptproblem ist, wäre Glasfaser besser über Ethernet (Geschwindigkeit ist nicht wichtig, solange sie ein paar Gbit / s leisten kann).

Ich habe diese Frage in einem Linux-POV formuliert, da dies mein Hintergrund ist, sie aber für jeden Server / jedes Gerät gelten kann

Verschmieren
quelle
1
Als Randnotiz sollten Sie UDP und nicht TCP verwenden, um auf Kosten des Verlusts der Zustellgarantie eine Latenz zu erzielen. Abhängig von der Größe Ihrer Pakete können auch Jumbo-Frames helfen, indem sie die Anzahl der Pakete begrenzen.
Shadok
@Shadok UDP ist nicht ideal für Datenbankserver, Dateiserver usw., aber zum Überwachen, Protokollieren und für andere unkritische Dinge ist UDP eine viel bessere Option, da stimme ich zu. Ich denke, dass jede Netzwerkeinrichtung wie diese höchstwahrscheinlich eine garantierte Zustellung erfordert, aber UDP-Pakete über das Hauptnetzwerk haben viele Verwendungsmöglichkeiten.
Fleck
Ok, ich hatte den Eindruck, dass die Latenz Ihr Hauptanliegen war, und ich habe Ihnen beigebracht, dass Sie möglicherweise die Integrität überprüfen oder die Zustellung von Paketen auf eine andere Weise als über TCP bestätigen können. Eine Idee, die ich gerade hatte, war, einen einfachen Zähler zu implementieren, der bei jedem Paket inkrementiert wird, und dann fehlende erneut anzufordern oder sie einfach fallen zu lassen, aber ich schweife ab :)
Shadok
@Shadok - Wenn Sie es geschafft haben, eine UDP-Verbindung zu einer Datenbank aufzubauen, kann dies zu unvorhersehbarem Verhalten und Beschädigung führen. Außerdem würden Sie UDP in TCP umwandeln, indem Sie Pakete sequenzieren und fehlende anfordern. Dafür ist TCP da. Es wäre besser, das Ethernet auf 100 g zu erhöhen oder eine Glasfaserverbindung zu verwenden
Glyphe

Antworten:

9

Es gibt keinen Grund, warum Sie dies technisch nicht tun können.

Ich würde unter den gegebenen Umständen wahrscheinlich etwas Ähnliches tun. Rein unter Linux ist das ganz einfach: Geben Sie der Verbindung eine IP-Adresse mit einer / 30-Bitmaske und geben Sie 2 IP-Adressen an. Dann handelt es sich um eine einfache Punkt-zu-Punkt-Verbindung.

Wenn Sie das Netzwerk erweitern möchten, können Sie einen 10GE-Switch erwerben und dann über ein separates VLAN für den Datenverkehr zwischen Servern verfügen. Es gibt einige sehr glänzende Geräte in der Force10-Switch-Reihe, die 10GE-Switches mit Leitungsgeschwindigkeit und enormen Puffern ausführen können.

Tom O'Connor
quelle
5

Ich kann eine Linux-Sichtweise nicht kommentieren, aber ich werde nur mein Wissen nutzen und weitere Fragen stellen.

Sind Sie so abhängig von geringer Latenz und müssen Sie diese Server synchron halten? Laufen beide eine Datenbank oder so? 10 GbE sollte den meisten Anforderungen von 2 Servern genügen, um sie synchron zu halten. Ich würde bald lieber das Geld für einen anständigen Schalter in der Mitte der 2 ausgeben, anstatt den Weg zu gehen, den Sie sich ansehen.

Sie könnten diese Ports mit einem anständigen Switch-Tag versehen, um den Datenverkehr und sogar die QoS des Datenverkehrs zu priorisieren, der in Echtzeit erfolgen muss.

Meine Gedanken.

Zapto
quelle
Ihnen einen eigenen Switch / ein privates Netzwerk zu geben, wäre eine viel bessere Option als eine direkte Verbindung. Wenn wir später mehr Server hinzufügen müssten, wäre dies viel einfacher. Auch die Priorisierung des Datenverkehrs ist eine gute Sache. Ich wusste gar nicht, dass Sie dies tun können. Hängt dies von den Switch-Funktionen / -Herstellern ab oder ist es eine ziemlich normale Sache?
Verschmieren
QoS auf dem Switch ist in hohem Maße herstellerabhängig, manche unterstützen es, manche unterstützen es auf eine sehr proprietäre Art und Weise, manche unterstützen es gemäß RFC, aber Sie müssten es wahrscheinlich auf allen Geräten im Netzwerk haben, um sehe jeden anständigen Effekt.
Tom O'Connor
+1, weil viele Switches mit einer Geschwindigkeit arbeiten, die jetzt im Wesentlichen auf Drahtgeschwindigkeit beruht. Ein richtig konfiguriertes Netzwerk ist in vielerlei Hinsicht von Vorteil und hilft auch bei der Fehlersuche.
Dan
5

Ich habe das tatsächlich zwischen zwei Laptops gemacht. Die meisten modernen LAN-Adapter verfügen über eine automatische Aushandlung, sodass Sie ein normales LAN-Kabel verwenden können.

Legen Sie statische IP-Adressen fest, die nicht in demselben Bereich liegen wie jedes andere von Ihnen verwendete Subnetz. Wenn sich meine Systeme beispielsweise in einem 192.168.xx-Subnetz befinden, wird zwischen ihnen ein 10.0.0.x-Subnetz verwendet. Ansonsten sollte es einfach funktionieren

Geselle Geek
quelle
2

Die Verwendung eines solchen Setups bietet keinen Vorteil. Die heutigen Switches blinken schnell, so dass Sie aufgrund von Switches keine sichtbare Latenz haben. und Skalierbarkeit wäre auch für Sie ein großes Problem. Außerdem würde es Probleme beim Einrichten des Routings geben, da Sie ZWEI separate Netzwerke anstatt nur eines pflegen müssen.

Farhan
quelle
2
Der Vorteil in meiner Situation war, dass bei einer direkten Verbindung keine SSL-Verschlüsselung für eine Datenbankverbindung erforderlich ist, da diese über eine private Leitung und nicht über einen halbprivaten Switch erfolgt, über den Kennwörter abgerufen werden können.
Glyphe
2
  1. Ich bin mir ziemlich sicher, dass Sie ein gekreuztes Kabel benötigen, um Server 1 mit Server 2 zu verbinden.
  2. Sie werden eine sehr geringe Latenz haben, aber die Latenz in einem LAN mit modernen Switches liegt so nahe wie möglich bei Null. Ich bezweifle aufrichtig, dass Sie einen messbaren Leistungszuwachs sehen werden.
SBWorks
quelle
10
Gb und 10 Gb führen Auto-MDIX durch, sodass Sie keine Frequenzweiche benötigen. Das ist nur für 10/100.
MDMarra
Ich glaube, du hast Recht darauf, @MarkM Ich weiß nicht, dass ich es jemals im wirklichen Leben ausprobiert habe.
SBWorks
2

Sicherheit vs. Leistung vs. Geld.

  • Verwenden Sie eine direkte Verbindung, wenn der Rückkanalverkehr hoch und das Geld niedrig ist. Dies geschieht jeden Tag und kann in vielen Situationen in der Praxis eine bessere Leistung bringen als ein bereits überlasteter Switch.

  • Wenn der Back-Channel-Verkehr gering und die Sicherheit mittel oder gering ist, verbinden Sie die Netzwerkkarten, um den gesamten Internet-Durchsatz zu erhöhen - zwei Verbindungen von jedem Server zum Internet, Multi-Home-Netzwerkkarten, um den Replikationsverkehr zu "isolieren" (separate IP-Bereiche erleichtern die Firewall , prüfen, Paketverfolgungsdiagnose durchführen usw.).

  • Wenn die Sicherheit hoch ist und viel Geld zur Verfügung steht, verwenden Sie einen Schalter. Einfacher zu erweitern. Einfachere Problemdiagnose.

In dem gegebenen Szenario wäre ein Wechselkauf nicht gerechtfertigt. Möglicherweise ist es sinnvoll, einen vorhandenen Switch mit VLAN-Segmentierung zu verwenden. Obwohl ich keinen Grund sehe, den Switch anzuschließen, es sei denn, die Server sind gemeinsam genutzt, dh physisch nicht zugänglich. Es werden zwei Switch-Ports verschwendet, es sei denn, die Paketerfassung / das Debugging ist aktiv.

Joe
quelle