LINUX.ORG.RU
ФорумAdmin

Как сбалансировать нагрузку между серверами


0

0

Есть несколько серверов (на базе SLES 11) с apache, хотелось бы сбалансировать нагрузку между ними, какими программными или аппаратными способами можно этого достичь? Если решение программное, можно ли разместить балансировщик прямо на одном из этих серверов, не будет ли такое решение как-то сказываться на производительности?


Из аппаратных - например кошки умеют делать :)

http://www.ciscopress.com/articles/article.asp?p=1355228

Из программных - LVS к примеру. Ну или в качестве фронтэнда людой реверсный прокси (apache, nginx, lighttpd и т.д.)

Если решение программное, можно ли разместить балансировщик прямо на одном из этих серверов, не будет ли такое решение как-то сказываться на производительности?


Я бы так не стал делать. А то при загрузке хоста ещё и балансер тормозить начнёт. Да и плюс докучи не стоит забывать, что в такой ситуации следует задуматься об отказоустойчивости. А то упадёт балансировщик - и усё. Соответственно надо строить HA-кластер из балансировщиков. В piranha (LVS) оно есть. Если реверс-прокси задействовать - то тут уже либо хардбит, либо RHCS, либо аналоги нужны.

sidor ★★
()

Во первых, апач я бы спрятал за nginx в своё время просто на очень долго снялся вопрос о покупке нового железа, дальше уже я бы Отправил в гугл с запросом «nginx балансировка.»

в числе первых же есть ссылки

http://www.bloged.org/2009/07/nginx.html

ilovemicrosoft
()

Ещё забыл упомянуть. Как самый бюджетный вариант - round-robin ДНС. Но с ним куча нюансов. Да и в любом случае надо учитывать специфику, которая известна только тебе.

sidor ★★
()

Любой кластер, умеющий кластеризовать IP (RHCS, Pacemaker+linux-ha).

Или фронтенд (nginx, например).

Также нужна разделяемая файловая система (например, GFS2 + cLVM) для статики, скриптов и БД.

anonymous
()
Ответ на: комментарий от sidor

>Я бы так не стал делать. А то при загрузке хоста ещё и балансер тормозить начнёт.

Тоесть лучше поместить балансировщик на физически выделенную машину, а каковы должны быть ее аппаратные характеристики? Вроде на ней немного нагрузки будет.

tician
() автор топика
Ответ на: комментарий от anonymous

>Любой кластер, умеющий кластеризовать IP (RHCS, Pacemaker+linux-ha). Использую OpenAIS (из дополнения SUSE Linux Enterprise High Availability Extention), только там ничего похожего нет вроде..

tician
() автор топика
Ответ на: комментарий от tician

ну по идее немного. сейчас сориентировать не могу. У меня под рукой только вариант с LVS и вариант с nginx в качестве фронтэнда. Но на них нагрузка и так небольшая. В стрессовых ситуациях я подобные схемы ещё не наблюдал, так что сказать ничего не могу.

sidor ★★
()
Ответ на: комментарий от tician

>Использую OpenAIS (из дополнения SUSE Linux Enterprise High Availability Extention), только там ничего похожего нет вроде..

openais - это не полноценное кластерное решение, а фреймворк для шины сообщений и контроля членства. Может использоваться диспетчерами ресурсов, например, pacemaker, однако я рекомендовал бы менее протухший проект corosync.

anonymous
()
Ответ на: комментарий от tician

>Тоесть лучше поместить балансировщик на физически выделенную машину, а каковы должны быть ее аппаратные характеристики? Вроде на ней немного нагрузки будет.

У нас в конторе используется шаблонный vps, который выполняет роль балансировщика (nginx) + pgpool. Нагрузка на него небольшая, фактически - это же прокси, но если нет никаких вариантов с виртуализацией и не хочешь подселять к тому, что балансируешь, то нужна отдельная железка.

K-Vrat
()

рекомендую relayd. а вот кошки весьма не рекомендую, особенно CSM. ACE еще куда ни шло. Айронпорт там всякий - ширпотреб. F5 хорошо, но сцуко дорогие.
все зависит от нагрузки и кол-ва бекенд серверов соответственно. вариант с реверс-прокси а-ля нгиникс - самый бюджетный и падучий, реально релайд самое то, даже на больших нагрузках. оптимально - две отдельные железки, с феловером через CARP.

val-amart ★★★★★
()
Ответ на: комментарий от K-Vrat

>У нас в конторе используется шаблонный vps, который выполняет роль балансировщика (nginx) + pgpool. Нагрузка на него небольшая, фактически - это же прокси, но если нет никаких вариантов с виртуализацией и не хочешь подселять к тому, что балансируешь, то нужна отдельная железка.

Можно немного подробней, что такое шаблонный vps? Это на виртуальной машине балансировщик?

tician
() автор топика
Ответ на: комментарий от tician

>Тоесть лучше поместить балансировщик на физически выделенную машину, а каковы должны быть ее аппаратные характеристики? Вроде на ней немного нагрузки будет.

Если использовать L7-балансировщик (nginx, например), то нагрузка может быть значительной, особенно при неправильной настройке. А в случае L3-балансировщика (IPVS, например), нагрузка будет небольшой.

nnz ★★★★
()
Ответ на: комментарий от tician

Все сервера работают в контейнерах OpenVZ, в т.ч. и все сопуствующее средства типа балансеров. Соответственно балансер работает на одной железке внутри контейнера, рядом с ним может жить еще 10 таких балансеров, а то, что он балансит(apach) - лежит на другой железке. Шаблонный vps - я имел ввиду, что взяли некие стандартные ресурсы для контейнера и при создании новых балансеров копируют просто шаблон vps. Точно могу сказать по процу и памяти там невысокие требования

K-Vrat
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.