Кластер

Системные требования

При развёртывании Геном в отказоустойчивой конфигурации технические требования к его узлам зависят от устанавливаемых на них компонентов.

Допускается использование виртуальных машин при соблюдении следующих условий:

  • тактовая частота физического процессора не ниже 2,4 ГГц;

  • для обслуживания каждого виртуального ядра CPU выделен один поток гипертрейдинга;

  • в гипервизоре выключен режим переподписки;

  • на платформе управления виртуализацией каждая ВМ одного узла управления размещается только на нём и не перемещается автоматически на другие узлы (режим Anti-Affinity выключен).

Узел платформы Геном

Требуется один физический узел с характеристиками не ниже указанных:

Параметр Значение

Количество ядер CPU

4

Объём оперативной памяти, ГБ

16

Дисковое пространство, ГБ

100

Скорость работы сетевого интерфейса, ГБит/с

1

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

Требуется один физический узел с характеристиками не ниже указанных:

Параметр Значение

Количество ядер CPU

4

Объём оперативной памяти, ГБ

16

Дисковое пространство, ГБ

100

Скорость работы сетевого интерфейса, ГБит/с

1

PostgreSQL

Для развёртывания отказоустойчивого кластера PostgreSQL требуются минимум три узла с характеристиками не ниже указанных:

Параметр Значение

Количество ядер CPU

4

Объём оперативной памяти, ГБ

16

Дисковое пространство, ГБ

100

Скорость работы сетевого интерфейса, ГБит/с

1

Подсистема мониторинга

Для развёртывания отказоустойчивой подсистемы мониторинга требуются три узла с характеристиками не ниже указанных:

Параметр Значение

Количество ядер CPU

8

Объём оперативной памяти, ГБ

32

Дисковое пространство, ГБ

Рассчитывается по методике

Скорость работы сетевого интерфейса, ГБит/с

1

Для определения объёма необходимого дискового пространства:

  1. Определите количество активных временных рядов:

    N = (5 + 13 × Nm + 7 × Nh + 9 × Nc) * 1000

    Здесь:

    • Nm — количество ПАК в контуре;

    • Nh — количество серверов в контуре;

    • Nc — количество коммутаторов в контуре.

  2. Рассчитайте объём дискового пространства в байтах:

    S = 1.2 * N * 2304 * d

    Здесь:

    • N — количество активных временных рядов;

    • 2304 — количество байтов, необходимых для хранения точек одного временного ряда при интервале между снятием метрик, равном 15 секундам;

    • d — срок хранения данных в днях.

Кластер хранения

Требуется один узел с характеристиками не ниже указанных:

Параметр Значение

Количество ядер CPU

4

Объём оперативной памяти, ГБ

16

Дисковое пространство, ГБ

100

Скорость работы сетевого интерфейса, ГБит/с

1

Подсистема конфигурации

Требуется один узел с характеристиками не ниже указанных:

Параметр Значение

Количество ядер CPU

8

Объём оперативной памяти, ГБ

32

Дисковое пространство, ГБ

250

Скорость работы сетевого интерфейса, ГБит/с

1

Прокси Геном

Требуется один узел с характеристиками не ниже указанных:

Параметр Значение

Количество ядер CPU

4

Объём оперативной памяти, ГБ

16

Дисковое пространство, ГБ

100

Скорость работы сетевого интерфейса, ГБит/с

1

Резервный Прокси Геном

Требуется один узел с характеристиками не ниже указанных:

Параметр Значение

Количество ядер CPU

4

Объём оперативной памяти, ГБ

16

Дисковое пространство, ГБ

100

Скорость работы сетевого интерфейса, ГБит/с

1

Настройка сети

Перед началом развёртывания настройте сеть:

  • Убедитесь, что все узлы будущего кластера находятся в одной подсети.

  • Обеспечьте сетевую связность узлов.

Доступ по SSH

Для развёртывания кластера необходим доступ с установочного узла ко всем остальным узлам по SSH. Для этого:

  1. На всех узлах в настройках сервера SSH разрешите авторизацию от имени пользователя root и аутентификацию по ключам.

  2. На установочном узел создайте пару ключей:

    ssh-keygen -t ed25519 -C "Genome deploy" -N "" -f ~/.ssh/genome-deploy

    Выполнение этой команды приведёт к тому, что в директории ~/.ssh/ будут созданы два файла:

    • ~/.ssh/genome-deploy — приватный ключ без парольной защиты;

    • ~/.ssh/genome-deploy.pub — публичный ключ.

  3. Разместите публичный ключ на узлах будущего кластера с помощью утилиты ssh-copy-id:

    ssh-copy-id -i ~/.ssh/genome-deploy.pub root@<node>

    Здесь <node> — IP-адрес или доменное имя узла, на котором нужно разместить публичный ключ.

Генерация конфигурации деплоя

Для развёртывания Геном в отказоустойчивом кластере запустите установщик и выполните следующие действия:

  1. Выберите пункт Сгенерировать конфигурацию деплоя.

    Установщик создаст в директории distrib/ файл конфигурации деплоя platform-config-<version>-<date>-<time>.yml.

    Здесь:

    • <version> — версия установщика;

    • <date> — дата создания файла в формате ГГГГММДД;

    • <time> — время создания файла в формате ЧЧММСС.

  2. Введите no и нажмите Enter.

  3. Выберите пункт Выход.

  4. Переходите к настройке конфигурации деплоя.

Настройка конфигурации деплоя

Чтобы настроить конфигурацию деплоя, внесите необходимые изменения в содержимое файла platform-config-<version>-<date>-<time>.yml.

common

В секции common укажите только те параметры, значения которых отличаются от принятых по умолчанию.

common.auth_server_host

IP-адрес или доменное имя сервера аутентификации.

Значение по умолчанию: localhost.

common.deployment_directory

Путь к директории для установки файлов платформы.

Значение по умолчанию: /opt/skala-r/platform-services.

common.logs_directory

Путь к директории для хранения логов сервисов.

Значение по умолчанию: /opt/skala-r/platform-services/logs.

common.ports

Список внешних портов контейнеров (см. ниже).

common.ports.api_gateway

Порт API Gateway.

Значение по умолчанию: 3000.

common.ports.frontend_http

HTTP-порт фронтэнда.

Значение по умолчанию: 80.

common.ports.frontend_https

HTTPS-порт фронтэнда.

Значение по умолчанию: 443.

common.ports.wssh_alt_ssh

Порт WSSH.

Значение по умолчанию: 2222.

common.postgres_host

IP-адрес или доменное имя сервера PostgreSQL.

Значение по умолчанию: localhost.

common.postgres_password

Пароль для подключения к серверу PostgreSQL.

Значение по умолчанию: platform.

common.postgres_port

Номер порта для подключения к серверу PostgreSQL.

Значение по умолчанию: 5432.

common.postgres_username

Имя пользователя для подключения к серверу PostgreSQL.

Значение по умолчанию: platform.

common.vision_ip

IP-адрес сервера подсистемы мониторинга.

Значение по умолчанию: localhost.

hosts

Секция hosts описывает топологию кластера и параметры подключения к узлам.

hosts.ansible_ssh_private_key_file

Путь к приватному ключу SSH для подключения к узлам. Если приватный ключ создан с указанными выше настройками, укажите в значении этого параметра ~/.ssh/genome-deploy.

hosts.ansible_user

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

Значение по умолчанию: root.

hosts.manager

Узел, который будет управляться менеджером Docker Swarm. Укажите в значении этого параметра IP-адрес установочного узла.

hosts.vip

Виртуальный IP-адрес, который будет управляться через keepalived.

Требования к виртуальному IP-адресу:

  • Должен быть свободен.

  • Должен принадлежать той же подсети, в которой находятся все узлы кластера.

hosts.vip_interface

Название сетевого интерфейса, которому будет присваиваться виртуальный IP-адрес.

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

hosts.vrrp_id

Идентификатор VRRP-группы. Он используется протоколом keepalived для определения принадлежности узлов к одной и той же группе отказоустойчивости.

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

Возможные значения: от 1 до 255 включительно.

Значение по умолчанию: 51.

hosts.workers

Список воркер-узлов кластера, не менее двух штук.

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

Для изменения параметров сервисов платформы создайте одноимённые секции и добавьте в них ключи с нужными значениями. Например, чтобы изменить значение параметра logging.levelFile для сервиса api_gateway добавьте следующий код:

# ...
api_gateway:
  logging:
    levelFile: TRACE

Пример заполнения

---
common:
  auth_server_host: 192.168.1.20
  deployment_directory: /opt/skala-r/genome
  logs_directory: /opt/skala-r/genome/logs
  ports:
    api_gateway: 9000
    frontend_http: 80
    frontend_https: 443
    wssh_alt_ssh: 222
  postgres_host: 192.168.1.100
  postgres_port: 6432
  postgres_username: genome
  postgres_password: "p@ssW0rD4dat@6aze"
  vision_ip: 192.168.1.30

hosts:
  ansible_user: root
  ansible_ssh_private_key_file: /home/vision/.ssh/genome-deploy
  manager: 192.168.1.10
  vip: 192.168.1.200
  vip_interface: eth0
  vrrp_id: 51
  workers:
    - 192.168.1.11
    - 192.168.1.12

migrations:
  databases:
    - auth_db
    - authz_db

Развёртывание

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

  • Использование скрипта start.sh:

    1. Перейдите в директорию distrib/.

    2. Запустите скрипт start.sh с аргументом -f, в значении которого укажите путь к файлу конфигурации деплоя, например:

      ./start.sh -f ./platform-config-<version>-<date>-<time>.yml
  • Использование установщика:

    ./genome-<version>.run -- -f /path/to/platform-config-<version>-<date>-<time>.yml