Я пытаюсь решить, использовать ли решение балансировки нагрузки уровня 4 для моего центра обработки данных или решение уровня 7. К сожалению (для моего здравомыслия, то есть), мой вариант использования достаточно прост, чтобы оба решения работали хорошо, избегая большинства недостатков и не используя сильные стороны другого. Какое бы решение мы ни использовали, оно должно иметь высокую доступность и высокую пропускную способность. Но мы планируем использовать его только для балансировки нагрузки по кластеру веб-серверов, ни у одного из которых нет каких-либо требований к «залипающему» управлению сессиями (cookie или IP), сложных правил перезаписи или, в этом отношении, любых правил перезаписи на все.
Балансировщики нагрузки будут подключены к двум коммутаторам, оба с независимым подключением до уровня агрегации центра обработки данных, и объединены вместе с помощью Rapid Spanning Tree и любого проприетарного протокола, который коммутаторы используют для виртуализации. Балансировщики нагрузки также будут сшиты друг с другом по перекрестному кабелю. Все серверы в кластере подключены к обоим коммутаторам. Все, что нужно сделать балансировщикам нагрузки, - это направить трафик на них.
Поскольку это всего лишь HTTP, я могу использовать решение для балансировки нагрузки уровня 7, такое как HAProxy или nginx. Но я также мог бы использовать проект LVS с ldirectord или keepalived или чем-то еще.
Я пытался разобраться в плюсах и минусах, как я их вижу, но это просто приводит к мытью. Что бы вы порекомендовали и почему? Я что-то пропустил?
Учитывая отсутствие у вас преимущества от балансировки L7, я бы остановился на балансировке L4. Я большой поклонник того, чтобы сделать это как можно более простым, не жертвуя слишком многим.
L7 требует, чтобы балансировщики проверяли заголовки http в пакетах, проходящих через них, на предмет соответствующей маршрутизации, добавляя дополнительные издержки и незначительное увеличение задержки для конечного пользователя. Это кажется бессмысленным расходом для меня, если вы ничего не получите от этого.
источник
Некоторые провайдеры DNS имеют простую функцию восстановления после отказа. Вы упомянули, что ваши требования не таковы, а не то, чем они являются, но если все, что вам нужно, это циклический перебор с отработкой отказа, если что-то не работает, вы можете использовать, например , Failover Zoneedit.com . В зависимости от ваших требований HA это может быть достаточно хорошим, и вы можете пропустить целый уровень в вашей архитектуре.
источник