Настройка проекта
В качестве примера настройки работы серверов в кластере рассмотрим три возможных варианта конфигурации:
1+1(основной + резервный) с общей базой данных для обоих.1+1(основной + резервный) с индивидуальной базой данных для каждого сервера в кластере.1+N(основной + N резервных).
Общая база данных
Пример конфигурации с общей базой данных:
flowchart LR
subgraph CLUSTER[<B>SCADA-кластер</B>]
direction TD
S1(Основной сервер <br>IP-адрес: 10.0.0.10</br>)
S2(Резервный сервер <br>IP-адрес: 10.0.0.20</br>)
S1 <---> S2
style S1 fill:#e5f9ed,stroke-width:1px
style S2 fill:#e5f9ed,stroke-width:1px,color:#fff
style CLUSTER fill:#ffffff,stroke-dasharray: 10 10
end
AR[(Сервер БД <br>IP-адрес: 10.0.0.30</br>)]
S1 ---> AR
S2 ---> AR
Сначала настроим параметры связи с общей базой в проекте. Предположим, это СУБД PostgreSQL, которая работает на узле с IP-адресом 10.0.0.30.
Информация
Создание новой базы данных PostgreSQL рассматривается в соотвествующем разделе документации.

Чтобы настроить работу SCADA-кластера, откройте меню "Резервирование" проекта и выполните следующие действия:
- Включите флаг "Статус" для активации резервирования в проекте.
- Укажите IP-адрес основного сервера кластера 10.0.0.10.
- Добавьте резервный сервер и укажите для него IP-адрес 10.0.0.20.
- Выберите базу данных, настроенную на предыдущем шаге, в поле "База данных".

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

Включение этого флага позволит резервному серверу подписаться и получать обновления тегов, чтобы он обладал актуальным значением в дежурном режиме. Если данный флаг для тега не установлен, его значение не синхронизируется. Актуальное значение появится на резервном сервере только после запуска на нём драйвера опроса устройств. Таким образом, в случае аварии, часть значений может быть утеряна. Также этот флаг влияет на синхронизацию значения в базе данных: после простоя основной сервер выполнит запрос к резервному для получения актуальных значений тегов за период своего бездействия.
Чтобы активировать резервирование в кластере, необходимо развернуть один и тот же проект на каждом из двух серверов. Для этого настройте два профиля в "Профилях развертывания":
- Основной сервер с IP-адресом 10.0.0.10.
- Резервный сервер с IP-адресом 10.0.0.20.
Сначала сделайте активным профиль основного сервера и разверните проект.

Для развертывания на резервном сервере сделайте его профиль активным, а затем также нажмите кнопку "Развернуть".

Для проверки ротации принудительно отключите основной сервер в "Менеджере служб". Резервный сервер запустит опрос драйвера и продолжит выполнение развернутого проекта. После восстановления связи с основным сервером резервный автоматически передаст управление ему.
Индивидуальная база данных
Пример конфигурации с индивидуальной базой данных для каждого сервера в кластере:
flowchart LR
subgraph CLUSTER[<B>SCADA-кластер</B>]
direction TD
S1(Основной сервер <br>IP-адрес: 10.0.0.10</br>)
S2(Резервный сервер <br>IP-адрес: 10.0.0.20</br>)
S1 <---> S2
style S1 fill:#e5f9ed,stroke-width:1px
style S2 fill:#e5f9ed,stroke-width:1px,color:#fff
style CLUSTER fill:#ffffff,stroke-dasharray: 10 10
end
AR1[(Сервер БД <br>IP-адрес: 10.0.0.30</br>)]
AR2[(Сервер БД <br>IP-адрес: 10.0.0.40</br>)]
S1 ---> AR1
S2 ---> AR2
Настройте доступ к базе данных основного сервера (10.0.0.30) и к резервному узлу кластера (10.0.0.20), выполнив действия из предыдущего шага. Чтобы подключить базу данных резервного сервера (10.0.0.40), нажмите кнопку ... в поле "База данных".

Откроется окно "Настройка баз данных". Добавьте в нем новый узел с IP-адресом базы данных резервного сервера 10.0.0.40.

Настройте синхронизацию значений для активных тегов проекта. Это делается с помощью флага синхронизации в свойствах тега.

Включение этого флага позволит резервному серверу подписаться и получать обновления тегов, чтобы он обладал самым актуальным значением в дежурном режиме. Если данный флаг для тега не установлен, его значение не синхронизируется. Актуальное значение появится на резервном сервере только после запуска на нём драйвера опроса устройств. Таким образом, в случае аварии, часть значений может быть утеряна. Также этот флаг влияет на синхронизацию значения в базе данных: после простоя основной сервер выполнит запрос к резервному для получения актуальных значений тегов за период своего бездействия.
Далее разверните проект сначала на основном сервере, затем на резервном.

Для проверки ротации принудительно отключите основной сервер в "Менеджере служб". Резервный сервер запустит опрос драйвера и продолжит выполнение развернутого проекта. После восстановления связи с основным сервером резервный автоматически передаст управление ему.
Несколько резервных серверов
Если в конфигурации проекта указано несколько резервных серверов, переключение выполняется по правилам очереди: сначала управление передается серверу с порядковым номером 1 в списке, если он не отвечает — серверу 2, затем 3 и так далее.
Внимание
При использовании больше двух резервных серверов в проекте база данных должна быть указана либо общая (одна и та же) для всех серверов, либо индивидуальная для каждого, включая основной сервер.
