Балансировка нагрузки на прокси сервере с помощью LVS в CentOS +

i (1)В предыдущей статье я описал настройку прокси сервера для работы в домене Windows. Здесь опишу как сделать кластер из нескольких серверов для обеспечения балансировки нагрузки и отказоустойчивости. Самый простой способ балансировки это DNS Round-robin, т.е “размазываение” запросов к одному DNS имени по разным ip адресам.

В общем с такой схемой довольно затруднительно будет управлять кластером и еще будут проблемы с кэшированием DNS на клиентах. Существует довольно много решений для построения LB и HA кластеров. Здесь речь пойдет о построении кластера с помощью Linux Virtual Server (LVS) и конфигурировании его с помощью пакета Piranha в CentOS. И так имеем два сервера c ip адресам 10.100.200.68 и 10.100.200.69, с установленным и настроенным на обеих серверах прокси сервером Squid. Ниже приведена схема, кластеры который будем собирать.
LVS кластер

В реальности объединим сервисы на физических серверах. Active router и proxy1, backup router и proxy2 будуть находится на серверах соответственно 10.100.200.68 и 10.100.200.69.

Устанавливаем на обеих серверах Piranha:

Конфигурируем на обеих сервера загрузку сервисов, запускаем ntsysv и включаем в загрузку следующие сервисы:

В нашей схеме мы будем использовать Direct Routing т.е. все пакеты с роутеров адресованные виртуальному ip будут без изменений перенаправляться реальным серверам. Чтобы пакет не отбрасывался ядром виртуальных серверов напишем такое правило iptables:


Собственно у меня только одно это правило и есть, больше я не каких правил не создавал, если же у вас существуют уже настроенные правила, то аккуратнее, команда iptables -F уничтожит все созданное ранее.

Включим форвард пакетов на LVS роутерах. Добавим в файл /etc/sysctl.conf на обеих серверах строку ниже и перезагрузимся:
Прежде чем использовать Piranha Configuration Tool на первичном LVS роутере создадим пароль для доступа к веб конфируратору:

Перезапускаем piranha-gui:

Набираем в браузере ip адрес primary сервера и порт 3636. В моем случае это http://10.100.200.68:3636
Балансировка нагрузки на прокси сервере с помощью LVS в CentOS

В качестве имени пользователя используем piranha, пароль мы создали ранее. Переходим на вкладку GLOBAL SETTING, в поле Primary server public IP вбиваем ip адрес нашего primary сервера. Выбираем Direct Routing и жмем ACCEPT.
Балансировка нагрузки на прокси сервере с помощью LVS в CentOS

Переходим на следующую вкладку REDUNDANCY. Сдесь мы можем настроить backup LVS роутер. Нажимаем ENABLE. В поле Redundant server public IP указываем ip адрес второго сервера.
Балансировка нагрузки на прокси сервере с помощью LVS в CentOS

Далее создадим наш виртуальный сервер, для этого на вкладке VIRTUAL SERVERS, нажимаем ADD и EDIT. Правим настройки нашего сервера как на скриншоте ниже:

Здесь поле Name это просто название вашего виртуального сервера, можете придумать любое. Не забывайте после каждого изменения нажимать кнопку ACCEPT

Переходим к подменю REAL SERVER создаем здесь реальные сервера. На скриншоте ниже показаны настройки первого сервера, для второго будет аналогично, за исключением ip адреса. Сохраняемся. В подменю MONITORING SCRIPTS оставляем все поля пустыми. В этом случае активный роутер будет проверять ответ службы на порту.

В нашем случае если порт 3128 отвечает, то squid запущен. Здесь можно написать какие то свои скрипты проверки, но мне показалось что ответ порта на котором работает служба буде достаточно. Все настройки которые мы проводили в веб интерфейсе, отражаются в файле /etc/sysconfig/ha/lvs.cf. Его нам необходимо скопировать на второй сервер:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

0.00руб.0 items