Estoy buscando una solución para el equilibrio de carga y la estrategia de conmutación por error, principalmente para grandes aplicaciones web. Tenemos muchos servicios para equilibrar, como web, MySQL y muchos otros servicios basados en HTTP o TCP. Pero no estoy seguro de cuáles son sus pros y sus contras, y cuál debería elegir.
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.
+1, excepto que HAProxy es principalmente para uso HTTP, ya que de lo contrario oculta la IP de origen de la solicitud, lo que puede ser un problema (para SMTP RBL, por ejemplo)
Antoine Benkemoun
3
Estoy usando HAProxy para servidores tcp puros y funciona muy bien. La fuente Ip oculta es un problema para todos los equilibradores de carga.
lg.
2
Creo que la IP de fuente oculta es una de las razones por las cuales los balanceadores de carga no se usan con frecuencia para los servicios SMTP.
Stefan Lasiewski
3
lvs y ha proxy hacen lo mismo. Prefiero LVS, realmente más rápido porque se ejecuta en el núcleo.
Diego Woitasen
1
@AntoineBenkemoun puede usar el modo transparente de HAProxy para mostrar la IP del cliente.
Debe usar ambos: HAProxy es un excelente equilibrador de carga y LVS es una solución para la conmutación por error y evitar un punto único de falla.
fuente