В текущем разделе описывается метод восстановления сохранённой информации о кластере, который состоит из мастер-сервера и слейв-сервера.

В кластерном режиме система работает на нескольких серверах. Необходимо на все сервера установить все пакеты.

Типы серверов:

  • мастер-сервер
    • всегда один в кластере
    • на нем запускается Polymatica-master
    • ставится офлайн-лицензии
  • слейв-сервер
    • может быть несколько
    • на каждом слейв-сервере запускается Polymatica-daemon
    • Polymatica-core и Polymatica-import запускаются автоматически сами

Типы узлов (нод, процессов, сервисов):

  • Polymatica-master (мастер)
  • Polymatica-core (воркер)
  • Polymatica-import (воркер)
  • Polymatica-daemon (демон)


Конфиги:

  • Конфиг мастера: /etc/polymatica/polymatica.conf
  • Конфиг воркера: /etc/polymatica/polymatica.conf
  • Конфиг демона: /etc/polymatica/polymatica-daemon.yml


Настройка мастера:
В конфиге мастера необходимо указать адреса сервисных процессов:

plm.cluster.daemons.var1.address = 192.168.1.1
plm.cluster.daemons.var1.port = 8080
 
plm.cluster.daemons.var2.address = 192.168.1.2
plm.cluster.daemons.var2.port = 8080


Настройка воркеров:
В конфиге демонов нужно указать путь до исполняемого файла полиматики -воркера

corewatcher:
  nativeconf:
    corePath: "/usr/bin/polymatica"

Путь до репозитория в конфиге демона должен совпадать с путем в конфиге полиматике-воркере, т.е. для всех конфигов на одном сервере путь должен совпадать

У демона

repository:
  spheres: "/var/plmrepo/cubes"

У полиматики-воркера

plm.manager.repo_directory = /var/plmrepo/

Порт демона(сервисного процесса) задается следующим образом:

server:
  port : 8080


Runtime информацию по кластеру можно получить из-под пользователя admin, обратившись к http://url_polymatica_host:port/login?login=admin/info/dump

Описание параметров

Название

Описание
Пример
"manager":


объект, информация по мастер-серверу


"node":
nodeDesc

список рабочих процессов запущенных в данный момент на сервере

"port": int

порт http сервера мастера
"8085"
"modules_count": int

количество открытых модулей импорта на мастере
0
"node_type":  string

на мастере всегда только Manager
"Manager"
"server_uuid": string

идентификатор сервера 
"00000000-00000000-00000000-00000000"
"last_cmd_time": string

время последней команды
"2022-02-15 07:18:17"
"round_robin_counter": int

признак открытия следующего модуля по алгоритму round robin
0
"modules":  

список открытых модулей импорта на мастере
[ ]
"spheres":
spheresDesc

массив объектов, список сфер доступных на мастере


"uuid": string

идентификатор сферы
"f4955bbc-00000000-00000000-00000000"
"epoch": int

номер эпохи сферы, инкрементируется после каждого обновления сферы
1
"hash": string

md5 хэш сумма всей сферы
"73d7c0cfe32b0b4eb4ad3c7eb61c83cd"
"name": string

название сферы
"Test"
"servers":
serverDesc
массив объектов, информация по каждому слейв-серверу

"uuid":


идентификатор сервера
74eec324-8496a4fd-59fe0a3b-f1c9da83"
"address":


адрес сервера
"0.0.0.0"
"nodes":
nodesDesc

список рабочих процессов запущенных в данный момент на сервере


"port": int

порт для внутреннего соединения с мастером

"modules_count": int

количество открытых модулей в процессе слейва
34343
"node_type":  string

тип процесса
Daemon, Import, Core
"server_uuid": string

идентификатор сервера
"74eec324-8496a4fd-59fe0a3b-f1c9da83"
"last_cmd_time": string

время последней команды
"2022-02-15 07:18:18"
"round_robin_counter": int 

признак открытия следующего модуля по алгоритму round robin

0
"modules": 
modulesDesc
массив объектов, список модулей открытых в процессе



"user_id": string
идентификатор пользователя, который открыл модуль
"a1000000-00000000-00000000-00000000"


"module_id": string
идентификатор сферы от которой открыт модуль
"6c6496a2-941083da-4c43afa8-c07af125"


"parent_module_id": string
идентификатор родительского модуля
"c0b31b1f-163158a0-ece49390-31eca459"


"sphere_id": string
идентификатор сферы
"f4955bbc-00000000-00000000-00000000"


"module_type": string
тип модуля
Olap, Charts, Associations, Import, Forecast, Geo


"epoch": int 
номер эпохи сферы от которой открыт модуль
1
 "profiles": 

список профилей доступных на этом сервере[]
"spheres":

список сфер доступных на этом сервере[]




Пример ответа

