Unter Linux können Sie mehrere Netzwerkschnittstellen zu einer "verbundenen" Netzwerkschnittstelle kombinieren, um ein Failover bereitzustellen.
Es gibt jedoch mehrere Modi, von denen einige keine Switch-Unterstützung erfordern. Ich bin bei meinem Wechsel nicht darauf beschränkt, dass ich einen der Modi verwenden kann.
Beim Lesen über die verschiedenen Modi ist jedoch nicht sofort klar, welche Vor- und Nachteile die einzelnen Modi haben.
- Bieten einige Modi ein schnelleres Failover?
- Was ist mit den Auswirkungen auf die CPU-Last für jeden Modus?
- Welche Modi können die Bandbreite kombinieren, anstatt nur Redundanz bereitzustellen?
- Gibt es Einschränkungen dafür?
- Benötigt balance-rr Schalterunterstützung?
- Verlässlichkeit? Welche Erfahrungen haben Sie langfristig gemacht?
Antworten:
Der größte Faktor beim Failover ist die Geschwindigkeit, mit der ein Verbindungsfehler erkannt wird. Ziehen Sie das Kabel vom Host ab und alle funktionieren ziemlich gut. Lassen Sie einen Live-Link auf einem ansonsten toten Switch und die meisten Modi (mit Ausnahme derjenigen, die Beacons / Keepalives unterstützen) senden einen Teil Ihres Datenverkehrs nirgendwo hin.
Im Allgemeinen ist der Netzwerkverkehr Interrupt-gesteuert. Die verschiedenen Hashing-Algorithmen werden keinen bedeutenden Unterschied machen.
Jeder Modus, der nicht aktiv / Standby oder Broadcast-All ist, teilt den Datenverkehr in unterschiedlichem Maße. Einige Modi können pro Paket ausgeglichen werden, andere arbeiten pro Fluss. Ersteres verteilt die Last gleichmäßiger, während letzteres in tatsächlichen Netzwerken weitaus nützlicher ist (sprich: funktional / stabil).
Ja, es gibt Einschränkungen für jeden Modus, aber wir müssen viel mehr über Ihre Anwendung wissen, um mit ihnen sprechen zu können.
Nur LACP / 802.3ad (Modus 4) erfordert ausdrücklich die Unterstützung des Switches. Nur weil Sie mit einem bestimmten Muster an den Switch senden, bedeutet dies nicht, dass der Switch auf die gleiche Weise an Sie zurücksendet.
Der einzige Modus, dem ich in der Produktion eher vertraue, ist 802.3ad, der mit einem entsprechend konfigurierten Switch sicherstellt, dass nur die richtigen Links im Kanal landen, und ein gewisses Maß an Symmetrie bei der gemeinsamen Nutzung des Datenverkehrs und eine vorhersehbare Reaktion bietet, wenn a Link ist ausgefallen. Dieser Modus vermeidet auch einige häufig auftretende, aber unangenehme Probleme (z. B. Unicast-Flooding). Aktiv / Standby ist ebenfalls weit verbreitet. Die anderen Modi können unter bestimmten Umständen erforderlich sein, sind jedoch meiner Meinung nach schmerzhafter.
Andere Flow / MAC / IP-basierte Ausgleichsmodi oder Aktiv / Standby können ebenfalls in Ordnung sein und sind möglicherweise erforderlich, wenn nicht verwaltete Switches verwendet werden.
quelle
Die meisten dieser Punkte werden in der
/usr/src/linux/Documentation/networking/bonding.txt
Dokumentationsdatei aus dem Linux-Quellpaket Ihrer Lieblingsdistribution ausführlich beschrieben . Die Failover-Geschwindigkeit wird für die meisten Modi über den Parameter "miimon" gesteuert, sollte jedoch nicht zu niedrig eingestellt werden. Normalwerte liegen sowieso unter einer Sekunde.Hier sind die besten Teile, die ich fertiggestellt habe:
balance-rr, active-backup, balance-tlb und balance-alb benötigen keine Switch-Unterstützung.
balance-rr steigert die Leistung zum Preis der Fragmentierung, ist bei einigen Protokollen (CIFS) und bei mehr als 2 Schnittstellen schlecht.
balance-alb und balance-tlb funktionieren möglicherweise nicht mit allen Schaltern ordnungsgemäß. Es gibt häufig einige Arp-Probleme (einige Computer können beispielsweise keine Verbindung herstellen). Möglicherweise müssen Sie verschiedene Einstellungen (miimon, updelay) anpassen, um ein stabiles Netzwerk zu erhalten.
balance-xor erfordert möglicherweise eine Switch-Konfiguration oder nicht. Sie müssen eine Schnittstellengruppe ( nicht LACP) für HP- und Cisco-Switches einrichten , aber anscheinend ist dies für D-Link-, Netgear- und Fujitsu-Switches nicht erforderlich.
802.3ad erfordert unbedingt eine LACP-Gruppe auf der Switch-Seite. Es ist insgesamt die am besten unterstützte Option zur Leistungssteigerung.
Hinweis: Was auch immer Sie tun, eine Netzwerkverbindung wird immer über eine und nur eine physische Verbindung hergestellt. Wenn Sie also GigE-Schnittstellen aggregieren, kann eine Dateiübertragung von Maschine A zu Maschine B nicht mehr als 1 Gigabit / s betragen, selbst wenn jede Maschine über 4 aggregierte GigE-Schnittstellen verfügt (unabhängig vom verwendeten Bonding-Modus).
quelle
Die Kerneldokumente beantworten einige dieser Fragen:
Ethernet-Bonding
quelle