Создание динамического кластера CGP

Динамический кластер CGP с общим хранилищем

В данном примере я рассмотрю создание динамического кластера CommuniGate с общим хранилищем, совмещенная конфигурация (роли Frontend и Backend выполняют одни и те же серверы).

В данном материале подразумевается, что общее хранилище (в моем конкретном случае NFS + Ceph) уже настроено и на всех серверах доступна общая папка, в которой будут располагаться кластеризованные данные.

/storage

Более того: CGP вполне возмождно установить на серверы, которые являются непосредственно нодами Ceph. В данном примере я рассматриваю именно такой сценарий: три CGP-сервера, являющиеся нодами Ceph.

Настройка

1. В первую очередь необходимо выполнить установку CGP на все серверы, которые будут участвовать в кластере.

2. Следующим загом согласно документации CGP должна выступать настройка каналов внутрикластерного взаимодействия, количество которых необходимо увеличить.

HTTPA -> Установки-> Услуги -> PWD
5* (число Бэкенд-Серверов) + 3*(число Фронтенд-Серверов)

https://doc.communigatepro.ru/russian/admin/cluster/Dynamic.html

3. На данном этапе необходимо перечислить IP нод CGP в качестве backend и frontend серверов. Поскольку мы настраиваем совмещенную симметричную конфигурацию, список бэкенд и фронтенд серверов у нас идентичен.

HTTPA -> Установки -> Общее -> Кластер

Frontend

192.168.X.X
192.168.X.X
192.168.X.X 

Backend

192.168.X.X
192.168.X.X
192.168.X.X   

Пример:

4. Останавливаем ноды.

systemctl stop CommuniGate

5. Теперь необходимо создать директорию, в которой будут расположены общекластерные данные, она должна называться SharedDomains. Делаем её прямо на нашем общем Ceph-storage.

mkdir /storage/SharedDomains

:!: Необходимо убедиться, что все бэкенд-серверы имеют полные права доступа на папку и могут создавать, удалять, читать и изменять файлы и директории внутри директории SharedDomains.

6. Теперь каждому участнику кластера необходимо передать параметры запуска, содержащие флаг о том, что данный сервер будет состоять в кластере, а также информацию о созданной общей директории. Для передачи параметров необходимо на каждом сервере создать специальный файл Startup.sh в директории CommuniGate. Данный файл должен иметь права на запуск.

touch /var/CommuniGate/Startup.sh
chmod +x /var/CommuniGate/Startup.sh

Теперь укажем в файле параметры запуска следующим образом:

SUPPLPARAMS="--SharedBase /storage/SharedDomains --ClusterBackend"

:!: В CGP существует отдельный параметр для запуска серверов в режиме frontend: –ClusterFrontend. Несмотря на то, что наша конфигурация является совмещенной и серверы будут выполнять в том числе и роль фронтендов, данный параметр указыввать НЕ ТРЕБУЕТСЯ, т.к. он предназначен для выделенных frontend-серверов.

7. На следующем этапе мы можем запустить серверы. Один из них должен стать контроллером кластера.

Проверить, что сервер подцепил необходимые параметры запуска можно так:

systemctl status CommuniGate.service

В нормальном случае мы увидим:

● CommuniGate.service - CommuniGate Pro Communication Server
     Loaded: loaded (/usr/lib/systemd/system/CommuniGate.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2026-08-24 13:56:26 MSK; 2 weeks 2 days ago
   Main PID: 1995264 (CGServer)
      Tasks: 69 (limit: 19161)
     Memory: 104.2M
        CPU: 30min 34.540s
     CGroup: /system.slice/CommuniGate.service
             └─ 1995264 /opt/CommuniGate/CGServer --SharedBase /storage/SharedDomains --ClusterBackend

8. Мониторинг можно осуществить в разделе:

Monitors -> Cluster

Пример:

9. В случае возникновения каких-либо проблем, можно увеличить уровень логгирования для компонентов кластера. Это делается в разделе:

HTTPA -> Установки -> Общее -> Кластер -> Log Level