Frage LVS vs HAProxy, welche sollte ich wählen?


Ich suche nach einer Lösung für Lastverteilung und Failover-Strategie, hauptsächlich für große Web-Anwendungen. Wir haben viele Dienste im Gleichgewicht, wie Web, MySQL und viele andere HTTP- oder TCP-basierte Dienste. Aber ich bin mir nicht sicher, was ihre Vor- und Nachteile sind und welche ich wählen sollte.


19
2017-08-23 03:14


Ursprung




Antworten:


Das wichtigste, was die zwei Lösungen (LVS, HAproxy) unterscheidet, ist, dass man auf Schicht 4 (LVS) und die andere auf Schicht 7 (HAproxy) arbeitet. Beachten Sie, dass die Layer-Referenzen vom OSI-Netzwerkmodell stammen.

Wenn Sie das verstehen, können Sie eines an der richtigen Stelle verwenden. Zum Beispiel: Wenn Sie nur basierend auf der Anzahl der Verbindungen ausgleichen müssen (sollte man sagen), sollte der Load Balancer der Schicht 4 ausreichen; Wenn Sie andererseits einen Lastenausgleich basierend auf der HTTP-Antwortzeit durchführen möchten, benötigen Sie eine höhere Layer-Art von LB.

Die Nachteile der Verwendung einer höheren Ebene LB ist die benötigte Ressource (für die gleiche Menge von beispielsweise Verkehr). Die Pluspunkte sind offensichtlich - denke "Paket-Level-Inspektion", "Protokoll-Routing", usw. - Dinge, die viel komplizierter als einfache "Paket-Routing".

Der letzte Punkt, den ich machen möchte, ist, dass HAproxy Userspace ist (denke "viel einfacher anzupassen / zu optimieren", aber langsamer (Leistung)), während LVS im Kernelraum ist (denke "schnell wie die Hölle", aber starr wie der Kernel) ). Vergessen Sie auch nicht, dass "das Aktualisieren von LVS einen Kernel-Wechsel bedeutet - ergo, reboot" ...

Zusammenfassend, verwenden Sie das richtige Werkzeug für den richtigen Job.


22
2018-02-28 16:28



Ich mag es, wie Leute OSI-Schichten benutzen, obwohl sie nie in der Realität implementiert wurden. - kubanczyk


Sie sollten beide verwenden: HAProxy ist ein großer Lastausgleich und LVS ist eine Lösung für Failover und vermeidet einen Single Point of Failure.


7
2017-08-23 10:12



+1, außer HAProxy ist hauptsächlich für HTTP-Nutzung, da es sonst die Quell-IP der Anfrage verbirgt, was ein Problem sein kann (zB für SMTP RBL) - Antoine Benkemoun
Ich benutze HAProxy für reine TCP-Server und funktioniert sehr gut. Die Quelle Ip versteckt ist ein Problem für alle Lastenausgleicher. - lg.
Ich glaube, versteckte Quell-IP ist ein Grund, warum Loadbalancer nicht oft für SMTP-Dienste verwendet werden. - Stefan Lasiewski
lvs und ha proxy machen das selbe. Ich bevorzuge LVS, wirklich schneller, weil es auf dem Kernel läuft. - Diego Woitasen
@AntoineBenkemoun Sie können den transparenten Modus von HAProxy verwenden, um die Client-IP anzuzeigen. - Thomas Decaux