Je recherche une solution pour l'équilibrage de charge et la stratégie de basculement, principalement pour les grandes applications web. Nous avons de nombreux services à équilibrer, tels que le Web, MySQL et de nombreux autres services basés sur HTTP ou TCP. Mais je ne sais pas quels sont leurs avantages et inconvénients, et lesquels je dois choisir.
La chose la plus importante qui différencie les deux solutions (LVS, HAproxy) est que l'une travaille sur la couche 4 (LVS) et l'autre sur la couche 7 (HAproxy). Notez que les références de couches proviennent du modèle de réseau OSI.
Si vous comprenez cela, vous pourrez en utiliser un au bon endroit. Par exemple: si vous devez équilibrer uniquement en fonction du nombre de connexions (disons), l'équilibreur de charge de la couche 4 devrait suffire; d'autre part, si vous souhaitez équilibrer la charge en fonction du temps de réponse HTTP, vous aurez besoin d'un type de couche supérieur de LB.
Les inconvénients de l'utilisation d'un LB de niveau supérieur sont les ressources nécessaires (pour la même quantité de trafic, disons). Les avantages sont évidents - pensez à "l'inspection au niveau des paquets", au "routage de protocole", etc. - des choses bien plus compliquées qu'un simple "routage de paquets".
Le dernier point que je veux faire est que HAproxy est un espace utilisateur (pensez "beaucoup plus facile à personnaliser / modifier", mais plus lent (performances)), tandis que LVS est dans l'espace du noyau (pensez "vite comme l'enfer", mais rigide comme le noyau ). N'oubliez pas non plus que "la mise à niveau de LVS peut signifier un changement de noyau - ergo, redémarrage" ...
En conclusion, utilisez le bon outil pour le bon travail.
J'adore la façon dont les gens utilisent encore les couches OSI, même si elles n'ont jamais été implémentées dans la réalité.
kubanczyk
9
Vous devez utiliser les deux: HAProxy est un excellent équilibreur de charge et LVS est une solution de basculement et évite un point de défaillance unique.
+1, sauf que HAProxy est principalement destiné à HTTP car il cache autrement l'IP source de la requête qui peut être un problème (pour SMTP RBL par exemple)
Antoine Benkemoun
3
J'utilise HAProxy pour des serveurs TCP purs et fonctionne très bien. Le source Ip caché est un problème pour tous les équilibreurs de charge.
lg.
2
Je pense que l'IP source cachée est l'une des raisons pour lesquelles les équilibreurs de charge ne sont pas souvent utilisés pour les services SMTP.
Stefan Lasiewski
3
lvs et ha proxy font la même chose. Je préfère LVS, vraiment plus rapide car il fonctionne sur le noyau.
Diego Woitasen
1
@AntoineBenkemoun vous pouvez utiliser le mode transparent de HAProxy pour afficher l'IP du client.
Vous devez utiliser les deux: HAProxy est un excellent équilibreur de charge et LVS est une solution de basculement et évite un point de défaillance unique.
la source