Отказоустойчивый кластер — различия между версиями
(Новая страница: « == Настройка кластера Pacemaker == В данной статье будет рассмотрена установка и настройка от…») |
(Завершена статья установки отказоустойчивого кластера.) |
||
Строка 1: | Строка 1: | ||
== Настройка кластера Pacemaker == | == Настройка кластера Pacemaker == | ||
− | В данной статье будет рассмотрена установка и настройка отказоустойчивого кластера при помощи программного комплекса '''pacemaker'''. Для того, чтобы приступить к настройке вам необходимо 2 компьютера с установленной на них операционной системой AlterOS. Дальше на обоих компьютерах необходимо выполнить следующие действия: | + | В данной статье будет рассмотрена установка и настройка отказоустойчивого кластера при помощи программного комплекса '''pacemaker''' (все команды выполняются с правами суперпользователя). Для того, чтобы приступить к настройке вам необходимо 2 компьютера с установленной на них операционной системой AlterOS. Дальше на обоих компьютерах необходимо выполнить следующие действия: |
Задаём имя компьютеров при помощи правки файла ''/etc/hostname''. На главном компьютере задаём имя ''node1'': | Задаём имя компьютеров при помощи правки файла ''/etc/hostname''. На главном компьютере задаём имя ''node1'': | ||
− | + | echo 'node1' > /etc/hostname | |
На второстепенном компьютере задаём имя ''node2'': | На второстепенном компьютере задаём имя ''node2'': | ||
− | + | echo 'node2' > /etc/hostname | |
+ | |||
+ | == Все следующие команды необходимо выполнить на обоих компьютерах == | ||
+ | Обновляем систему: | ||
+ | |||
+ | yum update | ||
+ | |||
+ | Дальше настраиваем время: | ||
+ | Необходимо, чтобы на всех нодах было одинаковое время. Устанавливаем утилиту для синхронизации даты и времени: | ||
+ | |||
+ | yum install ntpdate | ||
+ | |||
+ | Настраиваем синхронизацию по расписанию: | ||
+ | |||
+ | echo '0 0 * * * /usr/sbin/ntpdate ru.pool.ntp.org' >/etc/crontab | ||
+ | |||
+ | Выставляем нужный часовой пояс: | ||
+ | |||
+ | cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime | ||
+ | |||
+ | Синхронизируем время: | ||
+ | |||
+ | ntpdate ru.pool.ntp.org | ||
+ | |||
+ | Отключаем firewall: | ||
+ | |||
+ | systemctl disable firewalld.service | ||
+ | systemctl stop firewalld.service | ||
+ | |||
+ | Отключаем SELinux. Открываем файл /etc/selinux/config и заменяем в нём строчку "SELINUX=enforcing" на "SELINUX=permissive": | ||
+ | |||
+ | nano /etc/selinux/config | ||
+ | |||
+ | Дальше устанавливаем пакеты для работы с кластером: | ||
+ | |||
+ | yum install pacemaker pcs resource-agents | ||
+ | |||
+ | Задаем пароль для учетной записи hacluster, которая была создана автоматически при установке pacemaker: | ||
+ | |||
+ | passwd hacluster | ||
+ | |||
+ | Разрешаем сервис pcsd и запускаем его: | ||
+ | |||
+ | systemctl enable pcsd | ||
+ | systemctl start pcsd | ||
+ | |||
+ | |||
+ | == Сборка кластера (выполняется на компьютере '''node1''') == | ||
+ | |||
+ | Первым делом, авторизовываемся на серверах следующей командой: | ||
+ | |||
+ | pcs cluster auth node1 node2 -u hacluster | ||
+ | ''* где node1 и node2 — имена серверов, hacluster — служебная учетная запись (создана автоматически при установке пакетов).'' | ||
+ | |||
+ | Создаем кластер: | ||
+ | |||
+ | pcs cluster setup --force --name NLB node1 node2 | ||
+ | ''* где NLB — название для кластера; node1 и node2 — серверы, которые должны входить в кластер.'' | ||
+ | |||
+ | После успешного выполнения команды мы увидим, примерно, следующее: | ||
+ | |||
+ | Synchronizing pcsd certificates on nodes node1, node2... | ||
+ | node2: Success | ||
+ | node1: Success | ||
+ | ''* где NLB — название для кластера; node1 и node2 — серверы, которые должны входить в кластер.'' | ||
+ | |||
+ | Разрешаем автозапуск и запускаем созданный кластер: | ||
+ | |||
+ | pcs cluster enable --all | ||
+ | pcs cluster start --all | ||
+ | ''* опция --all говорит, что необходимо выполнить команду для всех нод, к которым мы подключились (вместо этой опции можно перечислить ноды вручную).'' | ||
+ | |||
+ | При использовании 2-х нод (как в данном примере) отключаем stonith (нужен для «добивания» серверов, которые не смогли полностью завершить рабочие процессы) и кворум: | ||
+ | |||
+ | pcs property set stonith-enabled=false | ||
+ | pcs property set no-quorum-policy=ignore | ||
+ | |||
+ | Просмотреть состояние можно командой: | ||
+ | |||
+ | pcs status | ||
+ | |||
+ | == Настройка виртуального IP == | ||
+ | |||
+ | Рассмотрим самый распространенный вариант использования Pacemaker. Он заключается в использовании виртуального IP-адреса, который будет назначаться активному узлу кластера. Для этого создаем ресурс командой: | ||
+ | |||
+ | pcs resource create virtual_ip ocf:heartbeat:IPaddr2 ip=192.168.0.15 cidr_netmask=24 op monitor interval=60s | ||
+ | ''* где virtual_ip — название ресурса (может быть любым); 192.168.0.15 — виртуальный IP, который будет назначен кластеру; 24 — префикс сети (соответствует маске 255.255.255.0); 60s — критическое время простоя, которое будет означать недоступность узла.'' | ||
+ | |||
+ | Вводим команду: | ||
+ | |||
+ | pcs status | ||
+ | |||
+ | Мы должны увидеть, примерно такую строку: | ||
+ | |||
+ | virtual_ip (ocf::heartbeat:IPaddr2): Started node1 | ||
+ | |||
+ | Для проверки, перезагружаем активную ноду (node1) командой: | ||
+ | |||
+ | shutdown -r now | ||
+ | |||
+ | Через небольшой промежуток времени должен смениться узел с virtual_ip: | ||
+ | |||
+ | pcs status | ||
+ | virtual_ip (ocf::heartbeat:IPaddr2): Started node2 | ||
+ | |||
+ | Для смены активной ноды ресурса, вводим команду: | ||
+ | |||
+ | pcs resource move virtual_ip node1 |
Версия 14:00, 23 апреля 2019
Содержание
Настройка кластера Pacemaker
В данной статье будет рассмотрена установка и настройка отказоустойчивого кластера при помощи программного комплекса pacemaker (все команды выполняются с правами суперпользователя). Для того, чтобы приступить к настройке вам необходимо 2 компьютера с установленной на них операционной системой AlterOS. Дальше на обоих компьютерах необходимо выполнить следующие действия: Задаём имя компьютеров при помощи правки файла /etc/hostname. На главном компьютере задаём имя node1:
echo 'node1' > /etc/hostname
На второстепенном компьютере задаём имя node2:
echo 'node2' > /etc/hostname
Все следующие команды необходимо выполнить на обоих компьютерах
Обновляем систему:
yum update
Дальше настраиваем время: Необходимо, чтобы на всех нодах было одинаковое время. Устанавливаем утилиту для синхронизации даты и времени:
yum install ntpdate
Настраиваем синхронизацию по расписанию:
echo '0 0 * * * /usr/sbin/ntpdate ru.pool.ntp.org' >/etc/crontab
Выставляем нужный часовой пояс:
cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Синхронизируем время:
ntpdate ru.pool.ntp.org
Отключаем firewall:
systemctl disable firewalld.service systemctl stop firewalld.service
Отключаем SELinux. Открываем файл /etc/selinux/config и заменяем в нём строчку "SELINUX=enforcing" на "SELINUX=permissive":
nano /etc/selinux/config
Дальше устанавливаем пакеты для работы с кластером:
yum install pacemaker pcs resource-agents
Задаем пароль для учетной записи hacluster, которая была создана автоматически при установке pacemaker:
passwd hacluster
Разрешаем сервис pcsd и запускаем его:
systemctl enable pcsd systemctl start pcsd
Сборка кластера (выполняется на компьютере node1)
Первым делом, авторизовываемся на серверах следующей командой:
pcs cluster auth node1 node2 -u hacluster * где node1 и node2 — имена серверов, hacluster — служебная учетная запись (создана автоматически при установке пакетов).
Создаем кластер:
pcs cluster setup --force --name NLB node1 node2 * где NLB — название для кластера; node1 и node2 — серверы, которые должны входить в кластер.
После успешного выполнения команды мы увидим, примерно, следующее:
Synchronizing pcsd certificates on nodes node1, node2... node2: Success node1: Success * где NLB — название для кластера; node1 и node2 — серверы, которые должны входить в кластер.
Разрешаем автозапуск и запускаем созданный кластер:
pcs cluster enable --all pcs cluster start --all * опция --all говорит, что необходимо выполнить команду для всех нод, к которым мы подключились (вместо этой опции можно перечислить ноды вручную).
При использовании 2-х нод (как в данном примере) отключаем stonith (нужен для «добивания» серверов, которые не смогли полностью завершить рабочие процессы) и кворум:
pcs property set stonith-enabled=false pcs property set no-quorum-policy=ignore
Просмотреть состояние можно командой:
pcs status
Настройка виртуального IP
Рассмотрим самый распространенный вариант использования Pacemaker. Он заключается в использовании виртуального IP-адреса, который будет назначаться активному узлу кластера. Для этого создаем ресурс командой:
pcs resource create virtual_ip ocf:heartbeat:IPaddr2 ip=192.168.0.15 cidr_netmask=24 op monitor interval=60s * где virtual_ip — название ресурса (может быть любым); 192.168.0.15 — виртуальный IP, который будет назначен кластеру; 24 — префикс сети (соответствует маске 255.255.255.0); 60s — критическое время простоя, которое будет означать недоступность узла.
Вводим команду:
pcs status
Мы должны увидеть, примерно такую строку:
virtual_ip (ocf::heartbeat:IPaddr2): Started node1
Для проверки, перезагружаем активную ноду (node1) командой:
shutdown -r now
Через небольшой промежуток времени должен смениться узел с virtual_ip:
pcs status virtual_ip (ocf::heartbeat:IPaddr2): Started node2
Для смены активной ноды ресурса, вводим команду:
pcs resource move virtual_ip node1