Найголовніше, що відрізняє два рішення (LVS, HAproxy), це те, що один працює на шарі 4 (LVS), а інший на рівні 7 (HAproxy). Зауважте, що посилання на шари походять із моделі мереж OSI.
Якщо ви це зрозумієте, ви зможете використовувати його в потрібному місці. Наприклад: якщо вам потрібно врівноважити виходячи виключно з кількості з'єднань (скажімо), балансира навантаження шару 4 повинно вистачити; з іншого боку, якщо ви хочете завантажити балансир на основі часу відповіді HTTP, вам знадобиться більш високий рівень LB.
Недоліками використання LB вищого рівня є необхідний ресурс (для тієї ж кількості, скажімо, трафіку). Плюси очевидні - подумайте "перевірка рівня пакетів", "маршрутизація протоколу" тощо - речі набагато складніші, ніж прості "маршрутизації пакетів".
Останнє, що я хочу зробити, це те, що HAproxy є простором користувача (думаю, «набагато простіше налаштувати / налаштувати», але повільніше (продуктивність)), тоді як LVS знаходиться в просторі ядра (подумайте «швидко як пекло», але жорсткий як ядро ). Крім того, не забувайте про те, що "оновлення LVS може означати зміну ядра - ерго, перезавантажити" ...
На закінчення скористайтеся правильним інструментом для правильної роботи.