Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Предупреждение

При обновлении до любой более новой версии (в том числе патча 2.1011.x) получите новый установочный архив с помощью команды ниже. Запуск на старой версии не допускается, т. к. скрипт compose-tools.sh и конфигурационные файлы могут изменяться между патчами.

...

Подсказка

Для удобства работы рекомендуется предварительно разместить файлы для запуска новой версии в соседнюю директорию от старой, например:

Без форматирования
$ tree -L 2 --dirsfirst
.
├── 2.10   
││    ├── ├── backup
|│    ├── ├── eccm
││    ├── ├── keepalived
││    ├── ├── peeper
││    ├── ├── postgres
││    ├── ├── root-ca-generator
││   ├──  ├── script-libs
││    ├── ├── witness
││    ├── ├── README.md
││    ├── ├── .env.cluster
││    ├── ├── args-compose-tools.log
││    ├── ├── compose-tools.sh
││    ├── ├── generate-cert.sh
│   └── technical_support│   ├── technical_support.sh
│   └── update_password.sh
└── 2.11
    ├── backup
    ├── eccm
    ├── keepalived
    ├── peeper
    ├── postgres
    ├── root-ca-generator
    ├── script-libs
    ├── witness
    ├── README.md
    ├── .env.cluster
    ├── args-compose-tools.log
    ├── compose-tools.sh
    ├── generate-cert.sh
    ├── technical_support.sh
    └── update_password.sh


...

Раскрыть
titleОстановка сервисов ЕССМ в отказоустойчивой системе с БД на отдельном сервере

Когда ЕССМ запущен в отказоустойчивой системе с БД на отдельном сервере, для остановки старой версии ЕССМ сначала остановите кластер приложений. Перейдите на сервера Master-app и Slave-app и выполните команды, приведенные ниже.

Блок кода
cd <путь до каталога с файлами запуска ECCM 2.10>
sudo ./compose-tools.sh --stop --delete-containers

 Остановка Master-db и Slave-db должна быть произведена в определенном порядке в соответствии с ролью узла БД. Для того чтобы узнать текущую роль узла, перейдите на сервер Witness и выполните следующие команды:

Блок кода
titleWitness-node
cd <путь до каталога с файлами запуска ECCM 2.11>/witness/scripts
bash check-postgres-cluster.sh

Вывод скрипта отобразит роль сервера в БД, а также его статус: 

Блок кода
titleWitness-node
Состояние PostgreSQL-кластера по данным witness:
Primary:
  - master (100.110.3.203), статус: * running
Standby:
  - slave (100.110.3.204), статус: running, upstream: master
Witness:
  - witness (100.110.3.67), статус: * running, upstream: master

 Для корректного обновления обязательным условием является роль Standby для сервера Slave.

Раскрыть
titleСмена роли БД в отказоустойчивой системе

Если вывод скрипта отображения ролей сервера в БД соответствует следующему:

Блок кода
titleWitness-node
Состояние PostgreSQL-кластера по данным witness:
Primary:
  - slave (100.110.3.204), статус: * running
Standby:
  - master (100.110.3.203), статус: running, upstream: slave
Witness:
  - witness (100.110.3.67), статус: * running, upstream: slave

 То необходимо принудительно сменить мастерство БД на узлах системы. Перейдите на сервер Slave-db и принудительно остановите контейнер:

Блок кода
titleSlave-db
docker stop eccm-postgres

 Далее перейдите на сервер Witness и выполните следующие команды:

Блок кода
titleWitness-node
cd <путь до каталога с файлами запуска ECCM 2.11>/witness/scripts
bash check-postgres-cluster.sh

 Дождитесь следующего вывода:

Блок кода
titleWitness-node
Состояние PostgreSQL-кластера по данным witness:
Primary:
  - master (100.110.3.203), статус: * running
  - slave (100.110.3.204), статус: - failed, upstream: ?
Standby:
  - не найден
Witness:
  - witness (100.110.3.67), статус: * running, upstream: master
Обнаружен split brain, witness указывает на мастерство: 100.110.3.203

 После того как Master-db получит роль Primary, вернитесь на сервер Slave и возобновите работу контейнера:

Блок кода
titleSlave-db
docker start eccm-postgres

 На сервере Witness-узла убедитесь, что роли БД распределились в соответствии со следующим примером:

Блок кода
titleWitness-node
Состояние PostgreSQL-кластера по данным witness:
Primary:
  - master (100.110.3.203), статус: * running
Standby:
  - slave (100.110.3.204), статус: running, upstream: master
Witness:
  - witness (100.110.3.67), статус: * running, upstream: master

Далее произведите остановку БД с ролью Standby при помощи следующей команды:

Блок кода
cd <путь до каталога с файлами запуска ECCM 2.10>
sudo ./compose-tools.sh --stop --delete-containers

После полной остановки старой версии ЕССМ на сервере Standby при помощи аналогичной команды одновременно остановите оставшиеся узлы системы.

Предупреждение

При нарушении последовательности остановки узлов система не запустится. 

 Также произведите остановку утилиты Keepalived и таймера синхронизации SNAT на узлах Master и Slave при помощи следующей командыследующих команд:

Блок кода
sudo systemctl stop eccm-tftp-snat.timer 2>/dev/null || true
sudo systemctl stop keepalived

Для отказоустойчивой системы после успешной остановки старой версии ЕССМ на каждом узле необходимо произвести копирование сертификатов в директорию с новой версией:

Блок кода
cd <путь до каталога с файлами запуска ЕССМ 2.10>
sudo cp cluster-cert/* <путь до каталога с файлами запуска ЕССМ 2.11>/cluster-cert/

В версии ЕССМ 2.10 конфигурационный Повторно заполните файл .env.cluster был изменен. Повторно заполните данный файл при отсутствии значений IP-адресов узлов в файле .env.personal, а также произведите изменение значения измените значение параметра RECONFIGURE_CLUSTER на true. Для синхронизации конфигурационных файлов между узлами воспользуйтесь инструкцией в разделе "Запуск ЕССМ в отказоустойчивой системе".

Предупреждение

Изменение параметра RECONFIGURE_CLUSTER инициализирует принудительное назначение ролей. При отсутствии изменения данного параметра узел Slave не будет обновлен и система может не запуститься.

...

Предупреждение

При нарушении последовательности остановки узлов система не запустится. 

Также произведите остановку утилиты Keepalived и таймера синхронизации SNAT на узлах Master и Slave при помощи

...

следующих команд:

Блок кода
sudo systemctl stop eccm-tftp-snat.timer 2>/dev/null || true
sudo systemctl stop keepalived

Для отказоустойчивой системы после успешной остановки старой версии ЕССМ на каждом узле необходимо произвести копирование сертификатов в директорию с новой версией:

Блок кода
cd <путь до каталога с файлами запуска ЕССМ 2.10>
sudo cp cluster-cert/* <путь до каталога с файлами запуска ЕССМ 2.10>/cluster-cert/

В версии ЕССМ 2.10 конфигурационный Повторно заполните файл .env.cluster был изменен. Повторно заполните данный файл, а также произведите изменение значения параметра cluster при отсутствии значений IP-адресов узлов в файле .env.personal, а также измените значение параметра  RECONFIGURE_CLUSTER на true. Для синхронизации конфигурационных файлов между узлами воспользуйтесь инструкцией в разделе "Запуск ЕССМ в отказоустойчивой системе".

...

Перед первым запуском ECCM 2.10 11 перенесите пользовательские пароли из директории предыдущей версии.

Если в ECCM 2.9 10 использовался файл .env.personal, скопируйте его в директорию с файлами запуска ECCM 2.11:

Блок кода
languagebash
titleПеренос файла .env.personal
sudo cp <путь до каталога с файлами запуска ECCM 2.9>10>/.env.personal <путь до каталога с файлами запуска ECCM 2.11>/

...

Блок кода
titleWitness: eccm/2.11/
sudo ./compose-tools.sh --pull --start <IP ADDRESS> --cluster witness

Восстановите работу утилиты Keepalived и таймера SNAT на узлах Master и Slave при помощи следующей командыследующих команд:

Блок кода
languagebash
sudo systemctl enable keepalived
sudo systemctl start keepalived
sudo systemctl daemon-reload
sudo systemctl enable --now eccm-tftp-snat.timer
Подсказка

Для запуска ЕССМ в отказоустойчивой системе при запуске БД на отдельных серверах также воспользуйтесь инструкцией в разделе разделе "Запуск ЕССМ в отказоустойчивой системе".

...