Установка и настройка

Важно

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

Режим суперпользователя:

sudo -i

Важно

Установка производится на управляющий узел. Для работы модуля необходимо установить службу OpenStack Nova Api.

Установка

Установите модуль TIONIX.NodeControl из репозитория RPM-пакетов:

yum -y install python3-tionix_node_control

Установка на двух и более контроллерах

При установке TIONIX.NodeControl на двух и более контроллерах необходимо:

  1. Реплицировать базу данных на каждый из контроллеров;
  2. Устанавливать модуль с одинаковыми параметрами на каждый из контроллеров;
  3. Процессы tionix-node-control-node-tracker.service и tionix-node-control-node-syncer.service должны быть активны только на одном контроллере. У этого же контроллера должен быть настроен доступ к серверу брокера сообщений;
  4. Инициализацию вычислительных узлов и устройств управления питанием необходимо проводить только на одном из контроллеров.

Примечание

Удаление и диагностика модуля на каждом контроллере происходит таким же образом, как и в случае с одним контроллером.

Настройка

Примечание

Рассматривается настройка запуска API сервиса через WSGI-сервер, поставляемый вместе с библиотекой eventlet. Для настройки запуска сервиса через другой WSGI-сервер (Nginx + Gunicorn, Apache + mod_wsgi и др.) смотрите документацию соответствующего сервера. Путь до WSGI приложения: tionix_node_control.api.node_control_api.wsgi.

  1. Выполните первичную настройку модуля:

    openstack tnx configure -n tnx_node_control tnx_client
    
  2. Создайте каталог для логов с нужными правами:

    mkdir -p /var/log/tionix/node-control
    chown -R tionix:tionix /var/log/tionix/node-control
    
  1. Скопируйте образец конфигурационного файла, при использовании нестандартных параметров отредактируйте их (подробнее см. Файл конфигурации):

    cp /etc/tionix/node_control.yaml.example /etc/tionix/node_control.yaml
    
  2. Создайте базу данных на примере MySQL, настройте права, тип базы и остальные параметры:

    # Зайдите в базу данных, используя пароль пользователя root
    mysql -uroot -p
    # Создайте пользователя tionix c паролем password
    CREATE USER 'tionix'@'localhost' IDENTIFIED BY 'password';
    # Создайте базу данных tionix_node_control
    CREATE DATABASE tionix_node_control;
    # Дайте пользователю права на чтение, редактирование, выполнение любых действий над всеми таблицами базы данных tionix_node_control
    GRANT ALL PRIVILEGES ON tionix_node_control.* TO 'tionix'@'localhost';
    # Осуществите выход из базы данных
    
  3. Выполните миграцию базы данных:

    openstack tnx db migrate -n tnx_node_control
    
  4. Настройте брокер сообщений RabbitMQ Server:

    rabbitmqctl add_user tionix password
    rabbitmqctl add_vhost tionix
    rabbitmqctl set_permissions -p tionix tionix ".*" ".*" ".*"
    rabbitmqctl set_permissions tionix ".*" ".*" ".*"
    
  5. Создайте пользователя в OpenStack для API сервисов:

    openstack user create --domain default --project service --project-domain default --password password --or-show tionix
    
  6. Назначьте пользователю роль admin:

    openstack role add --user tionix --user-domain default --project service --project-domain default admin
    
  7. Включите и запустите службы systemd:

    systemctl daemon-reload
    systemctl enable tionix-node-control-api.service
    systemctl start tionix-node-control-api.service
    systemctl enable tionix-node-control-node-syncer.service
    systemctl start tionix-node-control-node-syncer.service
    systemctl enable tionix-node-control-node-tracker.service
    systemctl start tionix-node-control-node-tracker.service
    systemctl enable tionix-node-control-worker.service
    systemctl start tionix-node-control-worker.service
    systemctl enable tionix-node-control-agent.service
    systemctl start tionix-node-control-agent.service
    systemctl enable tionix-node-control-drs-trigger.service
    systemctl start ttionix-node-control-drs-trigger.service
    systemctl enable tionix-node-control-nova-listener.service
    systemctl start tionix-node-control-nova-listener.service
    systemctl enable tionix-node-control-storage-syncer.service
    systemctl start tionix-node-control-storage-syncer.service
    
  8. Перезапустите службы TIONIX:

    systemctl restart tionix-*
    
  9. Создайте сервис NodeControl API:

    openstack service create --name tnx-nc --description "TIONIX Node Control Service" tnx-nc
    
  10. Создайте точки входа (endpoint):

    openstack endpoint create --region RegionOne tnx-nc internal http://controller:9362
    openstack endpoint create --region RegionOne tnx-nc admin http://controller:9362
    openstack endpoint create --region RegionOne tnx-nc public http://controller:9362
    

Файл конфигурации

Примечание

По умолчанию в файле node_control.yaml.example строки с уровнем логирования нет, она указывается при необходимости. Уровень логирования по умолчанию выставлен в общем конфигурационном файле. Подробнее ознакомиться с файлами конфигурации можно в соответствующем разделе.

