Открыть меню
Платформа Эра. Документация
Toggle preferences menu
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Георезервирование: различия между версиями

Материал из Платформа Эра. Документации
Новая страница: «Концепция Есть два независимых инстанса. В обоих инстансах существует домен с одним и тем же названием. В настройках каждого из них заданы параметры репликации с указанием альтернативного инстанса, доступов к нему, а также приоритета. В случае корре...»
 
Нет описания правки
 
(не показано 16 промежуточных версий 2 участников)
Строка 1: Строка 1:
Концепция
<iframe key="mykey" path="/video_ext.php?oid=-228158094&id=456239030&hd=2&autoplay=0" width="853" height="480" allow="encrypted-media; fullscreen; picture-in-picture; screen-wake-lock;" frameborder="0" allowfullscreen></iframe>


Есть два независимых инстанса.  
Предварительное условие - алгоритм шифрования паролей должен совпадать на обоих серверах. В мастер домене в конфигурации значение ключа pwd_hash_alg (в блоке  general). Например "pwd_hash_alg": "sha256". При отсутствии ключа значение равно none. Что означает, что пароли пользователей хранятся в СУБД без шифрования. 


В обоих инстансах существует домен с одним и тем же названием.
==== Настройка Master-сервера ====


В настройках каждого из них заданы параметры репликации с указанием альтернативного инстанса, доступов к нему, а также приоритета.
===== 1. Создайте канал интеграции =====
[[Файл:Master1 server.png|мини]]
В рабочем домене в приложении Настройка в меню Прочее - Каналы интеграции создайте канал интеграции c пользователем System и правом доступа к файлам. Скопируйте локальный токен.


В случае корректных настроек и активации режима репликации эти домены на двух инстансах автоматически приходят в состояние Active-Passive.
===== 2. Подготовьте домен к синхронизации =====
В рабочем домене в меню Домен - Параметры отредактируйте ключ survival_options.


На инстансе, где домен пассивный, деактивируются микросервисы, создающие активность, а также фасады перестают обслуживать запросы по домену.  
Пример ключа:<syntaxhighlight lang="json" line="1">
{
  "activate_delay_sec": 30,
  "alternatives": [
    {
      "order": 20,
      "token": "457e3fe5b71bcddd27bf2a64ec8ac6d2",
      "uris": "https://site2.era.ru"
    }
  ],
  "custom_sync_metadata": {
    "default_enabled_history": true,
    "default_enabled_settings": true,
    "endpoints_of_history": {},
    "endpoints_of_settings": {}
  },
  "enabled": true,
  "mode": "takeover",
  "name": "",
  "order": 10,
  "security_key": "eQTC1KqHdswBpg9CnGtY",
  "sync_history_mode": "isolate",
  "sync_settings_mode": "oneway",
  "token_local": "9a35d9a5cc20dae183624bfeecbe4cb0",
  "uris_local": "https://site1.era.ru"
}
</syntaxhighlight>
где,


При корректно настроенной в домене и включенной репликации выделяются следующие роли для экземпляра домена, а также инстанса при рассмотрении с точки зрения этого домена:
* uris_local - имя локального веб-сервера для Master-сервера
* token_local - локальный токен для канала интеграции (см. пункт 1)
* security_kay - сгенерированная строка авторизации
* alternatives - параметры Slave-сервера<br />


<nowiki>*</nowiki> Мастером называется домен с наивысшим приоритетом (наименьшее значение параметра order)
==== Настройка Slave-сервера ====


<nowiki>*</nowiki> Слейвом называется домен с приоритетом, отличным от наивысшего, а также аналогично сам инстанс.
===== 1. Создайте канал интеграции =====
В рабочем домене в приложении Настройка в меню Прочее - Каналы интеграции создайте канал интеграции c пользователем System и правом доступа к файлам. Скопируйте локальный токен.


При корректно настроенной в домене и включенной репликации выделяются следующие состояния для экземпляра домена, а также инстанса при рассмотрении с точки зрения этого домена:
===== 2. Подготовьте домен к синхронизации =====
В рабочем домене в меню Домен - Параметры отредактируйте ключ survival_options.


<nowiki>*</nowiki> Активным называется домен, который не обнаружил более приоритетных активных альтернатив, и в котором полноценно без ограничений работают сервисы.
Пример ключа:<syntaxhighlight lang="json" line="1">
{
  "activate_delay_sec": 30,
  "alternatives": [
    {
      "order": 10,
      "token": "9a35d9a5cc20dae183624bfeecbe4cb0",
      "uris": "https://site1.era.ru"
    }
  ],
  "custom_sync_metadata": {
    "default_enabled_history": true,
    "default_enabled_settings": true,
    "endpoints_of_history": {},
    "endpoints_of_settings": {}
  },
  "enabled": true,
  "mode": "takeover",
  "name": "",
  "order": 20,
  "security_key": "eQTC1KqHdswBpg9CnGtY",
  "sync_history_mode": "isolate",
  "sync_settings_mode": "oneway",
  "token_local": "457e3fe5b71bcddd27bf2a64ec8ac6d2",
  "uris_local": "https://site2.era.ru"
}
</syntaxhighlight>где,


<nowiki>*</nowiki> Пассивным называется домен, который обнаружил более пририоритетную активную альтернативу, а также аналогично сам инстанс.  
* uris_local - имя локального веб-сервера для Slave-сервера
* token_local - локальный токен для канала интеграции (см. пункт 1)
* security_kay - сгенерированная строка авторизации
* alternatives - параметры Master-сервера
После окончания настройки синхронизация сервероа начнётся автоматически через несколько секунд. Логирование синхронизации ведет микросеревис mware.  


