Antworten:
Die Unterscheidung zwischen "Hardware" - und "Software" -Lastverteilern ist nicht mehr sinnvoll. Ein sogenannter "Hardware" -Lastausgleicher ist eine CPU der PC-Klasse, Netzwerkschnittstellen mit Paketverarbeitungsfunktionen und eine Software, die alles miteinander verbindet. Ein "Software" -Lastausgleich, der auf einem guten Server mit modernen Netzwerkkarten realisiert wurde, ist ... dasselbe.
Mit kommerziellen High-End-Angeboten wie F5 oder Citrix Netscaler erhalten Sie:
Mit (Open Source) Software Load Balancern bekommen Sie nicht das Gegenteil, was Sie bekommen, hängt von der Software ab, die Sie wählen und wie Sie vorgehen. Das heißt, in der Regel werden Sie sehen:
Die Unterscheidung ist nicht wirklich auf "Hardware" gegen "Software". Es geht darum, "einen bewährten Technologie-Stack als Appliance zu kaufen" und "ihn selbst zu bauen". Bei der endgültigen Entscheidung sind natürlich viele Variablen zu berücksichtigen (Kosten, interne Fähigkeiten, Toleranz für Ausfallzeiten, zukünftiges Wachstum usw.).
Hardware-Load-Balancer verfügen in der Regel über umfangreichere Funktionen, insbesondere wenn Sie sich mit den großen Funktionen wie F5 befassen. Sie haben auch den zusätzlichen Vorteil einer größeren Skalierbarkeit durch Hardware-Offloading.
Wenn Sie jedoch wissen, dass der Datenverkehr nicht zu hoch ist, sind die Softwarelastausgleichsfunktionen tatsächlich recht leistungsfähig. Wenn Sie mit einem Layer 4 LB aufkommen können, ist Linux LVS + Keepalived eine sehr gute Option. Wenn Sie die Leistung eines Layer 7 LB benötigen, können Sie HAProxy ausprobieren.
Zusammenfassend lässt sich sagen, dass HW-LBs in der Regel besser skalieren als SW-LBs.
Hoffe das hilft!
Ein paar Gedanken:
Pro: Die Maschine, auf der Sie den Load Balancer ausführen, verfügt möglicherweise über eine viel leistungsfähigere Hardware, ist also schneller und erfordert weniger zusätzliche Latenz (je nach Geschwindigkeit Ihrer Verbindungen zur Außenwelt kann dies jedoch kaum einen Unterschied machen).
Con: Ein Hardware-Load-Balancer wird wahrscheinlich nicht mehr Rechenleistung haben, als er benötigt (er läuft möglicherweise eher auf einem Atom- oder ARM-basierten Chip als auf einer massiven High-End-Intel / AMD-CPU), verbraucht also weniger Strom und erzeugt weniger Hitze.
Pro: Durch die Installation Ihrer eigenen Software-Load-Balancer-Anordnung erhalten Sie möglicherweise mehr Flexibilität bei der Konfiguration und späteren Upgrades / Änderungen, wobei eine Hardwarelösung möglicherweise eher eine geschlossene "Black-Box" -Lösung ist. Wenn Sie jedoch einen verwalteten Dienst zur Implementierung des Software-Balancers kaufen, hat dies nur einen geringen Einfluss.
Con: Wenn Sie den Software-Balancer nicht verwalten (dh die Aufgabe ist ausgelagert oder Sie erwerben den Service als Teil eines größeren Managed-Hosting-Arrangements), bedeuten die Verwaltungsgebühren für die Wartung des Setups möglicherweise eine Standardhardware Lösung wäre auf lange Sicht billiger. Denken Sie auch daran, Ihre Zeit in die Kosten einzubeziehen, wenn Sie oder Ihr Unternehmen den Lastenausgleich verwalten.
105931 sessions per second
und etwa 17% CPU-Auslastung - das ist ziemlich verrückt für einen einzelnen grundlegenden Xeon-Prozessor
Ich würde auch diese Punkte berücksichtigen:
Wenn das Unternehmen über eine IT-Abteilung mit einem Netzwerkspezialisten verfügt, kann eine Hardware LB dazu beitragen, den Wartungsaufwand für das Entwicklungsteam zu verringern.
Manchmal, besonders für große Unternehmen, bedeutet die Einführung einer neuen Hardware, die niemand bedienen kann, die Einstellung teurer Berater oder sogar eines neuen Mitarbeiters.
Das Entwicklerteam wird eine Hardwarelösung hassen, wenn es vorhat, die Funktionen des Lastenausgleichs zu betonen, z. B. eine kontinuierliche Bereitstellung.
Offensichtlich können HW-LBs die Handhabung von SSL-Verbindungen verbessern und somit die Gesamtzahl der erforderlichen App-Server reduzieren: