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

Ключ

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

Оглавление
printablefalse

Одним из важных нововведений в версии 2.7 в ЕССМ является обновление версии PostgreSQL с 14.10 на 16.11, а также обновление плагинов timescale и timescaledb-tools до версий 2.24.0 и 1.22.0 соответственно.

Подсказка

Сервисы ЕССМ 2.7 совместимы с версией PostgreSQL 14.10 при многохостовой установке или запуске ЕССМ с собственной базой данных.

Обновление до актуальной версии состоит из следующих этапов:

  1. 0. Создание резервной копии данных;
  2. 1. Скачивание и распаковка архива с новой версией файлов запуска ЕССМ;
  3. 2. Остановка старой версии ECCM;
  4. 3. Обновление базы данных;
  5. 3. Запуск новой версии ЕССМ.

Scroll Pagebreak

Создание резервной копии

Подсказка

Для возможности отката к предыдущей версии перед началом обновления рекомендуем создать резервную копию данных. В случае если ECCM установлен на сервере с использованием виртуализации, следует сделать Snapshot системы. В ином случае — создать резервную копию базы данных eccm средствами PostgreSQL. Подробная инструкция по созданию резервной копии базы данных приведена в разделе "Резервное копирование базы данных ЕССМ".

Получение и распаковка архива

Подсказка

Для offline-установки воспользуйтесь инструкцией по загрузке установочных файлов и установке образов проекта, приведенной в разделе "Offline-установка ЕССМ"

Перед установкой новой версии ЕССМ необходимо предварительно скачать архив с файлами системы. Файлы, необходимые для запуска проекта, распространяются в виде архива .tar.gz. Их можно получить с общедоступного облака. Загрузите архив на сервер и распакуйте его. Рекомендуется распаковывать архив в заранее созданную отдельную директорию:

Блок кода
wget "https://cloud.eltex-co.ru/index.php/s/P8xDfmyo3XyEs0g/download?path=%2F&files=eccm-2.7.tar.gz" -O eccm-2.7.tar.gz
mkdir eccm
sudo tar -zxvf eccm-2.7.tar.gz -C eccm/

Scroll Pagebreak

Подсказка

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

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



Примечание

В случае многохостовой установки скачайте и распакуйте архив и на сервер с ЕССМ, и на сервер с базой данных.

Примечание

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

Остановка старой версии ECCM

Остановка сервисов ЕССМ при однохостовой установке

Когда ECCM запущен на одном хосте (ЕССМ и база данных находятся на одном сервере), для остановки старой версии ЕССМ и удаления контейнеров выполните команду из директории с файлами запуска старой версии ECCM:

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


Scroll Pagebreak

Остановка сервисов ЕССМ при многохостовой установке

Когда ECCM запущен на нескольких хостах (ЕССМ на одном сервере, база данных — на другом), для остановки старой версии ЕССМ выполните команды, приведенные ниже.

На сервере с ЕССМ:

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


На сервере с базой данных:

Блок кода
cd <путь до каталога с файлами запуска ECCM 2.6>/postgres
sudo docker compose stop

Остановка сервисов ЕССМ в отказоустойчивой системе

Когда ЕССМ запущен в отказоустойчивой системе из трех узлов, для остановки старой версии ЕССМ необходимо выполнить следующую команду на каждом узле системы: 

Блок кода
cd <путь до каталога с файлами запуска ECCM 2.6>
sudo ./compose-tools.sh --stop
Раскрыть
titleОстановка сервисов ЕССМ при запуске в отказоустойчивой системе с БД на отдельном сервере

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

Блок кода
titleОстановка узлов кластере приложений
cd <путь до каталога с файлами запуска ECCM 2.6>
sudo ./compose-tools.sh --stop

 Далее необходимо произвести остановку каждого узла из кластера баз данных при помощи следующей команды:

Блок кода
titleОстановка узлов кластере приложений
cd <путь до каталога с файлами запуска ECCM 2.6>/postgres
sudo docker compose stop



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

Блок кода
sudo systemctl stop keepalived

Обновление базы данных