{
    "manager": {
        "node": {
            "port": 8084,
            "modules_count": 0,
            "node_type": "Manager",
            "node_state": "Ok",
            "server_uuid": "00000000-00000000-00000000-00000000",
            "last_cmd_time": "2022-02-15 07:18:17",
            "round_robin_counter": 0,
            "modules": []
        },
        "spheres": [
            {
                "uuid": "f4955bbc-00000000-00000000-00000000",
                "epoch": 1,
                "hash": "73d7c0cfe32b0b4eb4ad3c7eb61c83cd",
                "name": "test1"
            }
        ]
    },
    "servers": [
        {
            "uuid": "74eec324-8496a4fd-59fe0a3b-f1c9da83",
            "address": "0.0.0.0",
            "nodes": [
                {
                    "port": 34343,
                    "modules_count": 0,
                    "node_type": "Core",
                    "node_state": "Ok",
                    "server_uuid": "74eec324-8496a4fd-59fe0a3b-f1c9da83",
                    "last_cmd_time": "2022-02-15 07:18:18",
                    "round_robin_counter": 0,
                    "modules": [
                        {
                            "user_id": "a1000000-00000000-00000000-00000000",
                            "module_id": "6c6496a2-941083da-4c43afa8-c07af125",
                            "parent_module_id": "c0b31b1f-163158a0-ece49390-31eca459",
                            "sphere_id": "f4955bbc-00000000-00000000-00000000",
                            "module_type": "Olap",
                            "epoch": 1
                        }
                    ]
                },
                {
                    "port": 33853,
                    "modules_count": 0,
                    "node_type": "Core",
                    "node_state": "Ok",
                    "server_uuid": "74eec324-8496a4fd-59fe0a3b-f1c9da83",
                    "last_cmd_time": "2022-02-15 07:18:17",
                    "round_robin_counter": 0,
                    "modules": []
                },
                {
                    "port": 8087,
                    "modules_count": 0,
                    "node_type": "Daemon",
                    "node_state": "Ok",
                    "server_uuid": "74eec324-8496a4fd-59fe0a3b-f1c9da83",
                    "last_cmd_time": "2022-02-15 07:18:17",
                    "round_robin_counter": 0,
                    "modules": []
                }
            ],
            "spheres": [
                {
                    "uuid": "f4955bbc-00000000-00000000-00000000",
                    "epoch": 1,
                    "hash": "73d7c0cfe32b0b4eb4ad3c7eb61c83cd",
                    "name": "test1"
                }
            ],
            "profiles": []
        },
        {
            "uuid": "5b2b3467-647dbd72-e1496c32-6868b88c",
            "address": "0.0.0.0",
            "nodes": [
                {
                    "port": 39673,
                    "modules_count": 0,
                    "node_type": "Core",
                    "node_state": "Ok",
                    "server_uuid": "5b2b3467-647dbd72-e1496c32-6868b88c",
                    "last_cmd_time": "2022-02-15 07:18:18",
                    "round_robin_counter": 0,
                    "modules": []
                },
                {
                    "port": 34497,
                    "modules_count": 0,
                    "node_type": "Core",
                    "node_state": "Ok",
                    "server_uuid": "5b2b3467-647dbd72-e1496c32-6868b88c",
                    "last_cmd_time": "2022-02-15 07:18:18",
                    "round_robin_counter": 0,
                    "modules": []
                },
                {
                    "port": 8086,
                    "modules_count": 0,
                    "node_type": "Daemon",
                    "node_state": "Ok",
                    "server_uuid": "5b2b3467-647dbd72-e1496c32-6868b88c",
                    "last_cmd_time": "2022-02-15 07:18:17",
                    "round_robin_counter": 0,
                    "modules": []
                }
            ],
            "spheres": [
                {
                    "uuid": "f4955bbc-00000000-00000000-00000000",
                    "epoch": 1,
                    "hash": "73d7c0cfe32b0b4eb4ad3c7eb61c83cd",
                    "name": "test1"
                }
            ],
            "profiles": []
        },
        {
            "uuid": "903918c3-3906abd1-51b3cabc-26c30442",
            "address": "0.0.0.0",
            "nodes": [
                {
                    "port": 32931,
                    "modules_count": 0,
                    "node_type": "Core",
                    "node_state": "Ok",
                    "server_uuid": "903918c3-3906abd1-51b3cabc-26c30442",
                    "last_cmd_time": "2022-02-15 07:18:18",
                    "round_robin_counter": 0,
                    "modules": []
                },
                {
                    "port": 38657,
                    "modules_count": 0,
                    "node_type": "Core",
                    "node_state": "Ok",
                    "server_uuid": "903918c3-3906abd1-51b3cabc-26c30442",
                    "last_cmd_time": "2022-02-15 07:18:18",
                    "round_robin_counter": 0,
                    "modules": []
                },
                {
                    "port": 8085,
                    "modules_count": 0,
                    "node_type": "Daemon",
                    "node_state": "Ok",
                    "server_uuid": "903918c3-3906abd1-51b3cabc-26c30442",
                    "last_cmd_time": "2022-02-15 07:18:17",
                    "round_robin_counter": 0,
                    "modules": []
                }
            ],
            "spheres": [
                {
                    "uuid": "f4955bbc-00000000-00000000-00000000",
                    "epoch": 1,
                    "hash": "73d7c0cfe32b0b4eb4ad3c7eb61c83cd",
                    "name": "test1"
                }
            ],
            "profiles": []
        }
    ]
}


  • Нет меток