LVS vs HAProxy, which should I choose?

25,650

Solution 1

The most important thing that differentiates the two solutions (LVS, HAproxy) is that one is working at layer 4 (LVS) and the other at layer 7 (HAproxy). Note that the layers references are from OSI networking model.

If you understand this, you'll be able to use one in the right place. For example : if you need to balance based solely on number of connections (let's say), the layer 4 load balancer should suffice; on the other hand, if you want to load-balancer based on HTTP response time, you'll need a higher layer kind of LB.

The drawbacks of using a higher level LB is the resource needed (for the same amount of let's say, traffic). The plusses are obvious - think "packet level inspection", "protocol routing", etc - things far more complicated than simple "packet routing".

The last point I want to make is that HAproxy is userspace (think "far more easy to customize/tweak", but slower (performance)), while LVS is in kernel space (think "fast as hell", but rigid as the kernel). Also, don't forget about "upgrading LVS might mean kernel change - ergo, reboot"...

In conclusion, use the right tool for the right job.

Solution 2

You should use both: HAProxy is great load balancer and LVS is a solution for failover and avoid a Single Point of Failure.

Share:
25,650

Related videos on Youtube

Mickey Shine
Author by

Mickey Shine

Updated on September 17, 2022

Comments

  • Mickey Shine
    Mickey Shine over 1 year

    I am looking for a solution to load balancing and failover strategy, mainly for big web applications. We have many services to be balanced, such as web, MySQL, and many other HTTP or TCP based services. But I am not sure what their pros and cons are, and which I should choose.

  • Antoine Benkemoun
    Antoine Benkemoun over 13 years
    +1, except HAProxy is mainly for HTTP usage as it otherwise hides the source IP of the request which can be a problem (for SMTP RBL for example)
  • lg.
    lg. over 13 years
    I am using HAProxy for pure tcp servers and works very well. The source Ip hidden is a problem for all load balancer.
  • Stefan Lasiewski
    Stefan Lasiewski over 13 years
    I believe hidden source IP is one reason why loadbalancers aren't often used for SMTP services.
  • Thomas Decaux
    Thomas Decaux almost 10 years
    @AntoineBenkemoun you can use transparent mode of HAProxy to show the client IP.
  • Matt Simerson
    Matt Simerson over 8 years
    For reference, as of HAproxy 1.5, use the send-proxy feature for TCP connections so that the SMTP server (in my case, Haraka) has access to the remote's IP address.
  • Naveed Abbas
    Naveed Abbas over 8 years
    I love how people still use OSI layers, despite they were never implemented in reality.