Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Сетевые технологии > Простейший Load balancing


Автор: ALKS 15.10.2008, 16:34
Возникла удивительная проблема. 

Понадобился простейший IP load balancing: трафик идущий с одного и того же IP должен гарантированно попадать на один и тот же сервер независимо от используемого порта или протокола.
Т.е. например все абсолютно пакеты идущие с 209.85.135.104 должны обрабатываться одним и тем же сервером независимо ни от чего другого.
Какой именно node это будет вообщем не важно т.е. когда пакет от "нового" IP первый раз приходит на балансер то сервер для этого IP выбирается в соответствии с алгоритмом балансировки (т.е. тут собственно и нужен это load balancer) но в дальнейшем весь трафик с этого IP идет на один и тот же сервер.

Наш провайдер стал в тупик. Они используют Radware Web Server Director (http://www.radware.com/Products/ApplicationDelivery/AppDirector/WebServerDirector.aspx) и заявляют что не в состоянии сконфигурировать нужную нам схему. В рамках одного протокола (порта) - без проблем. Но если с одного и то же IP идут запросы разных протоколов (типично HTTP и HTTPS) то они балансируются независимо и как следствие могут попадать на разные узлы, что нас уже не устраивает.

Вопрос собственно если ли какое либо решение подходящие по наши требования? Что угодно. Программная или аппаратная платформа - не важно. Насколько я понимаю (будучи человеком от сетей достаточно далеким) речь идет о layer-4 load balancing. 

Заранее спасибо за любую наводку.

Автор: localhost 17.10.2008, 08:23
А в сторону NLB не смотрели?
http://www.samag.ru/cgi-bin/go.pl?q=articles;n=10.2004;a=06

Автор: ALKS 20.10.2008, 14:11
Смотрели, не работает оно так как надо нам + это Windows что опять же для нас означает некоторые трудности.

Мы уже тут по тестировали несколько решений но все они балансируют каждый протокол независимо.
Наш провайдер уже забил workshop c Radware на это неделе - будут пытаться решать совместно с производителем. посмотрим.
Пока что нашли только одно вменяемое решение - установка  SSL accelerator перед load balancer, тогда на balancer идет одни протокол по одному порту и проблeмы нет.

Но все равно, я вижу это как совершенно магические трудности... проблема-то выеденного яйца не стоит...


Автор: Kappac 28.10.2008, 14:18
Роутер между вашими машинами и серверами есть? 

Автор: ALKS 7.11.2008, 13:02
Kappac, рутера там нет и поставить его туда невозможно из-за ограничений хостера. не разрешают они там сеть перестраивать.

Ну вообщем если кому-то интересно. после танцев с бубном длившихся практически месяц, окончательным решением стал  linux + nginx  ( http://sysoev.ru/nginx/ ). 

nginx оказался функционально наредкость богат (заодно с основной проблемой позволил нам решить еще несколько старых вопросов), удивительно нетребователен к ресурсам (350 запросов в секунду, в том числе SSL decoding и всякие нетривиальные правила жрут что-то около 5% CPU совершенно рядового виртуального бокса) и в том числе умеет балансировать так, как нам нужно (ip_hash).

Уже работает, мы счастливы. Всем настоятельно рекомендую. 

Автор: Wowa 6.3.2009, 13:51
Цитата(ALKS @  7.11.2008,  12:02 Найти цитируемый пост)
Ну вообщем если кому-то интересно. после танцев с бубном длившихся практически месяц, окончательным решением стал  linux + nginx  ( http://sysoev.ru/nginx/ ). 

а можешь привести пример его конфига, который отвечает за балансировку?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)