...
| Предупреждение |
|---|
При обновлении до любой более новой версии (в том числе патча 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 и выполните следующие команды: | Блок кода |
|---|
| cd <путь до каталога с файлами запуска ECCM 2.11>/witness/scripts
bash check-postgres-cluster.sh |
Вывод скрипта отобразит роль сервера в БД, а также его статус: | Блок кода |
|---|
| Состояние 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 | Смена роли БД в отказоустойчивой системе |
|---|
| Если вывод скрипта отображения ролей сервера в БД соответствует следующему: | Блок кода |
|---|
| Состояние 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 и принудительно остановите контейнер: | Блок кода |
|---|
| docker stop eccm-postgres |
Далее перейдите на сервер Witness и выполните следующие команды: | Блок кода |
|---|
| cd <путь до каталога с файлами запуска ECCM 2.11>/witness/scripts
bash check-postgres-cluster.sh |
Дождитесь следующего вывода: | Блок кода |
|---|
| Состояние 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 и возобновите работу контейнера: | Блок кода |
|---|
| docker start eccm-postgres |
На сервере Witness-узла убедитесь, что роли БД распределились в соответствии со следующим примером: | Блок кода |
|---|
| Состояние 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:
| Блок кода |
|---|
| language | bash |
|---|
| title | Перенос файла .env.personal |
|---|
|
sudo cp <путь до каталога с файлами запуска ECCM 2.9>10>/.env.personal <путь до каталога с файлами запуска ECCM 2.11>/ |
...
| Блок кода |
|---|
|
sudo ./compose-tools.sh --pull --start <IP ADDRESS> --cluster witness |
Восстановите работу утилиты Keepalived и таймера SNAT на узлах Master и Slave при помощи следующей командыследующих команд:
| Блок кода |
|---|
|
sudo systemctl enable keepalived
sudo systemctl start keepalived
sudo systemctl daemon-reload
sudo systemctl enable --now eccm-tftp-snat.timer |
| Подсказка |
|---|
Для запуска ЕССМ в отказоустойчивой системе при запуске БД на отдельных серверах также воспользуйтесь инструкцией в разделе разделе "Запуск ЕССМ в отказоустойчивой системе". |
...