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