Windows Server NLB против аппаратного NLB

Может кто-нибудь с большим опытом объяснить мне, каковы преимущества аппаратного NLB по сравнению с Windows NLB и каковы основные / основные недостатки Windows NLB? Недавно я прочитал некоторые материалы, в которых утверждается, что Windows NLB становится все более неадекватным (в основном из-за используемых трюков на уровне сети) в современных средах с интеллектуальными коммутаторами и сильно виртуализированными ( например, или другой материал, в котором упоминаются проблемы).
Может кто-нибудь дать мне четкий ответ, когда Windows NLB будет вызывать проблемы, и аппаратный NLB будет единственными вариантами?

1 ответ

Решение

У меня есть несколько лет опыта работы с балансировщиками нагрузки NLB и оборудования в производственной среде с более чем 10 серверами. Вот краткий список плюсов и минусов NLB и аппаратного балансировщика нагрузки, как я их вижу:

  • NLB использует программное обеспечение для балансировки нагрузки. Это программное обеспечение использует небольшое количество процессора. Аппаратные устройства разгружают весь этот процессор (а иногда и больше - например, разгрузка SSL).
  • NLB позволяет серверу участвовать только в одном наборе балансировки нагрузки для каждой сетевой карты, поэтому, если вы хотите, чтобы сервер участвовал в нескольких разных наборах балансировки нагрузки, все серверы должны иметь одинаковые службы (вы можете иметь несколько целевых IP-адресов и портов, но все серверы в наборе должны иметь одинаковые сервисы). Аппаратные устройства обычно более гибки в этом отношении, и у них есть и другие приятные функции.
  • NLB достаточно надежен, но у нас возникали проблемы с ним примерно раз в два месяца, когда он попадал в странные состояния, когда распределение нагрузки происходило неправильно. Аппаратные устройства обычно более надежны.
  • Управление NLB должно осуществляться с сервера в той же локальной сети. Там нет веб-конфигурации.
  • NLB требует заполнения сетевого коммутатора всеми входящими пакетами или сетевых коммутаторов со специальной поддержкой многоадресных пакетов.
  • NLB по своей природе терпимо относится к полному отказу серверов (если, конечно, все они не выйдут из строя), тогда как для аппаратного решения требуются два отдельных устройства, правильно настроенных для предотвращения отказа одного устройства.
  • NLB заботится только о том, подключено ли устройство к сети, его не волнует, действительно ли ваше приложение работает. Аппаратные балансировщики нагрузки обычно позволяют провести тест на уровне приложения. Вы можете написать внешнее программное обеспечение, чтобы проверять приложения на своих серверах и программно удалять их из NLB, но это более трудоемко и может также потребовать отказоустойчивости, что может быть очень сложно.
Другие вопросы по тегам