Кластер (Требуется подсказка знающих людей в организации кластера из 3-х сервер)

Knoppix

Модераторы: Warderer, Модераторы разделов

Sepsys
Сообщения: 3

Кластер

Сообщение Sepsys »

Вообщем имеется сервер на нем стоит связка из Apach+nginx, MySQL, PHP, все это управляется Debian 5, на нем стоит тяжелый трекер с большой посещаемостью, сервер уже просто не справляется с нагрузкой, так же имееются еще 2 "сервера" с такой же начинкой.
Вообщем, требуется подсказка знающих людей, как все это можно объеденить в единый кластер с распределением нагрузки поровну.
Если кому не сложно, напишите подробный мануал...
Зарание благодарен...
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Кластер

Сообщение rm_ »

Про кластер не подскажу, но как вариант - MySQL вынесите на второй сервер, а nginx - на третий.
Получится:
1) Apache+PHP ("сервер приложений");
2) MySQL ("сервер баз данных");
3) nginx (кэширующий фронт-енд к первому серверу).
Возможно нагрузка распределится и не поровну, но это самый простой и вероятно самый часто применяемый вариант её разделения.
Спасибо сказали:
alsh1
Сообщения: 22
ОС: Debian Squeeze

Re: Кластер

Сообщение alsh1 »

Sepsys писал(а):
27.12.2009 07:52
Вообщем имеется сервер на нем стоит связка из Apach+nginx, MySQL, PHP, все это управляется Debian 5, на нем стоит тяжелый трекер с большой посещаемостью, сервер уже просто не справляется с нагрузкой, так же имееются еще 2 "сервера" с такой же начинкой.
Вообщем, требуется подсказка знающих людей, как все это можно объеденить в единый кластер с распределением нагрузки поровну.
Если кому не сложно, напишите подробный мануал...
Зарание благодарен...

Либо как вариант nginx вынести на отдельный сервер, на двух других оставить связку апач+mysql, и использовать nginx как кэш для двух серваков с апачем, запросы к апачу будут балансироваться между двумя серваками.
Спасибо сказали:
Аватара пользователя
mandreika
Сообщения: 217
ОС: Debian 3,4,5,6

Re: Кластер

Сообщение mandreika »

Балансировку через Iptables не вариант?
50% вероятность на первый сервер и 50 на второй
iptables -t nat -A PREROUTING -p tcp --dport 80 -m statistic --mode random --probability 0.5 -j DNAT --to-destination 192.168.1.3:80
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.2:80
или так в твоем случае
iptables -t nat -A PREROUTING -p tcp --dport 80 -m statistic --mode random --probability 0.33 -j DNAT --to-destination 192.168.1.3:80
iptables -t nat -A PREROUTING -p tcp --dport 80 -m statistic --mode random --probability 0.33 -j DNAT --to-destination 192.168.1.2:80
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Кластер

Сообщение Alex2ndr »

mandreika писал(а):
28.12.2009 11:17
Балансировку через Iptables не вариант?
50% вероятность на первый сервер и 50 на второй
iptables -t nat -A PREROUTING -p tcp --dport 80 -m statistic --mode random --probability 0.5 -j DNAT --to-destination 192.168.1.3:80
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.2:80
или так в твоем случае
iptables -t nat -A PREROUTING -p tcp --dport 80 -m statistic --mode random --probability 0.33 -j DNAT --to-destination 192.168.1.3:80
iptables -t nat -A PREROUTING -p tcp --dport 80 -m statistic --mode random --probability 0.33 -j DNAT --to-destination 192.168.1.2:80

Тогда уж так -

Код: Выделить всё

iptables -t nat -A PREROUTING -p tcp --dport 80 -m statistic --mode random --probability 0.33 -j DNAT --to-destination 192.168.1.3:80
iptables -t nat -A PREROUTING -p tcp --dport 80 -m statistic --mode random --probability 0.33 -j DNAT --to-destination 192.168.1.2:80
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:80

И к тому же этот вариант будет работать только если есть единый роутер через который идут запросы к серверам. А вот если сервера на каком-нить колокэйшене и тд, то может так и не получиться.
Спасибо сказали:
Аватара пользователя
mandreika
Сообщения: 217
ОС: Debian 3,4,5,6

Re: Кластер

Сообщение mandreika »

есть еще haproxy вроде хорошо говорят работает
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Кластер

Сообщение diesel »

самый простой вариант: три сервера, три разных IP, три А-записи, каждая из которых выплевывается равновероятно при запросе. на каждом из серверов apache+ngnix+mysql, которые смотрят на один и тот же контент(можно физически на один и тот же: монтировать через nfs через внутреннюю сеть, если такая есть), можно "скриптовую" часть синхронизировать, для MySQL настроить репликацию в духе master-master, сессии хранить в базе.
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Кластер

Сообщение rm_ »

diesel писал(а):
28.12.2009 15:52
самый простой вариант: три сервера, три разных IP, три А-записи, каждая из которых выплевывается равновероятно при запросе. на каждом из серверов apache+ngnix+mysql, которые смотрят на один и тот же контент(можно физически на один и тот же: монтировать через nfs через внутреннюю сеть, если такая есть), можно "скриптовую" часть синхронизировать, для MySQL настроить репликацию в духе master-master, сессии хранить в базе.

Это всё далеко не самый простой вариант. Я бы даже сказал, это самый сложный.
Спасибо сказали: