Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Оглавление


Информация

Данная статья является частью статьи: Развертывание двухузлового кластера pacemaker и применима в рамках указанной статьи.



Установка пакетов

Информация
Установка пакетов выполняется на каждом узле кластера.

Установить пакеты сервера apache2:

Command
sudo apt install apache2

Подготовка данных для тестирования

Информация

Подготовка данных для тестирования выполняется на каждом узле кластера.

  1. Указать имя узла в конфигурации web-сайта Apache, используемой по умолчанию (файл /etc/apache2/sites-available/000-default.conf):

    Command
    sudo sed -i "1i ServerName $(hostname)" /etc/apache2/sites-available/000-default.conf


  2. Заменить содержимое индексного файла в пространстве документов Apache, используемое по умолчанию

    Command
    echo "Test Site - $(hostname)" | sudo tee /var/www/html/index.html


  3. Только для ОС Astra Linux Special Edition: отключить AstraMode режим в главной конфигурации Apache (файл /etc/apache2/apache2.conf):

    Command

    sudo sed -i 's/^\s*#\?\s*AstraMode.*/AstraMode off/' /etc/apache2/apache2.conf


  4. Так как в дальнейшем работой службы apache будет управлять Corosync, следует исключить apache2 из автоматической загрузки

    Command
    sudo systemctl disable apache2


  5. Перезапустить Apache:

    Command
    sudo apachectl restart


Подключение ресурса

Информация
Выполняется на любом узле
  1. Добавить службу Apache как ресурс с именем WebSite:

    Command
    sudo pcs resource create WebSite ocf:heartbeat:apache configfile=/etc/apache2/apache2.conf op monitor interval=1min


    Информация
    Параметры команды, задающиеся колючем op (в примере выше - параметр op monitor interval=1min должны указываться последними.


  2. Установить ограничения:

    1. Ограничение "ресурс WebSite должен работать на узле, где размещен ClusterIP”:

      Command
      sudo pcs constraint colocation add WebSite with ClusterIP INFINITY


    2. Ограничение "сначала запускается ClusterIP, затем WebSite”:

      Command
      sudo pcs constraint order ClusterIP then WebSite


Тестирование

Тестирование должно продемонстрировать отказоустойчивость созданного кластера. Для тестирования используется отдельный компьютер, подключенный к той же сети.

Подготовка теста

На компьютере, предназначенном для тестирования:

  1. Создать сценарий test-request.sh следующего содержания:

    Блок кода
    languagebash
    #!/bin/sh
    while true ; do
        wget --no-cache -qO- http://192.168.23.100/index.html
        sleep 1s
    done


  2. Установить созданному файлу сценария права на исполнение

    Command
    chmod +x test-request.sh


  3. Запустить сценарий:

    Command
    ./test-request.sh

    После запуска сценарий будет отправлять запрос кластеру 1 раз в секунду и выводить полученное содержимое на экран.
    Если в данный момент ресурс ClusterIP размещён на узле 1, то вывод сценарий тестового сценария будет таким:

    Блок кода
    Test Site - pcmk-1
    Test Site - pcmk-1
    Test Site - pcmk-1
    Test Site - pcmk-1
    Test Site - pcmk-1
    Test Site - pcmk-1


Отключение узла кластера от сети

  1. Найти узел кластера, на котором размещены ресурсы, выполнив команду на любом узле:

    Command
    sudo pcs status resources


  2. На узле с кластерными ресурсами отключить сетевое соединение:

    Command
    sudo nmcli c d path 1


  3. Кластерные ресурсы мигрируют на другой узел кластера и вывод скрипта test-request.sh изменится. Например, если кластерные ресурсы располагались на узле 1, то после отключения узла 1 от сети, ресурсы переместятся на узел 2. Пример вывода тестового сценария:

    Блок кода
    Test Site - pcmk-1
    Test Site - pcmk-1
    Test Site - pcmk-1
    Test Site - pcmk-2
    Test Site - pcmk-2
    Test Site - pcmk-2


  4. Включить сетевое соединение на отключённом от сети узле:

    Command
    sudo nmcli c u path 1


  5. Дождаться возвращение узла в кластер. После возвращения узла в кластер команда;

    Command
    sudo pcs status

    должна вывести:

    Блок кода
    Online: [ pcmk-1 pcmk-2 ]

    Если вывод команды на разных узлах различается - значит узел еще не вернулся в кластер. В этом случае проверку повторить после небольшой паузы.

Полное выключение узла кластера

  1. Найти узел кластера, на котором размещены ресурсы, выполнив команду на любом узле:

    Command
    sudo pcs status resources


  2. Выключить узел с кластерными ресурсами, перезагрузив его:

    Command
    sudo reboot


  3. Кластерные ресурсы мигрируют на другой узел кластера и вывод сценария test-request.sh изменится. Если кластерные ресурсы располагались на узле 2, то после выключения узла 2 ресурсы переместятся на узел 1. Пример вывода тестового сценария:

    Блок кода
    Test Site - pcmk-2
    Test Site - pcmk-2
    Test Site - pcmk-2
    Test Site - pcmk-1
    Test Site - pcmk-1
    Test Site - pcmk-1


  4. Когда выключенный узел загрузится вернуть его в кластер, выполнив на нем команду:

    Command
    sudo pcs cluster start