В этой статье мы покажем вам, как настроить кластер высокой доступности Nginx с помощью Pacemaker на CentOS 7. Чтобы иметь сервер Nginx, который может работать непрерывно без сбоев в течение длительного времени, нам нужно настроить сервер с активными пассивными экземплярами Nginx. Pacemaker – это программное обеспечение с открытым исходным кодом cluster manager, которое обеспечивает максимальную доступность ваших услуг. Это расширенный и масштабируемый диспетчер кластеров высокой доступности, распределенный с помощью ClusterLabs, он управляет всеми службами кластеров и использует возможности обмена сообщениями и членства базового механизма кластеров.
Для выполнения этой статьи вам необходимо:
ssh root@IP_Address -p7022
yum update yum upgrade
Отредактируйте файл /etc/hosts на сервере, с любого терминала в текстовом редакторе, допустим nano
nano /etc/hosts
Добавьте следующие строки в /etc/hosts:
192.168.0.22 webserver-01 192.168.0.23 webserver-02
Дополнительные пакеты для Enterprise Linux в хранилище (Epel) необходимо для того, чтобы установить Nginx. Выполните следующие команды на обоих серверах.
yum install epel-release -y yum install nginx -y
systemctl enable nginx systemctl start nginx
После завершения, необходимо внести изменения в индексной странице Nginx по умолчанию на сервере.
Выполните следующую команду на первом сервере
echo ‘<h1>webserver-01</h1>’ > /usr/share/nginx/html/index.html
Выполните следующую команду на втором сервере
echo ‘<h1>webserver-02</h1>’ > /usr/share/nginx/html/index.html
В этом разделе мы установим стек Pacemaker. Вы должны выполнить этот шаг на обоих серверах.
yum install corosync pacemaker pcs -y
После того, как установка завершена, включите все службы на автоматический запуск при загрузке системы с помощью команды systemctl.
systemctl enable pacemaker systemctl enable corosync systemctl enable pcsd
Установка создаст пользователя системы «hacluster». Мы также должны запустить PCSD для синхронизации конфигурации
systemctl start pcsd
Затем создайте новый пароль для пользователя «hacluster», который был автоматически создан во время предыдущей установки, мы должны использовать один и тот же пароль для всех серверов
passwd hacluster
Затем запустите эту команду ниже
pcs cluster auth webserver-01 webserver-02
На данный момент мы готовы к созданию кластера.
pcs cluster setup –name rosecluster webserver-01 webserver-02
rosecluster это имя кластера, в то время как webserver-01 и webserver-02 являются серверы, которые будут частью rosecluster.
Включите его при загрузке и запустите его.
pcs cluster enable –all pcs cluster start –all
Мы можем проверить состояние кластера с помощью следующей команды:
pcs status
STONITH или Shoot другой узел в голове является реализация ограждения на Pacemaker. Если вы находитесь в производстве, лучше включить STONITH. Поскольку мы не используем устройства ограждения, мы отключаем STONITH.
При выполнении команды pcs status вы увидите предупреждение в выходных данных о том, что никакие устройства STONITH не настроены, и STONITH не отключен:
Отключите STONITH с помощью следующей команды pcs.
pcs property set stonith-enabled=false
Здесь мы настроим Pacemaker игнорировать кворум:
pcs property set no-quorum-policy=ignore
Проверьте список свойств и убедитесь, что STONITH и политики quorum отключены.
pcs property list
Плавающий IP является IP-адрес, который может быть мгновенно перенесен с одного сервера на другой в одной и той же сети, он используется для поддержки восстановления после сбоя в кластере высокой доступности. В этой статье, плавающий IP-адрес для Pacemaker высокой доступности будет «192.168.0.100». Сейчас мы собираемся добавить два ресурса, плавающую адрес ресурса IP с именем «v_ip» и новый ресурс для Nginx веб-сервера с именем ‘webserver’.
Добавить новый плавающий IP-адрес «v_ip» с помощью следующей команды.
pcs resource create v_ip ocf:heartbeat:IPaddr2 ip=192.168.0.100 cidr_netmask=32 op monitor interval=20s
Далее, мы можем добавить второй ресурс в кластер. Ресурс агент службы ocf:heartbeat:nginx под названием ‘webserver’.
pcs resource create webserver ocf:heartbeat:nginx configfile=/etc/nginx/nginx.conf op monitor timeout=”5s” interval=”5s”
Убедитесь, что нет ошибок, проверьте ресурсы.
pcs status resources
Если вы видите два ресурса; ‘v_ip’ и ‘webserver’, это означает, что плавающий IP и веб-сервер Nginx были добавлены.
На этом шаге мы скажем серверу сделать так, чтобы оба ресурса, созданные ранее, работали на одном хосте. Мы установим ограничение коллокации для ресурсов со счетом бесконечности.
pcs constraint colocation add webserver v_ip INFINITY
Установка Nginx ресурсов (webserver), чтобы всегда работать на том же хосте, где v_ip активен.
pcs constraint order v_ip then webserver
Чтобы проверить работающие ресурсы на том же хосте, мы можем вызвать:
pcs status
Перейдите по адресу http://192.168.0.100 на вашем веб-браузере, вы увидите страницу Nginx по умолчанию на webserver-01.
Затем выполните следующую команду, чтобы остановить кластер webserver-01:
pcs cluster stop webserver-01
Теперь, если вы обновите страницу по адресу http://192.168.0.100, вы получите страницу Nginx по умолчанию от webserver-02.
Поздравляем, вы успешно создали кластер высокой доступности Nginx с помощью Pacemaker. Если у вас есть очень загруженный веб-сайт, вы можете рассмотреть возможность запуска вашего сайта на Nginx HA. Есть много хорошо известных сайтов, работающих на Nginx HA и они используют Nginx HA, чтобы поставлять их содержание быстро, надежно и безопасно.