Кластер
Системные требования
При развёртывании Геном в отказоустойчивой конфигурации технические требования к его узлам зависят от устанавливаемых на них компонентов.
Допускается использование виртуальных машин при соблюдении следующих условий:
-
тактовая частота физического процессора не ниже 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 |
Для определения объёма необходимого дискового пространства:
-
Определите количество активных временных рядов:
N = (5 + 13 × Nm + 7 × Nh + 9 × Nc) * 1000
Здесь:
-
Nm— количество ПАК в контуре; -
Nh— количество серверов в контуре; -
Nc— количество коммутаторов в контуре.
-
-
Рассчитайте объём дискового пространства в байтах:
S = 1.2 * N * 2304 * dЗдесь:
-
N— количество активных временных рядов; -
2304 — количество байтов, необходимых для хранения точек одного временного ряда при интервале между снятием метрик, равном 15 секундам;
-
d— срок хранения данных в днях.
-
Кластер хранения
Требуется один узел с характеристиками не ниже указанных:
| Параметр | Значение |
|---|---|
Количество ядер CPU |
4 |
Объём оперативной памяти, ГБ |
16 |
Дисковое пространство, ГБ |
100 |
Скорость работы сетевого интерфейса, ГБит/с |
1 |
Подсистема конфигурации
Требуется один узел с характеристиками не ниже указанных:
| Параметр | Значение |
|---|---|
Количество ядер CPU |
8 |
Объём оперативной памяти, ГБ |
32 |
Дисковое пространство, ГБ |
250 |
Скорость работы сетевого интерфейса, ГБит/с |
1 |
Настройка сети
Перед началом развёртывания настройте сеть:
-
Убедитесь, что все узлы будущего кластера находятся в одной подсети.
-
Обеспечьте сетевую связность узлов.
Доступ по SSH
Для развёртывания кластера необходим доступ с установочного узла ко всем остальным узлам по SSH. Для этого:
-
На всех узлах в настройках сервера SSH разрешите авторизацию от имени пользователя
rootи аутентификацию по ключам. -
На установочном узел создайте пару ключей:
ssh-keygen -t ed25519 -C "Genome deploy" -N "" -f ~/.ssh/genome-deployВыполнение этой команды приведёт к тому, что в директории
~/.ssh/будут созданы два файла:-
~/.ssh/genome-deploy— приватный ключ без парольной защиты; -
~/.ssh/genome-deploy.pub— публичный ключ.
-
-
Разместите публичный ключ на узлах будущего кластера с помощью утилиты
ssh-copy-id:ssh-copy-id -i ~/.ssh/genome-deploy.pub root@<node>Здесь
<node>— IP-адрес или доменное имя узла, на котором нужно разместить публичный ключ.
Генерация конфигурации деплоя
Для развёртывания Геном в отказоустойчивом кластере запустите установщик и выполните следующие действия:
-
Выберите пункт Сгенерировать конфигурацию деплоя.
Установщик создаст в директории
distrib/файл конфигурации деплояplatform-config-<version>-<date>-<time>.yml.Здесь:
-
<version>— версия установщика; -
<date>— дата создания файла в форматеГГГГММДД; -
<time>— время создания файла в форматеЧЧММСС.
-
-
Введите
noи нажмите Enter. -
Выберите пункт Выход.
-
Переходите к настройке конфигурации деплоя.
Настройка конфигурации деплоя
Чтобы настроить конфигурацию деплоя, внесите необходимые изменения в содержимое файла 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:-
Перейдите в директорию
distrib/. -
Запустите скрипт
start.shс аргументом-f, в значении которого укажите путь к файлу конфигурации деплоя, например:./start.sh -f ./platform-config-<version>-<date>-<time>.yml
-
-
Использование установщика:
./genome-<version>.run -- -f /path/to/platform-config-<version>-<date>-<time>.yml