Перейти к содержимому
Калькуляторы

CARP Freebsd 10 load balancing

Доброго дня.

 

Есть пара веб серверов на FreeBSD 10, между ними настроен CARP, используют они один адрес.

Все вроде прекрасно, есть резервирование, один master - второй backup. Вопрос в том как поднять LoadBalancing, на основе хешей IP источника. Чтобы нагрузить запросами оба сервака.

 

Раньше во фряхе до 10-ки оно умело вроде как, net.inet.carp.arpbalance, а начиная с 10-ки вроде как убрали эту фичу.

Вопрос в том как сделать Load Balancing на freebsd 10 для двух серверов nginx?

Может кто что нить присоветует? А то менять систему на 9-ку уже неохота.

 

Всем спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Там серьезные проблемы с src пакетами на slave сервере. Я к Глебиусу обращался, чтоб он нашел время и поправил эти глюки, но он сослался на занятость.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У вас клиенты в одном сегменте с серверами ? А то может и не стоит оно того ? балансится оно исключительно путем ответа разным АРП, т.е. если люди приходят с 1 маршрутизатора то балансировки и не было бы. повесте 2 ip. первый на 1-м сервере мастер, на втором слейв, второй наоборот и в DNS 2 записи. В общем так оно и получится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А аппаратные балансеры типа ace и alteon?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Там серьезные проблемы с src пакетами на slave сервере. Я к Глебиусу обращался, чтоб он нашел время и поправил эти глюки, но он сослался на занятость.

Понял, спасибо за инфо.

 

По поводу балансировки по ARP - поянтно конечно что только внутри будет работать, поэтому и думали на счет балансировки по src-IP.

В идеале хочется получить функционал CRAP из OpenBSD, судя по ихнему man, оно должно уметь по IP раскидывать.

 

IP BALANCING
    IP load balancing works by utilizing the network itself to distribute
    incoming traffic to all carp nodes in the cluster.

 

           # ifconfig carp0 192.168.1.10 carpnodes 1:0,2:100 balancing ip

    The configuration for host B is identical, except the skew is on the
    carpnode entry with virtual host 1 rather than virtual host 2.

          # ifconfig carp0 192.168.1.10 carpnodes 1:100,2:0 balancing ip

 

По поводу аппаратных балансеров - все как обычно просто, будет бюджет - будем думать о них, а пока как-нибудь так...

 

Всем спасибо.

 

Может с помощью PF попробовать, как-то так:

 

web_servers = "{ 10.0.0.10, 10.0.0.11, 10.0.0.13 }"

match in on $ext_if proto tcp to port 80 rdr-to $web_servers \
   round-robin sticky-address

 

 

??

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Собственно вышли из положения с помощью PF.

 

На первом серваке делаем правило в PF которое редиректит на несколько серверов:

 

rdr on $ExtIf proto tcp from any to $CARP1 port 80 -> $webfarm round-robin sticky-address

 

через devd отслеживаем состояние carp, если он вдруг стал не MASTER то убираем редирект передернув PF с другим конфигом,

 

в /etc/devd/carp.conf

 

#cat /etc/devd/carp.conf
 notify 0 {
                  match "system"          "CARP";
                  match "subsystem"       "[0-9]+@[0-9a-z]+";
                  match "type"            "(MASTER|BACKUP)";
                  action "/usr/local/libexec/carpcontrol.sh $subsystem $type";
          };

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

table <web_servers> {} persistent

 

и тогда можно по факту стал мастер добавлять в табличку IP и стал не мастер - убирать. меньше времени на парсинг конфига..

 

А чем 2 IP не подходит и по 2 карпа на каждой машине ? У меня такое в нескольких местах живет, нареканий не вызывает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.