отказоустойчивый кластер на nginx

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

отказоустойчивый кластер на nginx

Непрочитанное сообщение manefesto » 2012-04-05 6:26:42

На данный момент реализована схема отказоустойчивости на 3х виндовых серверах, где стоит NLB, на каждом сервер nginx, да-да, под виндой
Собрал два сервер с фрей и nginx, сделал polling, выкинул все лишнее из ядра.
Теперь необходимо сделать так, чтобы при отказе одного из серверов nginx, другой заменял упавший.
Есть два варианта:
1) Два сервера с фрей имеют один IP адрес
2) Сервера имеют разные IP, но они друг друга мониторят, если ведущий падает, то второй поднимает у себя интерфейс с IP упавшего сервера.
Второй вариант реализуется с помощью heartbeat

Хотел бы услышать ваши мысли, какой из вариантов кошерней.
я такой яростный шо аж пиздеЦ
Изображение

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/


Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

Re: отказоустойчивый кластер на nginx

Непрочитанное сообщение manefesto » 2012-04-05 11:18:26

да нах мне сторадж?
Мне нужен nginx
Но я уже поднял heartbeat, скоро будет статейка
я такой яростный шо аж пиздеЦ
Изображение

Аватара пользователя
tynix
сержант
Сообщения: 246
Зарегистрирован: 2008-08-06 8:25:42
Откуда: Красноярск

Re: отказоустойчивый кластер на nginx

Непрочитанное сообщение tynix » 2012-04-05 14:32:08

А relayd из опенбсд не пробовал? Кажется, как раз для такого придуман. Живёт в портах.
Don' t panic !
cd /usr/ports && make srach
make: don't know how to make srach. Stop

playnet
мл. сержант
Сообщения: 75
Зарегистрирован: 2009-07-02 15:33:24

Re: отказоустойчивый кластер на nginx

Непрочитанное сообщение playnet » 2012-04-10 17:55:47

manefesto писал(а):На данный момент реализована схема отказоустойчивости на 3х виндовых серверах, где стоит NLB, на каждом сервер nginx, да-да, под виндой
Собрал два сервер с фрей и nginx, сделал polling, выкинул все лишнее из ядра.
Теперь необходимо сделать так, чтобы при отказе одного из серверов nginx, другой заменял упавший.
Сколько с нгинхом общался - он никогда просто так не падает. Апач за ним - частенько, да. А он сам крепко стоит.

А для отказоустойчивости у меня на 1 имя в днс прописано 2 айпи, там нгинхи, на обоих один конфиг с upstream и второй нгинх прозрачно проксит всё на первый, пока тот жив, потом на свой бэкенд.

Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

Re: отказоустойчивый кластер на nginx

Непрочитанное сообщение manefesto » 2012-04-12 12:41:49

на ВИНДЕ он не может держать больше 1024 коннектов, сейчас на фре с upstream.
Но мне кажется не хватит одного сервера с nginx, хочеться раскидывать на два
я такой яростный шо аж пиздеЦ
Изображение

Аватара пользователя
Mox
лейтенант
Сообщения: 757
Зарегистрирован: 2008-12-16 16:04:14
Откуда: питер
Контактная информация:

Re: отказоустойчивый кластер на nginx

Непрочитанное сообщение Mox » 2012-04-12 13:25:54

man carp?
"В мире программирования алгоритмы становятся более важными, чем код, и именно из-за академических корней в BSD изначально большое внимание уделялось проработке алгоритмов". Мэтт Диллон

playnet
мл. сержант
Сообщения: 75
Зарегистрирован: 2009-07-02 15:33:24

Re: отказоустойчивый кластер на nginx

Непрочитанное сообщение playnet » 2012-04-13 0:47:05

Mox писал(а):man carp?
Зачем?
Чем это лучше чем 2 сервера и 2 айпи? Отказ одного айпи - браузер проверяет 20 сек, потом сам стучит на второй, пару недель назад проверяли все современные браузеры. Плюс сервера могут стоять хоть в разных странах. Хотя можно и поизвращаться, да..

Аватара пользователя
Mox
лейтенант
Сообщения: 757
Зарегистрирован: 2008-12-16 16:04:14
Откуда: питер
Контактная информация:

Re: отказоустойчивый кластер на nginx

Непрочитанное сообщение Mox » 2012-04-13 7:44:32

