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

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

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

Введение

Отказоустойчивая система ЕССМ выполняется по схеме резервирования Active-Active с использованием VIP-адреса — Virtual IP, — что позволяет использовать единый адрес для доступа к каждому узлу системы и хранить на них актуальные данные. Для настройки отказоустойчивой схемы требуется выделить не менее трех серверов. В схеме резервирования также предусмотрено разделение ЕССМ на сервер с БД и сервер с ЕССМ, использующим данную базу — для таких случаев требуется выделить 5 серверов.

 Общая схема отказоустойчивой системы

Общая схема отказоустойчивой системы представляет из себя кластер, состоящий из трех узлов: master-, slave-, witness-ноды. Взаимодействие с WEB-интерфейсом происходит при помощи VIP, находящего на текущем мастере Keepalived. За состоянием баз данных PostgreSQL и Redis наблюдает узел witness и переключает мастерство Repmgr и Redis Sentinel при необходимости.

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

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

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

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

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

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

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

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

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

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

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

Настройка файла .env.cluster

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

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

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

Необходимо открыть файл .env.cluster на Master-ноде при помощи любого текстового редактора и для минимальной настройки заполнить следующие переменные:

  • ALLOWED_HOSTS — переменная, указывающая разрешенные IP-адреса. Значение переменной должно соответствовать IP-адресам всех используемых нод;
  • MASTER_HOST — переменная, указывающая IP-адрес Master-ноды;
  • SLAVE_HOST — переменная, указывающая IP-адрес Slave-ноды;
  • WITNESS_HOST — переменная, указывающая IP-адрес Witness-ноды;
  • SENTINEL_MASTER_NAME — переменная, содержащая уникальное произвольное имя, присваиваемое кластеру баз данных для их мониторинга;
  • SENTINEL_PASSWORD — переменная, содержащая пароль, используемый службой мониторинга для подключения к кластеру баз данных и получения информации о состоянии серверов.

Если не указывать данные переменные — база данных PostgreSQL на сервере не будет запущена и завершится с ошибкой.

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

Для каждого кластера необходимо настроить конфигурационный файл по-разному.

Для кластера приложений необходимо открыть файл .env.cluster на Master-ноде при помощи любого текстового редактора и для минимальной настройки заполнить следующие переменные:

  • ALLOWED_HOSTS — переменная, указывающая разрешенные IP-адреса. Значение переменной должно соответствовать IP-адресам всем серверам, участвующим в работе отказоустойчивой системы;
  • MASTER_HOST — переменная, указывающая IP-адрес Master-ноды ECCM приложения;
  • SLAVE_HOST — переменная, указывающая IP-адрес Slave-ноды ECCM приложения;
  • WITNESS_HOST — переменная, указывающая IP-адрес Witness-ноды из кластера баз данных;
  • SENTINEL_MASTER_NAME — переменная, содержащая уникальное произвольное имя, присваиваемое кластеру баз данных для их мониторинга;
  • SENTINEL_PASSWORD — переменная, содержащая пароль, используемый службой мониторинга для подключения к кластеру баз данных и получения информации о состоянии серверов.

Содержимое файла должно находиться на узлах кластера приложений, в ином случае система не запуститься в режиме резервирования.

Для кластера баз данных необходимо открыть файл .env.cluster на Master-базе данных при помощи любого текстового редактора и для минимальной настройки заполнить следующие переменные:

  • ALLOWED_HOSTS — переменная, указывающая разрешенные IP-адреса. Значение переменной должно соответствовать IP-адресам всем серверам, участвующим в работе отказоустойчивой системы;
  • MASTER_HOST — переменная, указывающая IP-адрес Master-базы данных;
  • SLAVE_HOST — переменная, указывающая IP-адрес Slave-базы данных;
  • WITNESS_HOST — переменная, указывающая IP-адрес Witness-ноды;
  • SENTINEL_MASTER_NAME — переменная, содержащая уникальное произвольное имя, присваиваемое кластеру баз данных для их мониторинга;
  • SENTINEL_PASSWORD — переменная, содержащая пароль, используемый службой мониторинга для подключения к кластеру баз данных и получения информации о состоянии серверов.

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

Синхронизация файлов конфигурации

Для синхронизации файлов конфигурации между серверами, необходимо воспользоваться утилитой rsync. Пример установки утилиты:

apt install rsync

Для передачи файлов конфигурации кластера используйте следующую команду:

sudo rsync -av --delete --rsync-path="sudo rsync" <полный_путь_до_файла_.env.cluster> <имя_пользователя_сервера>@<IP-адрес_сервера_назначения>:<полный_путь_до_директории_eccm>

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

Настройка SSL/TLS

Репликация между базами данных происходит по умолчанию в безопасном режиме. Для настройки безопасности репликации необходимо настроить сертификаты шифрования.


  • Нет меток