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

Ключ

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

...

Подсказка
Процесс переключения мастерства в отказоустойчивой системе подробнее описан в разделе "Переключение мастерства в отказоустойчивой системе".
Раскрыть
titleСхема отказоустойчивой системы при запуске БД на отдельном сервере

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

draw.io Diagram
bordertrue
diagramNameДиаграмма без названия-1772101019543
simpleViewerfalse
width600
linksauto
tbstyletop
diagramDisplayNameСхема отказоустойчивой системы ЕССМ с разделением БД и приложения
lboxtrue
diagramWidth1221
revision1

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

  • Кластер приложений;
  • Кластер баз данных.

Кластер баз данных включает в себя три сервера:

  • Master база данных PostgreSQL — база данных для всех операций;
  • Slave база данных PostgreSQL — база данных для операций чтения и репликации с Master;
  • Witness-нода — сервер для отслеживания состояния PostgreSQL, Redis и RabbitMQ с переключением мастерства по необходимости.
Информация

Сервисы Redis и RabbitMQ находятся в кластере приложений, поэтому доступ до Witness также должен быть обеспечен.

Кластер приложений включает в себя запуск ЕССМ с использованием внешних баз данных. Для доступа к веб-интерфейсу необходимо использовать VIP, который находится на текущем мастере Keepalived.

Подсказка
Подробнее о переключении мастерства в отказоустойчивой системе представлено в статье разделе "Переключение мастерства в отказоустойчивой системе".

Подготовка серверов

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

...

Подсказка
Назначение переменных в конфигурационном файле .env.cluster описано в разделе "Инструкция по установке и запуску".

Подготовка конфигурационного файла для запуска ЕССМ в стандартной схеме отказоустойчивой системы

...

Блок кода
languagebash
titleMaster: eccm/2.89/
cd root-ca-generator && ./generate-cluster-cert.sh

...

Блок кода
languagebash
titleНа каждой ноде приложений: eccm/2.89/
cp ./keepalived/* /etc/keepalived/

...

Блок кода
languagebash
titleНа каждой ноде приложений
chmod +x755 /etc/keepalived/check_app.sh

...

Подсказка
Процесс переключения мастерства в отказоустойчивой системе описан в статье разделе "Переключение мастерства в отказоустойчивой системе".

Рекомендуемые значения:

  • Если необходимо, чтобы мастерство возвращалось исходному мастеру:
    • Master-узел должен иметь приоритет 101;
    • Slave-узел должен иметь приоритет 100;
  • Если нет необходимости в возвращении мастерства исходному мастеру:
    • На всех узлах выставить приоритет 100.

...

Блок кода
languagebash
titleНа каждой ноде приложений
sudo systemctl status keepalived

В журнале вы должны увидеть отобразиться записи: Entering BACKUP STATE и Entering MASTER STATE.

...

Блок кода
languagebash
titleMaster: eccm/2.89/
./compose-tools.sh --install # установит docker, если он отсутствует в системе
./compose-tools.sh -s <MASTER_HOST> --cluster master

Во время запуска Master-узла необходимо подтвердить создание файла .env.personal и переменной ключа шифрования . Более подробно о переменной и файле можно узнать на странице ENCRYPTION_SECRET_KEY. Описание файла и переменной приведено в разделе "Инструкция по установке и запуску".

После того как мастер будет инициализирован и готов к работе, синхронизируйте .env.personal между узлами:

...

Блок кода
languagebash
titleSlave: eccm/2.89/
./compose-tools.sh --install # установит docker, если он отсутствует в системе
./compose-tools.sh -s <SLAVE_HOST> --cluster slave

...

Блок кода
languagebash
titleWitness: eccm/2.89/
./compose-tools.sh --install # установит docker, если он отсутствует в системе
./compose-tools.sh -s <WITNESS_HOST> --cluster witness

...

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

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

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

Блок кода
languagebash
titleMaster-db: eccm/2.89/
./compose-tools.sh --install # установит docker, если он отсутствует в системе
./compose-tools.sh --pull -s <POSTGRES_MASTER_HOST> --database-only --cluster master

Во время запуска Master-базы данных необходимо подтвердить создание файла .env.personal и переменной ключа шифрования . Более подробно о переменной и файле можно узнать на странице ENCRYPTION_SECRET_KEY. Описание файла и переменной приведено в разделе "Инструкция по установке и запуску".

После того как база данных на Master-db будет проинициализирована, синхронизируйте .env.personal между узлами:

Блок кода
languagebash
titleMaster-db
sudo rsync -av --delete --rsync-path="sudo rsync" <полный путь до директории eccm>/.env.personal <имя пользователя сервера>@<IP-адрес сервера назначения>:<полный путь до директории eccm>

Перейдите на сервер Slave-db. Запустите Slave-базу данных:

Блок кода
languagebash
titleSlave-db: eccm/2.89/
./compose-tools.sh --install # установит docker, если он отсутствует в системе
./compose-tools.sh --pull -s <POSTGRES_SLAVE_HOST> --database-only --cluster slave

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

Блок кода
languagebash
titleMaster-app: eccm/2.89/
./compose-tools.sh --install # установит docker, если он отсутствует в системе
./compose-tools.sh --pull -s <ECCM_MASTER_HOST> --cluster master --database-host <POSTGRES_MASTER_HOST> --database-port <POSTGRES_MASTER_PORT> --backup-database-host <POSTGRES_SLAVE_HOST> --backup-database-port <POSTGRES_SLAVE_PORT>

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

Блок кода
languagebash
titleSlave-app: eccm/2.89/
./compose-tools.sh --install # установит docker, если он отсутствует в системе
./compose-tools.sh --pull -s <ECCM_SLAVE_HOST> --cluster slave --database-host <POSTGRES_MASTER_HOST> --database-port <POSTGRES_MASTER_PORT> --backup-database-host <POSTGRES_SLAVE_HOST> --backup-database-port <POSTGRES_SLAVE_PORT>

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

Блок кода
languagebash
titleWitness: eccm/2.89/
./compose-tools.sh --install # установит docker, если он отсутствует в системе
./compose-tools.sh --pull -s <ECCM_WITNESS_HOST> --cluster witness

После инициализации перейдите по ранее установленному VIP-адресу (имеет формат http://<VIP>/). Веб-интерфейс ЕССМ будет доступен.

...