Конфигурационный файл представлен в yaml формате и состоит из следующих секций и параметров:

Параметр Описание Значение по умолчанию
DB

Настройка подключения к базе данных, где:

tionix_node_control
SETTINGS_TRACKER

Настройка мониторинга вычислительных узлов, где:

  • mutex - количество попыток определения статуса гипервизора при переходе в статус down перед запуском обработчика;
  • mutex_up - количество попыток определения статуса гипервизора при переходе в статус up перед запуском обработчика;
  • loop_time - интервал времени между проверками статуса вычислительных узлов (в секундах).
  • mutex - 3;
  • mutex_up - 1;
  • loop_time - 30.
DHCP_LEASES_FILEPATHS Путь до директории с .leases файлами DHCP сервера. /var/lib/dhcp/dhcpd/state/dhcpd.leases, /var/lib/dhcp/dhcpd.leases
SYNC_NOVA_NODES_TIME Интервал синхронизации вычислительных узлов в секундах. 60
DB_CONNECTION_MAX_RETRIES Количество попыток подключения к базе данных. 2
TIMEOUT_RESERV_NODE_UP Время ожидания поднятия резервного вычислительного узла в минутах. 15
PXE

Настройка PXE, где:

  • conf_dir - каталог для конфигурационных файлов PXE.
/var/lib/tftpboot/pxelinux.cfg
MAX_DOWN_HOSTS Максимально допустимый процент или количество вычислительных узлов в статусе down, за исключением резервных. При превышении этого количества автоматическая эвакуация не производится ни для одного из узлов. Отрицательные числа недопустимы. 0
MAX_DOWN_HOSTS_TYPE

Тип расчета количества узлов, которые могут иметь статус down. Возможные значения:

  • count - количественное соотношение узлов со статусом down. Используется по умолчанию.
  • percent - процентное соотношение узлов со статусом down.
count
ALLOW_HOST_AUTO_POWER_OFF

Параметр разрешает, либо запрещает перезапуск вычислительного узла в случае его перехода в статус down. Допустимые значения:

  • True;
  • False.

Значения являются регистронезависимыми.

False
MAX_TICK_COUNT Максимальное количество итераций проверки статуса вычислительного узла при выключении хоста с эвакуацией виртуальных машин при отключении питания гипервизора консольной утилитой. 10
SLEEP_TIME Время ожидания до начала следующей итерации во время проверки статуса вычислительного узла при выключении хоста с эвакуацией виртуальных машин при отключении питания гипервизора консольной утилитой. Измеряется в секундах. 30
HOST_RESTART_TIMEOUT Время ожидания перезапуска вычислительного узла. Измеряется в секундах. 600
HOST_ATTACH_MAX_RETRIES Количество повторных попыток привязки хоста к виртуальному контроллеру в случае ошибки. 10
HOST_ATTACH_RETRY_DELAY Время ожидания до следующей попытки привязки хоста к виртуальному контроллеру. Измеряется в секундах. 120
HOST_ATTACH_NETWORK_TAG Тэг для фильтрации сетей при выборе сетевого интерфейса виртуального контроллера.  
KEY_PATH Путь до закрытого ключа, необходимого для обращения к виртуальному контроллеру. /etc/tionix/hybrid/tionix.crt
CONTROLLER_USERNAME Имя пользователя для подключения к виртуальному контроллеру. tionix
CONTROLLER_AUTH_PATH Путь до расположенного на виртуальном контроллере файла с авторизационными данными. /etc/tionix/hybrid/admin-openrc
LOG_LEVEL

Уровень логирования. Доступные значения:

  • DEBUG;
  • INFO;
  • WARNING;
  • ERROR;
  • CRITICAL.

Значения являются регистронезависимыми. Подробное описание параметров доступно в разделе Уровни логирования.

INFO
SENTRY

Настройки логирования Sentry, где:

  • ENABLED - флаг, отвечающий за отправку сообщений об ошибках в Sentry;
  • DSN - адрес сервера Sentry, содержит ключ пользователя и идентификатор проекта;
  • LOG_LEVEL - уровень логирования в Sentry.

Значения являются регистронезависимыми.

  • False;
  • Адрес внутреннего сервера Sentry;
  • CRITICAL.
ENABLE_CEPH_INTEGRATION

Параметр для включения или отключения функционала работы со службой Ceph, в том числе, программно-определяемыми хранилищами (SDS). Допустимые значения:

  • True;
  • False.

Значения являются регистронезависимыми. При значении параметра True в разделе TIONIX веб-интерфейса TIONIX.Dashboard отображается вкладка SDS.

False
ENABLE_NETWORK_ISOLATION

Параметр для включения или отключения функционала работы с изолированными программно-определяемыми сетями (SDN). Допустимые значения:

  • True;
  • False.

Значения являются регистронезависимыми.

False
ENABLE_AGENT

