...
| Раскрыть | ||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||
Схема отказоустойчивой системы при запуске БД на отдельных серверах
Схема отказоустойчивой системы с запуском базы данных на отдельных серверах представляет из себя совокупность двух кластеров:
Кластер баз данных включает в себя три сервера:
Кластер приложений включает в себя запуск ЕССМ с использованием внешних баз данных. Для доступа к веб-интерфейсу необходимо использовать VIP, который находится на текущем мастере Keepalived.
|
...
Подготовка конфигурационного файла для запуска ЕССМ в стандартной схеме стандартной схеме отказоустойчивой системы
Необходимо открыть файл .env.cluster на Master-ноде при помощи любого текстового редактора и для минимальной настройки назначить следующие переменные:
...
| Раскрыть | ||
|---|---|---|
| ||
Подготовка конфигурационного файла для запуска ЕССМ при запуске БД на отдельных серверахОткройте файл
|
Синхронизация файлов конфигурации
...
При отсутствии корпоративного сертификата предусмотрен скрипт root-ca-generator/generate-cluster-cert.sh. Перед Перед запуском предварительно отредактируйте файл root-ca-generator/cluster.cnf: пропишите IP-адреса всех узлов кластера в формате "IP.<№> = <IP-адрес узла>".
После этого запустите скрипт root-ca-generator/generate-cluster-cert.sh, который который сгенерирует все необходимые сертификаты и ключи в директорию cluster-cert/:
| Блок кода | ||||
|---|---|---|---|---|
| ||||
cd root-ca-generator && ./generate-cluster-cert.sh |
Состав директории директории cluster-cert/:
ca.crt— корневой — корневой CA-сертификат;cluster.crt— сертификат кластера, подписанный CA;cluster.key— приватный ключ кластера.
...
| Раскрыть | ||||
|---|---|---|---|---|
| ||||
Использование корпоративного CAЕсли предусмотрен корпоративный CA, необходимо переместить все файлы безопасного соединения в директорию
|
...
Для синхронизации файлов из директории cluster-cert/ между узлами отказоустойчивой системы рекомендуем воспользоваться утилитой rsync. Пример установки утилиты был описан в пункте "Синхронизация файлов конфигурации".
Для передачи сертификатов передачи сертификатов кластера используйте следующую команду:
| Блок кода | ||||
|---|---|---|---|---|
| ||||
sudo rsync -av --delete --rsync-path="sudo rsync" <полный путь до директории eccm>/cluster-cert/* <имя пользователя сервера>@<IP-адрес сервера назначения>:<полный путь до директории_ eccm>/cluster-cert |
После выполнения команды для каждого сервера назначения сертификаты на узлах будут соответствовать друг другу.
...
| Блок кода | ||||
|---|---|---|---|---|
| ||||
cp ./keepalived/* /etc/keepalived/ |
...
При помощи любого текстового редактора откройте конфигурационный файл /etc/keepalived/keepalived.conf. На На сервере, где будет находиться приложение ЕССМ с ролью мастер, измените следующие параметры:
INTERFACE_NAME— сетевой интерфейс, на котором будет находиться ЕССМ. Выставляется индивидуально для каждого сервера;ROUTER_ID— идентификатор виртуального маршрутизатора, принимающий значения от 0 до 255. Одинаковый на всех серверах;PRIORITY— приоритет текущей ноды, принимающий значения от 0 до 255. НеобходимоНеобходимо, чтобы данное значение было больше параметраweight(в стандартной
конфигурации weight = -10), в ином случае мастерство переключаться не будет;PASSWORD— пароль VRRP-аутентификации. Одинаковый на всех серверах;VIP_IP_ADDRESS— виртуальный IP-адрес, через который будет предоставляться доступ к веб-интерфейсу. Одинаковый на всех серверах.
Далее перейдите на сервер, где будет находиться приложение ЕССМ с ролью Slave, и измените ранее описанные параметры.
Если необходимо, чтобы при чтобы при переключении мастерства и восстановлении исходного мастера мастерство возвращалось исходному — на Master-узле выставьте приоритет на 1 больше, чем на Slave-узле. Если такая опция не нужна — установите одинаковое значение на каждом узле.
...
| Блок кода | ||||
|---|---|---|---|---|
| ||||
./compose-tools.sh --install # установит docker, если он отсутствует в системе ./compose-tools.sh -s <MASTER_HOST> --cluster master |
| Подсказка |
|---|
Перед запуском самих контейнеров скрипт проверяет наличие файла |
Во время запуска MasterВо время запуска Master-узла необходимо подтвердить создание файла .env.personal и переменной ключа шифрования ENCRYPTION_SECRET_KEY. Описание файла и переменной приведено в разделе "Инструкция по установке и запуску".
После того как мастер будет инициализирован и готов к работе, синхронизируйте .env.personal между узламиКонфигурационный файл .env.personal с паролями должен быть идентичен между всеми нодами кластера. Для синхронизации файла конфигурации между серверами можно воспользоваться утилитой rsync. Для передачи .env.personal используйте следующую команду после успешного запуска Master-узла:
| Блок кода | ||||
|---|---|---|---|---|
| ||||
sudo rsync -av --delete --rsync-path="sudo rsync" <полный путь до директории eccm>/.env.personal <имя пользователя сервера>@<IP-адрес сервера назначения>:<полный путь до директории eccm> |
После выполнения команды для каждого сервера назначения файл конфигурации будет соответствовать настроенному ранее.
После того как мастер будет инициализирован и готов к работе, перейдите на сервер Slave-узла. При Перейдите на сервер Slave-узла. При помощи bash-скрипта произведите запуск Slave с необходимыми параметрами. Пример запуска:
| Блок кода | ||||
|---|---|---|---|---|
| ||||
./compose-tools.sh --install # установит docker, если он отсутствует в системе ./compose-tools.sh -s <SLAVE_HOST> --cluster slave |
...
| Блок кода | ||||
|---|---|---|---|---|
| ||||
./compose-tools.sh --install # установит docker, если он отсутствует в системе ./compose-tools.sh -s <WITNESS_HOST> --cluster witness |
...
| Раскрыть | ||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||
Запуск ЕССМ в отказоустойчивой системе при запуске БД на отдельных серверахДля запуска ЕССМ в отказоустойчивой системе при запуске БД на отдельном сервере перейдите на сервер будущей Master-базы данных. Запустите Master-базу данных при помощи следующей команды:
Во время запуска Master-базы данных необходимо подтвердить создание файла на Master-db будет проинициализирована, синхронизируйте
После выполнения команды для каждого сервера назначения файл конфигурации будет соответствовать настроенному ранее. После того как база данных на Master-db будет проинициализирована, перейдите Перейдите на сервер Slave-db. Запустите Slave-базу данных:
После полной инициализации баз данных Master-db и Slave-db перейдите на сервер Master-ECCM. При помощи bash-скрипта произведите запуск мастера с необходимыми параметрами. Пример запуска:
Перейдите на сервер Slave-узла. При помощи bash-скрипта произведите запуск Slave с необходимыми параметрами. Пример запуска:
После полной инициализации кластера приложений перейдите на сервер Witness-узла. При помощи bash-скрипта произведите запуск Witness с необходимыми параметрами. Пример запуска:
После инициализации перейдите по ранее установленному VIP-адресу (имеет формат формат |
...