Для удобства обновления БД в состав файлов для запуска 2.7 добавлен скрипт postgres-upgrade.sh, расположенный в директории db-tools/ относительно корневой директории системы. Данный скрипт выполняется следующие действия:

  1. Проверяет наличие контейнера с СУБД;
  2. Создает резервную копию данных в отдельный Docker volume ;
  3. Запускает отдельный контейнер с утилитой миграции;
  4. Производит обновление и оптимизацию контейнера с СУБД;

Также для данного скрипта предусмотрены дополнительные возможности:

ОпцияОписание
--rollback

Откат обновления PostgreSQL с версии 16.11 на версию 14.10

Примечание

При использовании данной опции остальные флаги игнорируются.

--backup-dir <path>Указание расположения для бэкапа БД. По умолчанию используется путь в контейнере /var/lib/postgresql/backup 
--env-file <path>Указание конфигурационного файла контейнера с БД. По умолчанию используется файл из директории postgres относительно корневой директории системы
--skip-optimization

Пропустить этап оптимизации базы данных

Примечание

Использовать только по указанию технической поддержки.

Обновление базы данных при однохостовой установке

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

Блок кода
cd <путь до каталога с файлами запуска ECCM 2.7>/db-tools
bash postgres-upgrade.sh

После успешного обновления БД произведите запуск новой версии ЕССМ.

Обновление базы данных при многохостовой установке

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

Блок кода
cd <путь до каталога с файлами запуска ECCM 2.7>/db-tools
bash postgres-upgrade.sh

После успешного обновления БД произведите запуск новой версии ЕССМ.

Обновление базы данных в отказоустойчивой системе

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

Для обновления ЕССМ в отказоустойчивой системе необходимо предварительно произвести обновление с версии 2.6 на версию не менее 2.6.1 и повторно остановить систему. При отсутствии данного шага обновление отказоустойчивой системы невозможно.

Раскрыть
titleОбновление до версии 2.6.1 для стандартной схемы отказоустойчивой системы

Если предыдущая версия ЕССМ была 2.6.0, первоначально произведите запуск системы на версии 2.6.1. Перед запуском перенесите сертификаты и файл конфигурации отказоустойчивой системы в директорию с новой версией ЕССМ при помощи выполнения следующих команд на каждом хосте:

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

Далее запустите ЕССМ на мастере:

Блок кода
titleMaster: eccm/2.6.1/
sudo ./compose-tools.sh --pull --start <IP ADDRESS> --cluster master

После того как мастер будет инициализирован и готов к работе, произведите запуск остальных узлов:

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

После успешного запуска ЕССМ на версии 2.6.1, произведите остановку системы при помощи выполнения следующей команды на каждом хосте:

Блок кода
sudo ./compose-tools.sh --stop
Раскрыть
titleОбновление до версии 2.6.1 для отказоустойчивой системы с БД на отдельном сервере

Если предыдущая версия ЕССМ была 2.6.0, первоначально произведите запуск системы на версии 2.6.1. Перед запуском перенесите сертификаты и файл конфигурации отказоустойчивой системы в директорию с новой версией ЕССМ при помощи выполнения следующих команд на каждом хосте:

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

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

Блок кода
titleMaster: eccm/2.6.1/
cd postgres/
docker compose --env-file=.env ==env-file=../.env.cluster -f docker-compose.cluster.yml up -d

После того как база данных на Master-db будет проинициализирована, перейдите на сервер Slave-db. Перейдите в директорию postgres/ и запустите базу данных:

Блок кода
titleSlave-db: eccm/2.6.1/
cd postgres/
docker compose --env-file=.env ==env-file=../.env.cluster -f docker-compose.cluster.yml up -d

Во время инициализации Slave-db запустите Witness-узел, перейдя на сервер Witness-node. При помощи bash-скрипта произведите запуск Witness с необходимыми параметрами. Пример запуска с обязательными параметрами:

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

После полной инициализации всего кластера баз данных перейдите на сервер Master-ECCM. При помощи bash-скрипта произведите запуск мастера с необходимыми параметрами. Пример запуска с обязательными параметрами:

Блок кода
titleMaster-app: eccm/2.6.1/
./compose-tools.sh -s <MASTER_ECCM_HOST> --cluster master --database-host <MASTER_DB_HOST> --database-port <MASTER_DB_PORT> --backup-database-host <SLAVE_DB_HOST> --backup-database-port <SLAVE_DB_PORT>

