URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 83383
[ Назад ]

Исходное сообщение
"Балансировка нагрузки кластера"

Отправлено hash_is , 16-Дек-08 22:34 
Здравствуйте!
Имеется 2 сервера с полностью идентичными системами (FreeBSD 7.1). На них поднят MySQL кластер (ацкий пожиратель оперативы) и запущенны 2 апача, на которых крутится нагруженный сайт и юзает кластерную БД. Сервера находятся у двух разных провов и имеют разные ip. Для балансировки нагрузки тупо сделали в NAMED 2 ip на одно имя.

Вопрос:
Как сделать чтобы если один сервер выключен, DNS не выдавал клиентам его адрес? А то половина запросов в никуда уходит....


Содержание

Сообщения в этом обсуждении
"Балансировка нагрузки кластера"
Отправлено SubGun , 17-Дек-08 10:44 
Вы изначально пошли не тем путем. На мой взгляд, гораздо эффективнее было бы поставить что-то типа mysql-proxy, для балансировки между MySQL серверами. Кроме того, nginx для ускорения отдачи статистики. Один из серверов может сугубо отрабатывать скрипты, а результат как статику отдавать nginx.
Советую почитать умные статьи про организацию высоконагруженных систем: http://community.livejournal.com/ru_highload/

"Балансировка нагрузки кластера"
Отправлено medval , 17-Дек-08 20:05 
>Вы изначально пошли не тем путем. На мой взгляд, гораздо эффективнее было
>бы поставить что-то типа mysql-proxy, для балансировки между MySQL серверами. Кроме
>того, nginx для ускорения отдачи статистики. Один из серверов может сугубо
>отрабатывать скрипты, а результат как статику отдавать nginx.
>Советую почитать умные статьи про организацию высоконагруженных систем: http://community.livejournal.com/ru_highload/

Путей распределения нагрузки действительно много. Но я смотрю вопрос не именно в распределении, а ближе к обеспечению отказоустойчивости и непрерывной работы некой системы. Присоединюсь к автору вопроса, возможно ли такое средствами DNS?


"а почему Вы спрашиваете?"
Отправлено Andrey Mitrofanov , 18-Дек-08 09:38 
>Путей распределения нагрузки действительно много. Но я смотрю вопрос не именно в
>распределении, а ближе к обеспечению отказоустойчивости и непрерывной работы некой системы.
>Присоединюсь к автору вопроса, возможно ли такое средствами DNS?

Логически рассуждая, отказоустойчивость делается дублированием сервисов и обеспечением их доступности. Дублирование к DNS-у не имеет отношения, дублирование самого DNS тоже бы надо %) делать, но для простоты %) опустим этот вопрос. Доступность -- мониторингом состояния и включением-выключением доступа к клиента серверам. К мониторингу DNS никакого отношения не имеет, по идее. Включать-выключать диступ по имени к узлам в кластере через dns - можно. TTL "поменьше" поставить и при изменении сосотояния узлов/сервисов обнослять зону/имя в dns.

Теоретически как-то так. Наверное что-то пропустил. $)


"Балансировка нагрузки кластера"
Отправлено SubGun , 18-Дек-08 11:19 
Отказоустойчивость MySQL обеспечивается не кластеризацией, а репликацией. Единственное узкое место - веб-сервер. Ставим CARP.
http://img.fotki.yandex.ru/get/1/vbob.2/0_881_da8caa39_orig

"Балансировка нагрузки кластера"
Отправлено s_dog , 18-Дек-08 11:25 
Покапайся на форуме, тут уже этот вопрос проходил, были варианты, точно.

"Балансировка нагрузки кластера"
Отправлено hash_is , 18-Дек-08 20:14 
Итак по порядку отвечаю на все сообщения:

1) Насчет нетого пути - путей много и можно сделать и как вы пишите, но проблем с моим путем (с распределением нагрузки) у меня ещё не возникло.

2) Рассуждения от Andrey Mitrofanov - уже ближе к делу, а именно: обеспечить кластеризацию рядом стоящих серверов несложно(для специалиста), речь идет о том, что есть 2 кластера, допустим в каждом по 2 сервера, кластеры у двух разных провов, упал канал, свет, или ещё что там у одного провайдера, и клиенты должны автоматом перекинуться на второй кластер, который в штатном режиме просто ловил 50% обращений.

3) CARP - совсем жарко :-) это часть решения, которую я уже испытываю в данный момент(результат опишу), но это кластеризация(CARP может как просто "подхватывать адреса", так и балансировать запросы) именно двух серверов у одного провайдера.

4) Отказоустойчивость достигается как кластером, так и репликацией, порой эти понятия даже имеют единый смысл, например в доках по кластеру на postgresql часто используют слово репликация вместо кластера.... Но сейчас не идет речи о том, что уменя БД плохо синхронится, или апач перегружен....

