...
| Раскрыть |
|---|
| title | Схема отказоустойчивой системы при запуске БД на отдельном сервере |
|---|
|
Схема отказоустойчивой системы при запуске БД на отдельных серверах| draw.io Diagram |
|---|
| border | true |
|---|
| |
|---|
| diagramName | Диаграмма без названия-1772101019543 |
|---|
| simpleViewer | false |
|---|
| width | 600 |
|---|
| links | auto |
|---|
| tbstyle | top |
|---|
| diagramDisplayName | Схема отказоустойчивой системы ЕССМ с разделением БД и приложения |
|---|
| lbox | true |
|---|
| diagramWidth | 1221 |
|---|
| revision | 1 |
|---|
|
Схема отказоустойчивой системы с запуском базы данных на отдельных серверах представляет из себя совокупность двух кластеров: - Кластер приложений;
- Кластер баз данных.
Кластер баз данных включает в себя три сервера: - Master база данных PostgreSQL — база данных для всех операций;
- Slave база данных PostgreSQL — база данных для операций чтения и репликации с Master;
- Witness-нода — сервер для отслеживания состояния PostgreSQL, Redis и RabbitMQ с переключением мастерства по необходимости.
| Информация |
|---|
Сервисы Redis и RabbitMQ находятся в кластере приложений, поэтому доступ до Witness также должен быть обеспечен. |
Кластер приложений включает в себя запуск ЕССМ с использованием внешних баз данных. Для доступа к веб-интерфейсу необходимо использовать VIP, который находится на текущем мастере Keepalived. |
Подготовка серверов
Перед запуском ЕССМ в отказоустойчивой системе по любой из ранее представленных схем необходимо подготовить конфигурационные и вспомогательные файлы.
...
Подготовка конфигурационного файла для запуска ЕССМ в стандартной схеме отказоустойчивой системы
...
| Блок кода |
|---|
| language | bash |
|---|
| title | Master-node |
|---|
|
sudo rsync -av --delete --rsync-path="sudo rsync" <полный_ путь_ до_ директории_ eccm>/.env.cluster <имя_ пользователя_ сервера>@<IP-адрес_ сервера_ назначения>:<полный_ путь_ до_ директории_ eccm> |
После выполнения команды для каждого сервера назначения файл конфигурации будет соответствовать настроенному ранее.
...
| Блок кода |
|---|
| language | bash |
|---|
| title | Master: eccm/2.89/ |
|---|
|
cd root-ca-generator && ./generate-cluster-cert.sh |
...
| Блок кода |
|---|
| language | bash |
|---|
| title | Master-node |
|---|
|
sudo rsync -av --delete --rsync-path="sudo rsync" <полный_ путь_ до_ директории_ eccm>/cluster-cert/* <имя_ пользователя_ сервера>@<IP-адрес_ сервера_ назначения>:<полный_ путь_ до_ директории_eccm>/cluster-cert |
...
| Блок кода |
|---|
| language | bash |
|---|
| title | На каждой ноде приложений: eccm/2.89/ |
|---|
|
cp ./keepalived/* /etc/keepalived/ |
...
| Блок кода |
|---|
| language | bash |
|---|
| title | На каждой ноде приложений |
|---|
|
chmod +x755 /etc/keepalived/check_app.sh |
...
Рекомендуемые значения:
- Если необходимо, чтобы мастерство возвращалось исходному мастеру:
- Master-узел должен иметь приоритет 101;
- Slave-узел должен иметь приоритет 100;
- Если нет необходимости в возвращении мастерства исходному мастеру:
- На всех узлах выставить приоритет 100.
...
| Блок кода |
|---|
| language | bash |
|---|
| title | На каждой ноде приложений |
|---|
|
sudo systemctl status keepalived |
В журнале вы должны увидеть отобразиться записи: Entering BACKUP STATE и Entering MASTER STATE.
...
| Блок кода |
|---|
| language | bash |
|---|
| title | Master: eccm/2.89/ |
|---|
|
./compose-tools.sh --install # установит docker, если он отсутствует в системе
./compose-tools.sh -s <MASTER_HOST> --cluster master |
Во время запуска Master-узла необходимо подтвердить создание файла .env.personal и переменной ключа шифрования ENCRYPTION_SECRET_KEY. Описание файла и переменной приведено в разделе "Инструкция по установке и запуску".
После того как мастер будет инициализирован и готов к работе, перейдите на сервер Slave-узла. При помощи bash-скрипта произведите запуск Slave с необходимыми параметрами. Пример запускасинхронизируйте .env.personal между узлами:
| Блок кода |
|---|
| language | bash |
|---|
| title | Slave: eccm/2.8/ | Master-node |
|---|
|
sudo rsync -av./compose-tools.sh --install # установит docker, если он отсутствует в системе
./compose-tools.sh -s <SLAVE_HOST> --cluster slavedelete --rsync-path="sudo rsync" <полный путь до директории eccm>/.env.personal <имя пользователя сервера>@<IP-адрес сервера назначения>:<полный путь до директории eccm> |
Перейдите на сервер Slave-узла. При Параллельно с запуском Slave-узла произведите запуск Witness-узла. Подключитесь к Witness-ноде. При помощи bash-скрипта произведите запуск Witness Slave с необходимыми параметрами. Пример запуска:
| Блок кода |
|---|
| language | bash |
|---|
| title | WitnessSlave: eccm/2.89/ |
|---|
|
./compose-tools.sh --install # установит docker, если он отсутствует в системе
./compose-tools.sh -s <WITNESS<SLAVE_HOST> --cluster witness |
После инициализации перейдите по ранее установленному VIP-адресу (имеет формат http://<VIP>/). Веб-интерфейс ЕССМ будет доступен.
Параллельно с запуском Slave-узла произведите запуск Witness-узла. Подключитесь к Witness-ноде. При помощи bash-скрипта произведите запуск Witness с необходимыми параметрами. Пример запуска:
| Блок кода |
|---|
| language | bash |
|---|
| title | Witness: eccm/2.9/ |
|---|
|
./compose-tools.sh --install # установит docker, если он отсутствует в системе
./compose-tools.sh -s <WITNESS_HOST> --cluster witness |
После инициализации перейдите по ранее установленному VIP-адресу (имеет формат http://<VIP>/). Веб-интерфейс ЕССМ будет доступен.
| Раскрыть |
|---|
| title | Запуск ЕССМ в отказоустойчивой системе при запуске БД на отдельных серверах |
|---|
|
Запуск ЕССМ в отказоустойчивой системе при запуске БД на отдельных серверахДля запуска ЕССМ в отказоустойчивой системе при запуске БД на отдельном сервере перейдите на сервер будущей Master-базы данных. Запустите Master-базу данных при помощи следующей команды: | Блок кода |
|---|
| language | bash |
|---|
| title | Master-db: eccm/2.9/ |
|---|
| ./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 между узлами |
| Раскрыть |
|---|
| title | Запуск ЕССМ в отказоустойчивой системе при запуске БД на отдельных серверах |
|---|
|
Запуск ЕССМ в отказоустойчивой системе при запуске БД на отдельных серверахДля запуска ЕССМ в отказоустойчивой системе при запуске БД на отдельном сервере перейдите на сервер будущей Master-базы данных. Запустите Master-базу данных при помощи следующей команды: | Блок кода |
|---|
| language | bash |
|---|
| title | Master-db: eccm/2.8/ |
|---|
| sudo rsync -av./compose-tools.sh --install # установит docker, если он отсутствует в системе
./compose-tools.sh --pull -s <POSTGRES_MASTER_HOST> --database-only --cluster masterdelete --rsync-path="sudo rsync" <полный путь до директории eccm>/.env.personal <имя пользователя сервера>@<IP-адрес сервера назначения>:<полный путь до директории eccm> |
Перейдите После того как база данных на Master-db будет проинициализирована, перейдите на сервер Slave-db. Запустите Slave-базу данных: | Блок кода |
|---|
| language | bash |
|---|
| title | Slave-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-скрипта произведите запуск мастера с необходимыми параметрами. Пример запуска: | Блок кода |
|---|
| language | bash |
|---|
| title | Master-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 с необходимыми параметрами. Пример запуска: | Блок кода |
|---|
| language | bash |
|---|
| title | Slave-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 с необходимыми параметрами. Пример запуска: | Блок кода |
|---|
| language | bash |
|---|
| title | Witness: eccm/2.89/ |
|---|
| ./compose-tools.sh --install # установит docker, если он отсутствует в системе
./compose-tools.sh --pull -s <ECCM_WITNESS_HOST> --cluster witness |
После инициализации перейдите по ранее установленному VIP-адресу (имеет формат http://<VIP>/). Веб-интерфейс ЕССМ будет доступен. |
...