Разделение кластера необходимо при переходе на новую версию ПО, когда требуется произвести обновление без перерыва в обслуживании. При использовании данной методики происходит разделение кластера на две независимые ноды. После чего производится обновление одной из нод на новую версию с последующим запуском. Далее производится остановка второй ноды, её обновление и запуск в работу. Для разделения кластера на отдельные ноды, используется утилита ecss-control (описание утилиты см. в разделе Приложение Н. Описание утилиты ecss-control), которая включена в состав пакета ecss-node.

Описание методики:

  1. Проверить текущее состояние кластера на ноде, которую планируем обновлять первой.

    Команда должна вернуть следующее:

    root@ecss2:~# sudo ecss-control status
    all nodes attached

    Данный вывод означает, что кластер находится в работающем состоянии.

  2. Провести вывод данной ноды из кластера командой:

    sudo ecss-control detach

    и проверить состояние блокировки:

    sudo ecss-control status
    locked ip: 10.10.1.2

    В выводе команды должен присутствовать адрес соседней ноды.

  3. Провести обновление версии согласно документации (см. Регламент обновления/деинсталяция ECSS).

  4. Запустить все ноды ECSS-10 командой:

    sudo systemctl start ecss.service

    На данном этапе мы получили две независимо работающие ноды разных версий.

  5. Перейти на соседнюю ноду и выполнить её остановку:

    sudo systemctl stop ecss.service
  6. Снять блокировку на второй ноде:

    sudo ecss-control attach
  7. Провести обновление первой ноды согласно документации (см. Регламент обновления/деинсталяция ECSS).

  8. Запускаем обновленную ноду командой:

    sudo systemctl start ecss.service

    На данном этапе обновление кластера можно считать законченным.