Сейчас есть промежуточное решение, но оно как-бы сказать дорогое и ИМХО из пушки по муровьям, итак:

2 кластера, каждый состоит из 2-х  серверов, кластера стоят у 2-х разных провайдеров.
1) Между серверами в кластере поднимается CARP с балансировкой.
2) Покупается автономная система, на своем роутере настраиваем маршруты или делаем round-robin для балансировки запросов ещё и между кластерами.


"Балансировка нагрузки кластера"
Отправлено SubGun , 19-Дек-08 11:05 
На сисадминс.ру не так давно была задорная статья про человека, который кластеризовал DNS.

"Балансировка нагрузки кластера"
Отправлено hash_is , 22-Дек-08 22:36 
>На сисадминс.ру не так давно была задорная статья про человека, который кластеризовал
>DNS.

Посмотрел.... Простите меня модераторы, но аффтор того топика просто придурок...

То о чем я завел речь очень востребовано, и вроде как ещё не решено, что предает актуальность тематике. Если тема будет решена без покупки AS, то обесчаю написать статью о построении решения от а до я.


"Балансировка нагрузки кластера"
Отправлено Денис Юсупов , 10-Сен-09 17:37 
>1) Между серверами в кластере поднимается CARP с балансировкой.
>2) Покупается автономная система, на своем роутере настраиваем маршруты или делаем round-robin
>для балансировки запросов ещё и между кластерами.

C AS это оччень "из пушки по воробьям", запаритесь. CARP'а вполне достаточно должно быть, дальше уже по туннелю можно прокинуть этот мультикаст.


"Балансировка нагрузки кластера"
Отправлено angra , 22-Дек-08 23:28 
По постановке вопроса выходит что есть некая третья точка, на которой стоит DNS сервер. Если так то проверяем на этой третей точке доступность двух других и соответственно оповещаем named. Желательно выставление низкого ttl, дабы уменьшить влияние кеширования клиентами и/или их isp
Если же третьей точки нет, то named придется ставить на обоих, что отлично согласуется с требованием наличия минимум двух dns серверов в разных сетях. Дальше поступаем аналогично первому случаю.



"Балансировка нагрузки кластера"
Отправлено JaNet , 21-Янв-09 14:14 
>По постановке вопроса выходит что есть некая третья точка, на которой стоит
>DNS сервер. Если так то проверяем на этой третей точке доступность
>двух других и соответственно оповещаем named. Желательно выставление низкого ttl, дабы
>уменьшить влияние кеширования клиентами и/или их isp
>Если же третьей точки нет, то named придется ставить на обоих, что
>отлично согласуется с требованием наличия минимум двух dns серверов в разных
>сетях. Дальше поступаем аналогично первому случаю.

автор топика решения не нарыл? нечто подобное и у меня имеет место быть. пока что без кластера, потом - как вариант. AS уж больно дорогое удовольствие.


"Балансировка нагрузки кластера"
Отправлено sm00th1980 , 30-Июл-09 22:18 
>автор топика решения не нарыл? нечто подобное и у меня имеет место
>быть. пока что без кластера, потом - как вариант. AS уж
>больно дорогое удовольствие.

если честно то я не согласен с утверждением что AS больно дорогое удовольствие - посмотрите цены на www.ipaddr.ru(это не реклама!!!) - мы сами недавно воспользовались их помощью. AS + 1 блок адресов обойдётся в 130 + 240 баксов = итого 370 $ - неужели это дорого?


"Балансировка нагрузки кластера"
Отправлено JaNet , 06-Авг-09 23:56 
>>автор топика решения не нарыл? нечто подобное и у меня имеет место
>>быть. пока что без кластера, потом - как вариант. AS уж
>>больно дорогое удовольствие.
>
>если честно то я не согласен с утверждением что AS больно дорогое
>удовольствие - посмотрите цены на www.ipaddr.ru(это не реклама!!!) - мы сами
>недавно воспользовались их помощью. AS + 1 блок адресов обойдётся в
>130 + 240 баксов = итого 370 $ - неужели это
>дорого?

Мне провайдер (Питер, Ланк) выставил предложение-счет : 500$ за регистрацию, 1000$ - год (аб. плата) Блок адресов просил из 8 штук. А за ссылочку спасибо большое.


"Балансировка нагрузки кластера"
Отправлено Денис Юсупов , 10-Сен-09 17:35 
>Как сделать чтобы если один сервер выключен, DNS не выдавал клиентам его
>адрес? А то половина запросов в никуда уходит....

TTL 0 выставляйте, тогда при каждом обращении к серверу DNS будет выдавать новый ip. Мы так делали с VPN-"кластером". Причём поскольку по умолчанию попытка установить TCP соединение происходит три раза, то все эти три раза DNS честно выдаёт разные ip.