playnet писал(а):
Mox писал(а):man carp?
Зачем?
Могу точно такой же вопрос задать и вам
"В мире программирования алгоритмы становятся более важными, чем код, и именно из-за академических корней в BSD изначально большое внимание уделялось проработке алгоритмов". Мэтт Диллон

Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

Re: отказоустойчивый кластер на nginx

Непрочитанное сообщение manefesto » 2012-04-13 10:10:56

хочу балансировать нагрузку между двумя серверами, при этом иметь один IP
к сожалению имеющееся оборудование не умеет само балансировать.
Dlink df 1600
я такой яростный шо аж пиздеЦ
Изображение

playnet
мл. сержант
Сообщения: 75
Зарегистрирован: 2009-07-02 15:33:24

Re: отказоустойчивый кластер на nginx

Непрочитанное сообщение playnet » 2012-04-13 12:07:38

Mox писал(а):
playnet писал(а):
Mox писал(а):man carp?
Зачем?
Могу точно такой же вопрос задать и вам
Чем карп в общем лучше, чем моё решение? А если сам карп упадёт? И насколько я знаю, работает он только, если сервера в одном дц с локалкой между собой.
Последний раз редактировалось playnet 2012-04-13 12:11:24, всего редактировалось 1 раз.

playnet
мл. сержант
Сообщения: 75
Зарегистрирован: 2009-07-02 15:33:24

Re: отказоустойчивый кластер на nginx

Непрочитанное сообщение playnet » 2012-04-13 12:11:10

manefesto писал(а):хочу балансировать нагрузку между двумя серверами, при этом иметь один IP
к сожалению имеющееся оборудование не умеет само балансировать.
Dlink df 1600
Оборудование, которое само балансировать умеет, стоит дорого. Варианты - поставить железку типа линксиса, куда можно натянуть *-wrt, или старый комп с линем, и там будет честный nginx без проблем на коннекты. Можно попробовать текущий длинк перешить. Или поставить комп за д-линк, а на длинке проброс порта.
В любом случае должен быть какой-то линух, который на себе поднимет нгинх.

icb
лейтенант
Сообщения: 747
Зарегистрирован: 2008-07-15 16:11:11

Re: отказоустойчивый кластер на nginx

Непрочитанное сообщение icb » 2012-04-13 12:51:08

Чем карп в общем лучше, чем моё решение?
Тем, что не будет большой задержки.
В любом случае должен быть какой-то линух, который на себе поднимет нгинх.
Не обязательно.
Это может быть FreeBSD, QNX и т.п. - вариантов вагон.

homoadminus
рядовой
Сообщения: 41
Зарегистрирован: 2011-06-27 3:45:02

Re: отказоустойчивый кластер на nginx

Непрочитанное сообщение homoadminus » 2012-04-14 2:00:33

manefesto писал(а): Собрал два сервер с фрей и nginx, сделал polling, выкинул все лишнее из ядра.
а поллинг зачем?
manefesto писал(а): Теперь необходимо сделать так, чтобы при отказе одного из серверов nginx, другой заменял упавший.
Есть два варианта:
1) Два сервера с фрей имеют один IP адрес
2) Сервера имеют разные IP, но они друг друга мониторят, если ведущий падает, то второй поднимает у себя интерфейс с IP упавшего сервера.
Второй вариант реализуется с помощью heartbeat
взять ipvs и не страдать ерундой. как вариант, можно нарисовать свои костыли на nginx с хранением адресов апстрима в memcached.

Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

Re: отказоустойчивый кластер на nginx

Непрочитанное сообщение manefesto » 2012-04-16 8:56:37

у....какие все умные, при количестве коннектов в онлайне порядка 3К, вы мне предлагаете ставить системник с линем, фряхой ?
В своем уме ?
Мне нужно чтобы два сервака с nginx имели один логический IP, то есть мне нужна отказоустойчивость.
То есть надо чтото вроде транка.
Без железки никак, поэтому использую heartbeat
я такой яростный шо аж пиздеЦ
Изображение

icb
лейтенант
Сообщения: 747
Зарегистрирован: 2008-07-15 16:11:11

Re: отказоустойчивый кластер на nginx

Непрочитанное сообщение icb » 2012-04-16 10:07:12

heartbeat
Разве CARP не аналогично работает?

Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

Re: отказоустойчивый кластер на nginx

Непрочитанное сообщение manefesto » 2012-04-16 10:19:35