Перейдите на сервер Slave-узла. При помощи bash-скрипта произведите запуск Slave с необходимыми параметрами. Пример запуска с обязательными параметрами::

Блок кода
titleSlave-app: eccm/2.6.1/
./compose-tools.sh -s <SLAVE_ECCM_HOST> --cluster slave --database-host <MASTER_DB_HOST> --database-port <MASTER_DB_PORT> --backup-database-host <SLAVE_DB_HOST> --backup-database-port <SLAVE_DB_PORT>

После успешного запуска ЕССМ на версии 2.6.1, повторно произведите остановку системы. Для этого сначала остановите кластер приложений при помощи следующей команды:

Блок кода
titleОстановка узлов кластере приложений
cd <путь до каталога с файлами запуска ECCM 2.6>
sudo ./compose-tools.sh --stop

Далее необходимо произвести остановку каждого узла из кластера баз данных при помощи следующей команды:

Блок кода
titleОстановка узлов кластере приложений
cd <путь до каталога с файлами запуска ECCM 2.6>/postgres
sudo docker compose stop

Перенесите сертификаты в директорию с новой версией ЕССМ при помощи выполнения следующей команды на каждом хосте:

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

В ЕССМ 2.7 было добавлено резервирование сервиса RabbitMQ, поэтому файл конфигурации отказоустойчивой системы претерпел значительные изменения. Повторно заполните .env.cluster в каталоге с файлами запуска ЕССМ 2.7 в соответствии с разделом Запуск ЕССМ в отказоустойчивой системе.

Подсказка

Более подробно ознакомиться с переменными в файле конфигурации отказоустойчивой системы можно в разделе Инструкция по установке и запуску.

Для отказоустойчивой системы после успешной остановки старой версии ЕССМ, на каждом узле необходимо изменить файл eccm/2.7/.env.cluster, изменив значение параметра RECONFIGURE_CLUSTER на true

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

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

При использовании стандартной схемы отказоустойчивой системы, перейдите на сервер узла мастера и выполните следующую команду:

Блок кода
cd <путь до каталога с файлами запуска ECCM 2.7>/db-tools
bash postgres-upgrade.sh

После успешного обновления БД на мастере, произведите запуск новой версии ЕССМ.

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

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

Блок кода
titleMaster-db: eccm/2.7/
cd db-tools/
bash postgres-upgrade.sh


Запуск новой версии ЕССМ

Подсказка

Для offline-установки воспользуйтесь инструкцией, приведенной в разделе "Инструкция по установке и запуску".

Запуск новой версии ЕССМ при однохостовой установке

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

Блок кода
cd <путь до каталога с файлами запуска ECCM 2.7>
sudo ./compose-tools.sh --pull --start <IP ADDRESS>

Запуск новой версии ЕССМ при многохостовой установке

Если система была установлена на нескольких хостах, для запуска новой версии ECCM выполните команды, приведенные ниже.

На сервере с базой данных:

Блок кода
cd <путь до каталога с файлами запуска ECCM 2.7>
sudo ./compose-tools.sh --pull --start <IP ADDRESS> --database-only

На сервере с ЕССМ:

Блок кода
cd <путь до каталога с файлами запуска ECCM 2.7>
sudo ./compose-tools.sh --pull --start <IP ADDRESS> --database-host <IP ADDRESS DATABASE> --database-port <PORT DATABASE>

Запуск новой версии ЕССМ в отказоустойчивой системе

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

Блок кода
titleMaster: eccm/2.7/
sudo ./compose-tools.sh --pull --start <IP ADDRESS> --cluster master

После того как мастер будет инициализирован и готов к работе, произведите запуск остальных узлов:

Блок кода
titleSlave: eccm/2.7/
sudo ./compose-tools.sh --pull --start <IP ADDRESS> --cluster slave
Блок кода
titleWitness: eccm/2.7/
sudo ./compose-tools.sh --pull --start <IP ADDRESS> --cluster witness
Подсказка

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

В рамках версии скрипт keepalived/check_app.sh для Keepalived был изменен. Для получения доступа к веб-интерфейсу восстановите работу Keepalived в соответствии с инструкцией по настройке VIP.