Параметр для включения или отключения функционала управления узлами, предоставляемого модулем TIONIX.Agent. Допустимые значения:

  • True;
  • False.

Значения являются регистронезависимыми.

False
NETWORK_ISOLATION_API_HOST Хост, на котором запущен сервис изоляции сети.  
NETWORK_ISOLATION_API_PORT Порт, на котором запущен сервис изоляции сети. 5549
RABBIT_QUEUES Имя vhost в брокере сообщений RabbitMQ. vhost: tionix
RETRIES_WAIT_FOR_NODE_STATE Максимальное количество попыток опроса состояния гипервизора. 240
RETRIES_WAIT_FOR_VM_STATUS Максимальное количество попыток опроса состояния виртуальной машины. 60
ALLOW_EVACUATE_HOST

Параметр разрешает, либо запрещает эвакуацию хоста. Допустимые значения:

  • True;
  • False.

Значения являются регистронезависимыми.

True
NODE_CONTROL_API_AUDIT_ENABLED

Параметр, включающий аудит запросов службы NodeControl API. Допустимые значения:

  • True;
  • False.
True
NODE_CONTROL_API_LISTEN IP-адрес, на котором будет запущена служба NodeControl API. 0.0.0.0
NODE_CONTROL_API_LISTEN_PORT Порт, на котором будет запущена служба NodeControl API. 9362
NODE_CONTROL_API_LOGFILE Путь до лог файла службы tionix-node-control-api. /var/log/tionix/node-control/node-control-api.log
NODE_CONTROL_NODE_SYNCER_LOGFILE Путь до лог файла службы tionix-node-control-node-syncer. /var/log/tionix/node-control/node-syncer.log
NODE_CONTROL_STORAGE_SYNCER_LOGFILE Путь до лог файла службы node_control-storage-syncer. /var/log/tionix/node-control/storage-syncer.log
NODE_CONTROL_NODE_TRACKER_LOGFILE Путь до лог файла службы tionix-node-control-node-tracker. /var/log/tionix/node-control/node-tracker.log
NODE_CONTROL_WORKER_LOGFILE Путь до лог файла службы tionix-node-control-worker. /var/log/tionix/node-control/worker.log
NODE_CONTROL_NOVA_LISTENER_LOGFILE Путь до лог файла службы tionix-node-control-nova-listener. /var/log/tionix/node-control/nova-listener.log
NODE_CONTROL_AGENT_LOGFILE Путь до лог файла службы tionix-node-control-agent. /var/log/tionix/node-control/agent.log
NODE_CONTROL_DRS_TRIGGER_LOGFILE Путь до лог файла службы tionix-node-control-drs-trigger. /var/log/tionix/node-control/drs-trigger.log
DRS_TRIGGER_INTERVAL Интервал запуска автоматического применения результатов аудита. Измеряется в секундах. 600
DRS

Настройка подключения к внешней системе DRS, где:

  • DRS_HOSTNAME - хост, на котором запущена система DRS;
  • DRS_PORT - порт сервера с системой DRS;
  • DRS_USER - пользователь системы DRS;
  • DRS_PASSWORD - пароль пользователя системы DRS.
  • DRS_PORT80
STORAGE_SYNC_INTERVAL Интервал запуска синхронизации информации о дисках. Измеряется в секундах. 60
RECOVERY_PRIORITY Значение приоритета восстановления, которое будет использоваться при переносе виртуальной машины во время автоэвакуации в случае неполадок на вычислительном узле. Принимает значения от 0 (перенос не осуществляется) до 10 (перенос осуществляется в первую очередь). 5
PRIORITIZED_EVACUATION_TIMEOUT Интервал между запусками эвакуации групп виртуальных машин с одинаковыми приоритетами восстановления. Измеряется в секундах. 60
EXTRA_AVAILABILITY_CHECK

Настройка дополнительной проверки доступности вычислительных узлов через хранилище, где:

  • CHECK_ENABLED - параметр для включения или отключения проверки. Допустимые значения:
    • True;
    • False.
  • DELAY - задержка при повторной попытке считывания файла состояния вычислительного узла. Измеряется в секундах;
  • ATTEMPTS - количество попыток считывания файла;
  • INSTANCE_RATE - необходимый процент запущенных виртуальных машин.
  • CHECK_ENABLEDFalse;
  • DELAY60;
  • ATTEMPTS2;
  • INSTANCE_RATE100.
HOST_REPAIR_TIMEOUT Время ожидания запуска скрипта восстановления в секундах. 600
WAIT_DOWN_HOST_RETRIES Количество попыток проверки статуса питания у вышедшего из строя гипервизора. 5

Дополнительные параметры:

Параметр Описание Значение по умолчанию
TRACEBACK_ENABLED

Параметр для вывода трассировки ошибки при логировании. Возможные значения:

  • True;
  • False.

Значения являются регистронезависимыми.

False

Важно

При изменении параметров файла конфигурации, для вступления их в силу необходимо произвести процедуру, описанную в разделе «Обновление файла конфигурации».