Je cherche une solution pour charger une stratégie d'équilibrage et de basculement, principalement pour les grandes applications Web. Nous avons de nombreux services à équilibrer, tels que Web, MySQL et de nombreux autres http ou =TCP Services basés. Mais je ne suis pas sûr de ce que leurs avantages et leurs inconvénients sont et que je devrais choisir.
La chose la plus importante qui différencie les deux solutions (LVS, Haproxy) est que l'on travaille à la couche 4 (LVS) et l'autre à la couche 7 (haproxy). Notez que les références de couches proviennent du modèle de réseau d'OSI.
Si vous comprenez cela, vous pourrez utiliser un à la bonne place. Par exemple: si vous devez équilibrer uniquement sur le nombre de connexions (disons), l'équilibreur de charge de la couche 4 devrait suffire; D'autre part, si vous souhaitez charger un équilibreur en fonction du temps de réponse HTTP, vous aurez besoin d'un type de couche plus élevé de lb.
Les inconvénients de l'utilisation d'un niveau supérieur lb sont la ressource nécessaire (pour le même montant, disons, trafic). Les plusses sont évidentes - pensent "inspection de niveau de paquet", "routage de protocole", etc. - choses beaucoup plus compliquées que de simples "routage de paquets".
Le dernier point que je veux faire est que Haprexy est l'espace de l'utilisateur (penser "beaucoup plus facile à personnaliser/tweak", mais plus lent (performance)), tandis que LVS est dans l'espace du noyau (pensez "vite comme l'enfer", mais rigide comme le noyau ). En outre, n'oubliez pas que "la mise à niveau de LVS pourrait signifier le changement de noyau - ergo, redémarrer" ...
En conclusion, utilisez le bon outil pour le bon travail.
Vous devez utiliser les deux: Haproxy est une excellente équilibreuse de charge et LVS est une solution pour le basculement et évitez un seul point d'échec.