Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 14 Следующий »

Одним из важных нововведений в версии 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. Запуск новой версии ЕССМ.

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

Для возможности отката к предыдущей версии перед началом обновления рекомендуем создать резервную копию данных. В случае если 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/

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

$ 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


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

Когда 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

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

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

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

Остановка узлов кластере приложений
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 и повторно остановить систему. При отсутствии данного шага обновление отказоустойчивой системы невозможно.

Если предыдущая версия ЕССМ была 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>

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

Master: eccm/2.6.1/
sudo ./compose-tools.sh --pull --start <IP ADDRESS> --cluster master

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

Slave: eccm/2.6.1/
sudo ./compose-tools.sh --pull --start <IP ADDRESS> -- cluster slave
Witness: eccm/2.6.1/
sudo ./compose-tools.sh --pull --start <IP ADDRESS> -- cluster witness

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

sudo ./compose-tools.sh --stop

Если предыдущая версия ЕССМ была 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/:

Master: 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/ и запустите базу данных:

Slave-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 с необходимыми параметрами. Пример запуска с обязательными параметрами:

Witness: eccm/2.6.1/
sudo ./compose-tools.sh --pull --start <IP ADDRESS> -- cluster witness

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

Master-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 с необходимыми параметрами. Пример запуска с обязательными параметрами::

Slave-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, повторно произведите остановку системы. Для этого сначала остановите кластер приложений при помощи следующей команды:

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

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

Остановка узлов кластере приложений
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

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

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

Master-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>

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

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

Master: eccm/2.7/
sudo ./compose-tools.sh --pull --start <IP ADDRESS> --cluster master

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

Slave: eccm/2.7/
sudo ./compose-tools.sh --pull --start <IP ADDRESS> --cluster slave
Witness: eccm/2.7/
sudo ./compose-tools.sh --pull --start <IP ADDRESS> --cluster witness

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

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

  • Нет меток