Вообщем имеется сервер на нем стоит связка из Apach+nginx, MySQL, PHP, все это управляется Debian 5, на нем стоит тяжелый трекер с большой посещаемостью, сервер уже просто не справляется с нагрузкой, так же имееются еще 2 "сервера" с такой же начинкой.
Вообщем, требуется подсказка знающих людей, как все это можно объеденить в единый кластер с распределением нагрузки поровну.
Если кому не сложно, напишите подробный мануал...
Зарание благодарен...
Кластер (Требуется подсказка знающих людей в организации кластера из 3-х сервер)
Модераторы: Warderer, Модераторы разделов
-
rm_
- Сообщения: 3340
- Статус: It's the GNU Age
- ОС: Debian
Re: Кластер
Про кластер не подскажу, но как вариант - MySQL вынесите на второй сервер, а nginx - на третий.
Получится:
1) Apache+PHP ("сервер приложений");
2) MySQL ("сервер баз данных");
3) nginx (кэширующий фронт-енд к первому серверу).
Возможно нагрузка распределится и не поровну, но это самый простой и вероятно самый часто применяемый вариант её разделения.
Получится:
1) Apache+PHP ("сервер приложений");
2) MySQL ("сервер баз данных");
3) nginx (кэширующий фронт-енд к первому серверу).
Возможно нагрузка распределится и не поровну, но это самый простой и вероятно самый часто применяемый вариант её разделения.
-
alsh1
- Сообщения: 22
- ОС: Debian Squeeze
Re: Кластер
Sepsys писал(а): ↑27.12.2009 07:52Вообщем имеется сервер на нем стоит связка из Apach+nginx, MySQL, PHP, все это управляется Debian 5, на нем стоит тяжелый трекер с большой посещаемостью, сервер уже просто не справляется с нагрузкой, так же имееются еще 2 "сервера" с такой же начинкой.
Вообщем, требуется подсказка знающих людей, как все это можно объеденить в единый кластер с распределением нагрузки поровну.
Если кому не сложно, напишите подробный мануал...
Зарание благодарен...
Либо как вариант nginx вынести на отдельный сервер, на двух других оставить связку апач+mysql, и использовать nginx как кэш для двух серваков с апачем, запросы к апачу будут балансироваться между двумя серваками.
-
mandreika
- Сообщения: 217
- ОС: Debian 3,4,5,6
Re: Кластер
Балансировку через 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
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: Кластер
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
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: Кластер
самый простой вариант: три сервера, три разных IP, три А-записи, каждая из которых выплевывается равновероятно при запросе. на каждом из серверов apache+ngnix+mysql, которые смотрят на один и тот же контент(можно физически на один и тот же: монтировать через nfs через внутреннюю сеть, если такая есть), можно "скриптовую" часть синхронизировать, для MySQL настроить репликацию в духе master-master, сессии хранить в базе.
-
rm_
- Сообщения: 3340
- Статус: It's the GNU Age
- ОС: Debian
Re: Кластер
diesel писал(а): ↑28.12.2009 15:52самый простой вариант: три сервера, три разных IP, три А-записи, каждая из которых выплевывается равновероятно при запросе. на каждом из серверов apache+ngnix+mysql, которые смотрят на один и тот же контент(можно физически на один и тот же: монтировать через nfs через внутреннюю сеть, если такая есть), можно "скриптовую" часть синхронизировать, для MySQL настроить репликацию в духе master-master, сессии хранить в базе.
Это всё далеко не самый простой вариант. Я бы даже сказал, это самый сложный.