Самое важное, что отличает два решения (LVS, HAproxy), это то, что одно работает на уровне 4 (LVS), а другое на уровне 7 (HAproxy). Обратите внимание, что ссылки на слои взяты из сетевой модели OSI.
Если вы понимаете это, вы сможете использовать один в нужном месте. Например: если вам нужно балансировать, основываясь исключительно на количестве соединений (скажем), балансировщика нагрузки 4-го уровня должно быть достаточно; с другой стороны, если вы хотите, чтобы балансировщик нагрузки основывался на времени ответа HTTP, вам потребуется LB более высокого уровня.
Недостатками использования LB более высокого уровня является необходимый ресурс (для того же объема, скажем, трафика). Плюсы очевидны - например, «проверка на уровне пакетов», «маршрутизация протокола» и т. Д. - все гораздо сложнее, чем простая «маршрутизация пакетов».
Последнее, что я хочу сделать, это то, что HAproxy - это пользовательское пространство («гораздо проще настраивать / настраивать», но медленнее (производительность)), в то время как LVS находится в пространстве ядра («быстро, как ад», но жестко, как ядро). ). Кроме того, не забывайте, что «обновление LVS может означать изменение ядра - значит, перезагрузка» ...
В заключение, используйте правильный инструмент для правильной работы.