При этом в рамках инстанса может быть несколько различных доменов с настроенной и включенной репликацией, находящихся в разных ролях и состояниях.
Пример конфигурации Master и Slave сервера:
[[Файл:ERA-failover.png|центр|800x800пкс]]


Пассивный домен не генерирует активностей: не выполняет сценарии, не запускает продуктовые микросервисы, не осуществляет синхронизации с почтовыми каталогами и мессенджерами.
Подробное описание всех особенностей алгоритма синхронизации по [https://vendor.era-platform.ru/docs/era/latest/articles/survival.html ссылке].
 
Подключиться к пассивному домену может только пользователь с ролью администратора, другие пользователи при попытке создать сессию перенаправляются на веб-серверы инстанса с активным доменом.
 
Регистрация SIP-устройств также невозможна, и запросы перенаправляются на SIP-серверы инстанса с активным доменом.
 
При этом модель данных пассивного домена доступна для администраторов и системных процессов.
 
Пассивный домен осуществляет регулярный пинг активного экземпляра и при его потере активируется.
 
Он также производит синхронизацию настроек и модели данных в соответствии с метаданными в настройках репликации.
 
Синхронизация производится с некоторыми ограничениями - не подлежат синхронизации некоторые настройки, связанные с конкретным инстансом, а также реалтаймовые коллекции. Соответственно при активации текущие активности не продолжаются и не восстанавливаются. Дополнительно может быть настроена фильтрация самих коллекций, сущностей в коллекциях, маскировка полей коллекций, данные из которых подлежат репликации.
 
Поддерживается подписка на изменения коллекций, и данные реплицируются в реальном времени.
 
Активный домен ведет журнал своей активности. Он применяется для выкачивания истории в привязке к периодам пассивности и недоступности.
 
Таким образом пользовательские данные и история синхронизированы между мастером и слейвом. Слейв в любой момент готов активироваться и приступить к обслуживанию процессов.
 
При восстановлении мастера сразу или по команде администратора производится перемена состояний доменов.

Текущая версия от 11:33, 2 сентября 2025

Предварительное условие - алгоритм шифрования паролей должен совпадать на обоих серверах. В мастер домене в конфигурации значение ключа pwd_hash_alg (в блоке general). Например "pwd_hash_alg": "sha256". При отсутствии ключа значение равно none. Что означает, что пароли пользователей хранятся в СУБД без шифрования.

Настройка Master-сервера

1. Создайте канал интеграции

В рабочем домене в приложении Настройка в меню Прочее - Каналы интеграции создайте канал интеграции c пользователем System и правом доступа к файлам. Скопируйте локальный токен.

2. Подготовьте домен к синхронизации

В рабочем домене в меню Домен - Параметры отредактируйте ключ survival_options.

Пример ключа:

{
  "activate_delay_sec": 30,
  "alternatives": [
    {
      "order": 20,
      "token": "457e3fe5b71bcddd27bf2a64ec8ac6d2",
      "uris": "https://site2.era.ru"
    }
  ],
  "custom_sync_metadata": {
    "default_enabled_history": true,
    "default_enabled_settings": true,
    "endpoints_of_history": {},
    "endpoints_of_settings": {}
  },
  "enabled": true,
  "mode": "takeover",
  "name": "",
  "order": 10,
  "security_key": "eQTC1KqHdswBpg9CnGtY",
  "sync_history_mode": "isolate",
  "sync_settings_mode": "oneway",
  "token_local": "9a35d9a5cc20dae183624bfeecbe4cb0",
  "uris_local": "https://site1.era.ru"
}

где,

  • uris_local - имя локального веб-сервера для Master-сервера
  • token_local - локальный токен для канала интеграции (см. пункт 1)
  • security_kay - сгенерированная строка авторизации
  • alternatives - параметры Slave-сервера

Настройка Slave-сервера

1. Создайте канал интеграции

В рабочем домене в приложении Настройка в меню Прочее - Каналы интеграции создайте канал интеграции c пользователем System и правом доступа к файлам. Скопируйте локальный токен.

2. Подготовьте домен к синхронизации

В рабочем домене в меню Домен - Параметры отредактируйте ключ survival_options.

Пример ключа:

{
  "activate_delay_sec": 30,
  "alternatives": [
    {
      "order": 10,
      "token": "9a35d9a5cc20dae183624bfeecbe4cb0",
      "uris": "https://site1.era.ru"
    }
  ],
  "custom_sync_metadata": {
    "default_enabled_history": true,
    "default_enabled_settings": true,
    "endpoints_of_history": {},
    "endpoints_of_settings": {}
  },
  "enabled": true,
  "mode": "takeover",
  "name": "",
  "order": 20,
  "security_key": "eQTC1KqHdswBpg9CnGtY",
  "sync_history_mode": "isolate",
  "sync_settings_mode": "oneway",
  "token_local": "457e3fe5b71bcddd27bf2a64ec8ac6d2",
  "uris_local": "https://site2.era.ru"
}

где,

  • uris_local - имя локального веб-сервера для Slave-сервера
  • token_local - локальный токен для канала интеграции (см. пункт 1)
  • security_kay - сгенерированная строка авторизации
  • alternatives - параметры Master-сервера

После окончания настройки синхронизация сервероа начнётся автоматически через несколько секунд. Логирование синхронизации ведет микросеревис mware.

Пример конфигурации Master и Slave сервера:

Подробное описание всех особенностей алгоритма синхронизации по ссылке.