heartbeat умеет еще и мониторить сервисы.
Хм, а с помощью carp можно балансировать нагрузку по хостам ?
я такой яростный шо аж пиздеЦ
Изображение

icb
лейтенант
Сообщения: 747
Зарегистрирован: 2008-07-15 16:11:11

Re: отказоустойчивый кластер на nginx

Непрочитанное сообщение icb » 2012-04-16 10:31:10

Затрудняюсь ответить - самому интересно что лучше использовать.
В heartbeat отпугивает установка дополнительного софта.

Аватара пользователя
Mox
лейтенант
Сообщения: 757
Зарегистрирован: 2008-12-16 16:04:14
Откуда: питер
Контактная информация:

Re: отказоустойчивый кластер на nginx

Непрочитанное сообщение Mox » 2012-04-16 13:27:44

manefesto писал(а):heartbeat умеет еще и мониторить сервисы.
Хм, а с помощью carp можно балансировать нагрузку по хостам ?
В 10-ке новый карп, и там сейчас только отказоустойчивость. Изначально glebius@ (автор) планировал добавить arp и ip балансировку, но сейчас уже эти фичи висят в идеях для GSoC.
В стабильных вертках карп пока умеет отказоустойчивость и arp балансировку. Но это не балансировка "нагрузки".
"В мире программирования алгоритмы становятся более важными, чем код, и именно из-за академических корней в BSD изначально большое внимание уделялось проработке алгоритмов". Мэтт Диллон

playnet
мл. сержант
Сообщения: 75
Зарегистрирован: 2009-07-02 15:33:24

Re: отказоустойчивый кластер на nginx

Непрочитанное сообщение playnet » 2012-04-16 17:53:09

manefesto писал(а):у....какие все умные, при количестве коннектов в онлайне порядка 3К, вы мне предлагаете ставить системник с линем, фряхой ?
Да. У меня нгинх показывает на некоторых проектах 2-3к active connections, при том, что машинки там слабые. Тестили под один проект осенью связку из нескольких серверов, на входе нгинх, час лоадимпактом гоняли на 10к активах, работало за-ши-бись. И?
К слову, у рамблера сильно больше 10к актива на каждый фронтэнд.
В своем уме ?
Мы - да. И у нас работает. Как будет у вас - не представляю.
Мне нужно чтобы два сервака с nginx имели один логический IP, то есть мне нужна отказоустойчивость.
С 1 айпи? А AS получена? Несколько физических линков от разных провов, правильно настроен BGP? Иначе про отказоустойчивость можно забыть, имхо. Или брать несколько айпи и см выше, как у меня на ряде серверов.
Без железки никак, поэтому использую heartbeat
"железка" тут тогда должна быть спец циска, заточенная именно под роли фронтэнда. Модели не скажу, мы софтово решили.

Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

Re: отказоустойчивый кластер на nginx

Непрочитанное сообщение manefesto » 2012-04-16 18:54:30

Сейчас nginx вообще на винде стоит,ограничение на 1 воркер и 1024 коннекта.
Именно виндой все и усугубляется.попробую сделать связку carp+pf balancing
я такой яростный шо аж пиздеЦ
Изображение

playnet
мл. сержант
Сообщения: 75
Зарегистрирован: 2009-07-02 15:33:24

Re: отказоустойчивый кластер на nginx

Непрочитанное сообщение playnet » 2012-04-16 23:17:43

manefesto писал(а):Сейчас nginx вообще на винде стоит,ограничение на 1 воркер и 1024 коннекта.
Именно виндой все и усугубляется.попробую сделать связку carp+pf balancing
На винде, ага.. ))
А если ставить никсы - там нгинх хорошо работать будет.

Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

Re: отказоустойчивый кластер на nginx

Непрочитанное сообщение manefesto » 2012-04-20 8:04:28

спасибо кэп
я такой яростный шо аж пиздеЦ
Изображение

Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

Re: отказоустойчивый кластер на nginx

Непрочитанное сообщение manefesto » 2012-05-01 19:24:57

вообщем плюнул я на heartbeat. поднял carp, все довольны, как бы еще pf balancing прикрутить
я такой яростный шо аж пиздеЦ
Изображение

Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1330
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

Re: отказоустойчивый кластер на nginx

Непрочитанное сообщение dekloper » 2012-06-26 9:59:49

Mox писал(а):
manefesto писал(а): В 10-ке новый карп, и там сейчас только отказоустойчивость.
ага, новый
тока не работает ничо..
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!