Lo más importante que diferencia las dos soluciones (LVS, HAproxy) es que una está trabajando en la capa 4 (LVS) y la otra en la capa 7 (HAproxy). Tenga en cuenta que las referencias de capas son del modelo de red OSI.
Si comprende esto, podrá usar uno en el lugar correcto. Por ejemplo: si necesita un equilibrio basado únicamente en el número de conexiones (digamos), el equilibrador de carga de la capa 4 debería ser suficiente; Por otro lado, si desea un equilibrador de carga basado en el tiempo de respuesta HTTP, necesitará un tipo de capa superior de LB.
Los inconvenientes de usar un LB de nivel superior es el recurso necesario (por la misma cantidad de tráfico, digamos). Las ventajas son obvias: piense en "inspección de nivel de paquete", "enrutamiento de protocolo", etc., cosas mucho más complicadas que el simple "enrutamiento de paquete".
El último punto que quiero destacar es que HAproxy es el espacio de usuario (piense "mucho más fácil de personalizar / ajustar", pero más lento (rendimiento)), mientras que LVS está en el espacio del núcleo (piense "rápido como el infierno", pero rígido como el núcleo ) Además, no se olvide de "actualizar LVS podría significar un cambio de kernel - ergo, reiniciar" ...
En conclusión, use la herramienta adecuada para el trabajo correcto.